Android:本机代码如何与java代码交互?

时间:2013-11-13 07:46:28

标签: java android android-ndk

按照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,因此它们可以相互交互。这是对的吗?

1 个答案:

答案 0 :(得分:0)

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

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

  

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

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