2017-03-14 21 views
0

私は文字列値を返す単純なcppライブラリを持っています。 https://developer.android.com/studio/projects/add-native-code.htmlAndroid NDK cppライブラリはどこにあり、どこにロードされていますか?

apkをビルドした後、解析した後、さまざまなABIの.soファイルを含むlibフォルダが表示されます。

私の質問は:生成されたファイルはapk自体に含まれているので、from whereto whereSystem.loadLibary(String)が行動しますか? ライブラリファイルは非公開のアプリのフォルダ内にあり、読み込まれた後にのみアプリにアクセスできますか?アプリ内でloadLibraryになったら、他のアプリはこのライブラリにアクセスできますか?それはアンドロイドシステムフォルダのどこかにコピーされていますか?

+0

これはあなたのプライベートライブラリです。誰もアクセスできません – pskink

答えて

1

指定されたライブラリ名でダイナミックライブラリをロードします。ネイティブコードを含む ファイルは、ライブラリファイルが通常取得される 場所からローカルファイルシステムからロードされます。 このプロセスの詳細は実装依存です。ライブラリ の名前から特定のファイル名へのマッピングは、システム固有の方法で行われます。

出典:それがロードされたときhttps://developer.android.com/reference/java/lang/Runtime.html#loadLibrary(java.lang.String)

ライブラリは共有の場所にコピーされていません。ライブラリをロードすると、シンボルがネイティブメソッドにリンクされます。

関連する問題