私はオープンソースのエミュレータプロジェクトを開発中で、複数のカスタマイズ可能なネイティブプラグインを備えています。これらのプラグインは、ネイティブの共有オブジェクトライブラリ(.soファイル)として構築され、JNIを介してネイティブとJava間のさまざまなインタフェースを備えています。今まで作成されたすべてのプラグインでAPKを配布するのではなく、独自のカスタムプラグインを作成できるようにするためには、いつでもアプリをインストールした後にこれらの.soファイルをインポートする必要があります。Androidで実行時に共有オブジェクトライブラリをインポートするにはどうすればよいですか?
私は、/ data/data/[package_name]フォルダにファイルをコピーできますが、lib /サブフォルダにはコピーできないことがわかりました。 JavaでJNIインタフェースを利用するには、System.loadLibrary(libname)を呼び出す必要があります。しかし、これは.soファイルがlib /サブフォルダに置かれている必要があります。私が考えることができるこの周りの唯一の方法は、ユーザーにルートされたデバイスを持つことを要求することです。これを達成する別の方法がありますか?
ああ、System.loadがこのために使われたのか分かりませんでした。私が質問を投稿する前に私は研究をすべきだと思います。助けてくれてありがとう! – paulscode