按照http://developer.android.com/tools/sdk/ndk/index.html中的步骤操作。我有 动态库,例如:libhello-jni.so在“armeabi”之类的文件夹下(ABI对应于ARMv5TE)。
我的问题是: 如果我使用基于ARMv5TE的CPU。我的动态库libhello-jni.so将使用THE EABI。在这个CPU上运行的JVM也将使用THE EABI,因为它们使用相同的ABI,因此它们可以相互交互。这是对的吗?
答案 0 :(得分:0)
有关详细信息,请参阅Android NDK文档(请参阅NDK文件夹根目录下的documentation.html
)。
如果您参考CPU Arch ABIs
部分,则III.3
部分解释了用于选择正确机器代码的机制:
安装应用程序时,程序包管理器服务将扫描.apk并查找
lib/<primary-abi>/lib<name>.so
[...]格式的任何共享库,以确保目标设备的最佳机器代码是在安装时自动从包中提取。
换句话说,系统会自动选择正确的库。