java - Android:本地代码如何与Java代码交互?

原文 标签 java android android-ndk

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

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

最佳答案

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

如果您引用CPU Arch ABIs部分,则III.3部分介绍了用于选择正确的机器代码的机制:


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


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

关于java - Android:本地代码如何与Java代码交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19948182/

相关文章:

android - 启用滚动时,对 `getDrawingCache`的调用返回null

java - Android - 通过 DDMS 分析特定线程(UI 线程)

java - 从JNI返回byte []到Java

java - Firebase数据库中的setValue()方法不起作用。值未添加到数据库

java - 如何在文本字段中读取数据

java - 在运行时执行程序上执行多次执行

android - Android NDK是否支持OpenKODE核心?

安卓 NDK : override dynamic linking for native libraries?

java - Checkstyle-我可以更改MethodParamPad的规则吗?

java - 从groovy中的Key获取映射的值