在Android App中加载多个本机库的最佳方法

Dra*_*ara 5 java java-native-interface android jar android-ndk

我有一个使用3个不同JAR库的应用程序...让我们将它们称为a.jar,b.jar和c.jar。每个JARS都有一个随附的本机C ++共享库。

现在,a.jar和b.jar都将导入并使用c.jar。

所以,我的问题是-使用system.loadLibrary加载本地库时最好的方法是什么?我可以仅从我的应用程序代码中加载它们,还是必须由相应的JAR加载它们?如果我从相应的JAR文件中加载它们,是否会在单独的线程中加载?

aus*_*len 2

加载本机库是类的责任。

\n\n

让我们假设每个 jar 文件也有名为 A、B 和 C 的类。所有这些类都需要最有可能通过静态方式加载其本机同伴。

\n\n
class A { \n    static { \n        System.loadLibrary(\xe2\x80\x9cA\xe2\x80\x9d); \n    }\n\n    C c;\n} \n\nclass C { \n     static { \n         System.loadLibrary(\xe2\x80\x9cC\xe2\x80\x9d); \n     }\n} \n
Run Code Online (Sandbox Code Playgroud)\n\n

在这种结构中,当您访问类 A 时,类加载器将加载并初始化类 C。

\n