0

ビルド済みの共有オブジェクト ファイル (mylib.so) と API ファイル (mylib.h) もあります。ここで、これらのファイルをプロジェクトに含める必要があります。ネイティブ インターフェイスを使用して、このライブラリ内の関数を呼び出したいです。

ただし、ライブラリ用に提供されているヘッダー ファイルはJNI 固有のヘッダー ファイルではなく、一般的な C ヘッダー ファイルです。dlopenを使用してこのライブラリをロードし、を使用してシンボルを取得したいと考えていますdlsym。したがって、によって返される関数ポインターを使用してこれらの関数を呼び出すことができますdlsym

私が求めていること

--> Android.mkファイル

--> dlopen ( lib_path , RTLD_LAZY); apk ファイルをインストールした後のmylib.soへのパス

誰かがこのように試して成功した場合は、私を助けてください。

4

1 に答える 1

0

2 番目の質問から始めると、多くの場合、Java を呼び出してlibmy.soをメモリにSystem.Load("my")入れる方がはるかに簡単です。JNI モジュールでは、必要に応じて引き続き使用できますが、通常はAndroid.mkのリンカーにlibmy.soを提供すると、適切なエクスポートされた関数が自動的に検出されます。dlopen()dlsym()

関連する NDK ドキュメントhttp://source-android.frandroid.com/ndk/docs/PREBUILTS.htmlを読んでください: その説明は本当に良いです。

于 2012-09-12T11:58:51.310 に答える