任意の C/C++ アプリケーションをクロスコンパイルし、Linux ライブラリに静的にリンクして、Android で実行できます。Android-ndk の必要性は何でしたか?Android-ndk は、gnu libc.Isn の小さなサブセットを持つ bionic に制限しますアプリケーションをすぐにクロスコンパイルし、Android シェルで実行する方がよい考えではありませんか?クロスコンパイルに見えない制限はありますか? この URL : Android で Linux アプリを実行できますか? 私の質問にある程度答えますが、最終的には混乱し、明確になりません。
2 に答える
Android-NDKにはこれで十分だと思います
Android NDKは、Android SDKのコンパニオンツールであり、アプリのパフォーマンスが重要な部分をネイティブコードで構築できます。CまたはC++でプログラミングするときに、アクティビティの構築、ユーザー入力の処理、ハードウェアセンサーの使用、アプリケーションリソースへのアクセスなどを可能にするヘッダーとライブラリを提供します。ネイティブコードを記述した場合でも、アプリケーションは.apkファイルにパッケージ化され、デバイス上の仮想マシン内で実行されます。基本的なAndroidアプリケーションモデルは変更されません。
NDKは以下を提供します:
CおよびC++ソースからネイティブコードライブラリを生成するために使用されるツールとビルドファイルのセット
対応するネイティブライブラリを、Androidデバイスにデプロイできるアプリケーションパッケージファイル(.apk)に埋め込む方法
Android 1.5以降、Androidプラットフォームの将来のすべてのバージョンでサポートされるネイティブシステムヘッダーとライブラリのセット。ネイティブアクティビティを使用するアプリケーションは、Android2.3以降で実行する必要があります。
これは、armツールチェーンを使用した他のクロスコンパイルでは見つけることができません。
リンクhttp://developer.android.com/sdk/ndk/index.htmlで述べられているように、 NDKは、パフォーマンスに敏感なネイティブコードを作成するためのアプリ開発担当者の仲間です。NDKは、一般的なLinux環境では見られなかったAndroidのネイティブ実装の一部を公開しています。それらのいくつかには、Android / Bitmap、Android / nativeWindowなどが含まれます。これらのAndroidネイティブアプリケーションを使用すると、画像の圧縮や解凍など、CPUを集中的に使用するプロセスを高速化できます。
外部でクロスコンパイルされた実行可能ファイルがAndroidで実行される場合でも、標準ライブラリの実装のバージョンが同じであるという保証はありません。NDKは、より簡単でAndroid互換のツールチェーンやその他のリソースを提供します。これを使用すると、アプリケーション開発者は、ユースケースに対応する互換性のあるクロスコンパイラを見つけるよりもはるかに簡単になります。