2012-03-25 7 views
5

ウェブ上のいくつかの記事は、System.loadLibrary()/data/data/{app package}ディレクトリにファイルをロードすることを教えてくれます。私はこれがベンダーの実装ごとに変わるのか、それとも修正されたのだろうか?android System.loadLibraryがファイルをロードする

答えて

7

最終的には、ファイルシステム/ファイルシステムのレイアウトを定義するのはベンダによって異なります。だから、別の場所にいるかもしれない。カスタマイズされた定義がない場合、ライブラリは/data/data/your.package.name/libになります。

異なるディレクトリにある場合は、System.loadLibraryがそれを認識し、その場所からライブラリをロードします。

+0

これは、System.loadLibraryが/data/data/your.package.name/libのファイルをチェックすることを意味していますか? – robinmag

+0

'System.loadLibrary(" mylibrary ")'は、ライブラリ上の正しいパスからライブラリをロードしようとします。 '/ data/data/your.package.name/lib/mylibrary.so' – zapl

+0

@zaplのように、ライブラリファイル名' System.loadLibrary() 'のロードが" lib "で始まる点を除いて、 lib/libmylibrary.co' –

0

より良い/より新しい答え:あなたがしてライブラリのディレクトリを取得することができます:。

getApplicationInfo()nativeLibraryDir

適切な場所にするために使用/data/data/your.package.name/lib、何らかの理由で、これは常にどこでも一貫しているわけではありません。

関連する問題