Android NDKとNetBeans 6.8でどのように苦労したか

画像

この投稿では、難しい間違いの息子である経験と少し共有したいと思います。 コンパイル、アセンブリなどにいくつかのエラーがあるため、別の言い方はできません。 たくさん食べました。 私はいつも理由の底に着いたわけではなく、すぐに数学を働かせたいと思っていました。 しかし、どういうわけか私は正しい解決策を見つけるか、読むことができました。 したがって、私は、いくつかのニュアンスに同じ道をたどる人々の注意を引きたいだけです。 おそらく、これにより時間を節約できます。 最後に、すべてが必要だったアプリケーションの例を示します。 タイトルの画像は、アプリケーションの画面です。

そして、私の仕事は次のとおりでした。 Android用のアプリケーションを作成しましたが、これはリソースを非常に要求することが判明しました。 「数学」に時間がかかりました(コンテナ、計算などを操作することを意味します)。 比較のために、純粋なC ++のコンソールアプリケーションは3秒以内にタスクを考慮しました。 エミュレータで実行されているjava Androidアプリケーションに対して、同じことは2.5分を数えました。 したがって、アルゴリズム部分をC ++でレンダリングすることにしました。 また、Eclipseをまったくインストールしたくなかったため、NetBeans 6.8とは何かに苦労しました。 したがって、SDK、NDK、およびNetBeansをすでに持っていると仮定して、次に進みます。



問題1


NDKアーカイブの例では、ソースは「C」で示されています。 「C ++」を使用する場合、* .cpp / * .hでコードを記述します。フォームのJNIEnvオブジェクトの関数呼び出しを置き換えることを忘れないでください(*env)->GetIntArrayElements(pixels, 0)



(*env)->GetIntArrayElements(pixels, 0)



env->GetIntArrayElements(pixels, 0)







問題2


C ++コードを* .soにコンパイルします。 これらのニーズのためにCygwinをインストールしました。 それをインストールするとき、提案されたパッケージの中から選択することを忘れないでください-make、デフォルトではインストールされません。 Cygwinの構成とC ++コードを配置する場所に関する指示をコピーアンドペーストしないために、 リンクを提供してください 。 そこにはすべてが十分に詳細に記述されており、最も重要なことには、すべてが1つの場所にあり、重要ではありません。



問題3


エミュレータでapkをコンパイルして実行します。 NetBeans 6.8には、エミュレータ上のso-librariesを使用したアプリケーションのデプロイと実行に重大な問題があるようです。 手動でのアセンブリ(antコンパイルの手動起動)とエミュレーターでのアプリケーションの手動ロードによってのみ助けられました。 この方法でコンパイルされたアプリケーションがエミュレーターにダウンロードされた後、変更(再コンパイルおよび再アップロード)する必要がない場合、通常、NetBeans soライブラリーはapkの主要部分をコンパイルし、エミュレーターに配置して、デバッグモードとリリースモードの両方で起動します。 したがって、緊張した状況が発生します。 ネイティブパーツを個別に(多数のジェスチャを使用して)デバッグおよびレイアウトしてから、Javaパーツ(インターフェイス)をデバッグするために通常モードでデバッグする必要があります。

antを介してコンパイルするときのコマンドのシーケンスは次のとおりです。

1.「android update project --target --path path / to / your / project /」

2.「ant debug」または「ant release」

3.その後、プロジェクトbinフォルダーにアプリケーションビルドが作成され、「adb -e install bin / Application.apk」エミュレーターへのアプリケーションのダウンロードを開始できます。 エミュレータはこの時間までに実行されているはずです。



これらのアクションは、ネイティブコードをデバッグしてインターフェイス部分でコンパイルし、エミュレータにロードする場合にのみ必要であることをもう一度思い出させてください。 その後、NetBeansを超えてアプリケーションのjava-interface部分をデバッグする必要はありません。 なぜこのように発生するのか、どうにかして別の方法で実行できますか?私は知りません、したがって、第一人者からのコメントを聞くのは面白いでしょう。



UPD:ネイティブコードを使用したアプリケーションのパフォーマンスが10倍に向上しました。 異なるコンテナで実験して、Javaコードのテスト問題の計算が〜100秒に短縮された場合、ネイティブコードをSTLで使用すると〜7秒と見なされます。



アプリ


さて、結論として、アプリケーションに関するいくつかの言葉があります。

これはAndroid PaintUpの小さな引き出しで、複雑なグラデーションの塗りつぶしを作成できます。 大学に戻って、同様の問題のために、1つの軽快なアルゴリズムを思い付きました。これは、判明したように、色のグラデーションへの対処に非常に適しています。 また、モバイルプラットフォームに実装することは興味深いものになりました。

その結果、いくつかの色のタッチで常に予測できるとは限らないきれいな絵を描くことができる描画機を手に入れました。

こちらのAndroidマーケットでのアプリケーションの説明は、いくつかの例(ソースを含む)とインストール用のqrコードです。



画像

画像

画像

画像

画像

画像画像



qrcode







All Articles