Mousa Mousa - 4 months ago 29
Android Question

Is it safe to support only armeabi-v7a for Android 4 and above?

I have developed an app which is mostly in C++ and is compiled by NDK to

.so
libraries as usual. We know that native apps have to be build for each CPU architecture separately; So I have different
so
files for
armeabi
and
armeabi-v7a
. (I deliberately left out
x86
and
mips
, since not many Android devices with these architectures are released.)

However, the size is very big and each
so
file takes about
90 MB
of space and I want to reduce it.

I know I can leave out
armeabi-v7a
, because of backward compatibility, but in that case the app will run very slowly.

Considering the fact that my app supports only android ICS and above (
minSdkVersion="14"
), Can I safely remove
armeabi
and suppose that all of these new devices use
armeabi-v7a
? Or some of the devices may still use the old
armeabi
and not
armeabi-v7a
architectures?

Answer

The Android source for Android 4.4+ doesn't support ARMv5/ARMv6 any longer, but there are custom builds of it that run on ARMv6 - see http://android.stackexchange.com/questions/34958/what-are-the-minimum-hardware-specifications-for-android for details on this. I'm not sure if one can get an ARMv6 device certified compatible with such Android releases, or if it only is applicable for unofficial firmwares.

So yes, maybe, in principle, you could drop armeabi if your app requires Android 4.0, but I'm not sure if there is any such official guarantee.