I have developed an Android application which uses JNI (java native interface) for Archos 43.
Had no problems and i was able to run the application smoothly.
Later I tried to run the same application on Samsung I9100G Galaxy S II as well as Samsung I9100 Galaxy S II.
I was able to run the application on I9100G but not on I9100.
The reason being that the JNI part of the application was not supported on I9100.
I did try to get to know the reason for this and was able to find that I9100G uses Ti OMAP 4430 chipset and PowerVR SGX540 as GPU whereas I9100 uses Exynos 4210 chipset and Mali-400MP as GPU.
I suspect that the reason might be the change in chipset (since Archos 43 uses Ti OMAP as well). But any further results couldn’t be obtained from my search.
update The application makes use of bluetooth. While trying to connect to a custom hardware(CH), am not able to get any response from the CH when am running the application on I9100. The bluetooth communication part is written using jni.
So my question is whether am not able to run my application with JNI on I9100 because of the chipset and if so why ?
Also a more general question is which devices support Android JNI applications and what are the basic features necessary in a device to run an Android JNI application ?
(I spent a considerable amount of my time trying to find the answers for all these questions and any help will be greatly appreciated.)
Thank You.
All Android devices ‘support’ JNI, that is how a big part of the OS is implemented: Java services and frameworks using native libraries via JNI. There are, however, different architectures, and if you have a native module, you need to make sure you build one for each architecture you want to support. Even if you are targeting ARM devices only, there are ARMv5 and ARMv7 ones out there. ARMv5 should work on all, but is slower.
Galaxy SII devices probably use the same architecture, so you’ve hit some other problem/bug. What errors did you get? Post logcat if available. Maybe you are trying to access hardware that is not available on one of the devices? Or link against system libraries that are for some reason missing?