4

バージョン3.1(Honeycomb)で導入されたAndroidRTPAPIを以前のバージョンにバックポートしたいと思います。バージョン4.0のソースをダウンロードしたところ、これらのAPIにはJavaコードとネイティブコードの両方が含まれていることがわかりました。NDKを使用してネイティブコードをビルドするには、特定の共有ライブラリが必要です。
Android.mkファイルによると、これらは、、、、libnativehelperおよびです。これらすべてのソースはソースコードに含まれていますが、それらを構築することは困難でした。それぞれが他の多くの共有ライブラリを必要としました。たとえば、次の共有ライブラリ が必要です:、、、、、、、、、、、、、。_libcutilslibutilslibmedialibmedialibuilibcutilslibutilslibbinderlibsonivoxlibicuuclibexpatlibcamera_clientlibstagefright_foundationlibguilibdl

だから私の質問は、元の4つの共有ライブラリを取得する方法はありますか?ソース全体を構築する必要がありますか?

4

3 に答える 3

3

、、などlibutilsの標準のAndroid共有ライブラリを使用するネイティブコードを作成する必要があるとします。次の手順を実行します。libcutlislibmedia

  1. AOSPターゲットバージョンでリポジトリをインストールします。
  2. ソースコードを。の下の適切なディレクトリに追加します./frameworks/base
    あなたの場合、別のフォルダを作成してAndroid.mk、もちろん適切に配置する方が簡単かもしれません。
  3. これらの標準共有ライブラリの必要な関数が以前のバージョンに存在しない場合、コンパイルエラーが発生する可能性があります。
  4. コードの一部としてコードをビルドするAOSPと、必要なライブラリがビルドされ、それらが自動的にリンクされます。

PSこれを実現するには、Linuxベースのビルドホストを使用することをお勧めします。

于 2012-05-30T08:28:41.367 に答える
0

cygwinターミナルを使用して、ネイティブ部分、つまりjniフォルダーをビルドします。cygwinを使用してビルドするには、cygdriveコマンドを使用してjniフォルダーに移動します。次に、ndk-buildと入力します。正常に完了すると、共有ライブラリ、つまり.soファイルがlibsフォルダーに作成されます。

于 2012-05-29T12:07:16.940 に答える
0

私はあなたの問題を理解することができます、あなたはデバイスまたはエミュレーターの/ system/libからライブラリーを引き出すことができます。ただし、システム権限が必要です。しかし、あなたはアプリケーションをインストールすることによってそれを行うことができます。それ以外の場合は、Linuxプラットフォームでソースコードをビルドします。2つまたは3つのコマンドを使用するだけで、ビルドプロセスは非常に簡単です。初めて構築するには長い時間が必要です。その後、ビルドに非常に短い時間が必要になり、変更されたコードのタイムスタンプに従ってのみビルドされます。 こちらをご覧ください

于 2012-06-01T07:33:57.140 に答える