哪些Android设备支持jni?

use*_*904 7 java-native-interface android bluetooth equinox android-ndk

我开发了一个Android应用程序,它使用Archos 43的JNI(java本机接口).

没有问题,我能够顺利运行应用程序.后来我尝试在三星I9100G Galaxy S II以及三星I9100 Galaxy S II上运行相同的应用程序.

我能够在I9100G上运行该应用程序,但不能在I9100上运行.

原因是I9100不支持应用程序的JNI部分.

我确实试图了解其原因并且能够发现I9100G使用Ti OMAP 4430 chipsetPowerVR SGX540 as GPU whereas I9100 uses Exynos 4210 chipset and Mali-400MP as GPU.

我怀疑原因可能是芯片组的变化(因为Archos 43也使用了Ti OMAP).但是我的搜索无法获得任何进一步的结果.

更新应用程序使用蓝牙.在尝试连接到自定义硬件(CH)时,在I9100上运行应用程序时无法从CH获得任何响应.蓝牙通信部分使用jni编写.

所以我的问题是,由于芯片组,我是否无法在I9100上使用JNI运行我的应用程序,如果是这样,为什么呢?

另外一个更普遍的问题是哪些设备支持Android JNI应用程序以及设备运行Android JNI应用程序所需的基本功能是什么?(我花了相当多的时间来寻找所有这些问题的答案,我们将非常感谢任何帮助.)

谢谢.

Nik*_*kov 3

所有 Android 设备都“支持”JNI,这就是操作系统的大部分实现方式:通过 JNI 使用本机库的 Java 服务和框架。然而,存在不同的体系结构,如果您有本机模块,则需要确保为您想要支持的每种体系结构构建一个模块。即使您仅针对 ARM 设备,也有 ARMv5 和 ARMv7 设备。ARMv5 应该适用于所有系统,但速度较慢。

Galaxy SII 设备可能使用相同的架构,因此您遇到了一些其他问题/错误。你遇到了什么错误?如果可用,请发布 logcat。也许您正在尝试访问其中一台设备上不可用的硬件?或者链接到由于某种原因丢失的系统库?