【发布时间】:2012-10-05 04:44:39
【问题描述】:
我为 Archos 43 开发了一个使用 JNI(java 本机接口)的 Android 应用程序。
没有问题,我能够顺利运行应用程序。 后来我尝试在 Samsung I9100G Galaxy S II 和 Samsung I9100 Galaxy S II 上运行相同的应用程序。
我能够在 I9100G 上运行该应用程序,但不能在 I9100 上运行。
原因是应用程序的 JNI 部分在 I9100 上不受支持。
我确实试图了解这个原因,并且能够发现I9100G使用Ti OMAP 4430 chipset和PowerVR 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 应用程序所需的基本功能是什么? (我花了相当多的时间试图找到所有这些问题的答案,我们将不胜感激。)
谢谢。
【问题讨论】:
-
我一直在开发一个使用 JNI 的应用程序,并且一直在使用三星 Galaxy S-2 GT-I9100(Android 4.0.3)进行测试,没有任何问题。
-
jni在应用中的作用是什么?
-
抓取和索引一些数据
-
我猜这可能取决于处理器架构而不是 Jni 支持。例如 arm vs arm-v7 或 neon 或其他扩展...
标签: android bluetooth android-ndk java-native-interface equinox