1

按照http://developer.android.com/tools/sdk/ndk/index.html中的步骤操作。我有动态库,例如:libhello-jni.so 在“armeabi”之类的文件夹下(ABI 对应于 ARMv5TE)。

我的问题是:如果我使用基于 ARMv5TE 的 CPU。我的动态库 libhello-jni.so 将使用 EABI。并且运行在这个 CPU 上的 JVM 也将使用 THE EABI,因为它们使用相同的 ABI,因此它们可以相互交互。这是正确的吗?

4

1 回答 1

0

有关更多详细信息,请参阅 Android NDK 文档(请参阅documentation.htmlNDK 文件夹的根目录)。

如果您参考该CPU Arch ABIs部分,该部分III.3将解释用于选择正确机器代码的机制:

安装应用程序时,包管理器服务将扫描 .apk 并查找任何形式为lib/<primary-abi>/lib<name>.so[...] [it] 的共享库,以确保在安装时自动从包中提取目标设备的最佳机器代码.

换句话说,系统会自动选择正确的库。

于 2013-11-13T08:44:36.953 回答