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

时间:2012-11-26 18:50:45

标签: java android jar android-ndk java-native-interface

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

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

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

1 个答案:

答案 0 :(得分:2)

加载本机库是Classes的责任。

让我们假设每个jar文件也有一个名为A,B和C的类。所有这些类都需要通过静态方式加载它们的本机伴随。

class A { 
    static { 
        System.loadLibrary(“A”); 
    }

    C c;
} 

class C { 
     static { 
         System.loadLibrary(“C”); 
     }
} 

在这种结构中,当你访问A类时,它将是加载和初始化类C的类加载器。