Android NDK : what should I set in Application.mk for APP_ABI?

Regis_AG picture Regis_AG · Oct 18, 2013 · Viewed 17k times · Source

I am wondering which architectures I should put in the Application.mk file of my Android game.

I want to support all possible platforms that can download games on Google Play and other kinds of Android stores.

I would say that I should set:

APP_ABI := armeabi x86 (as many x86 devices are coming soon as far as I know)

But I wonder if I should not set:

APP_ABI := armeabi armeabi-v7a x86

or

APP_ABI := all

Please clarify.

Answer

krsteeve picture krsteeve · Oct 18, 2013

You can also specify mips, which would be included when you use all.

armeabi code can run on armeabi-v7a devices, but not the other way around. So you don't need armeabi-v7a if you have armeabi, but it will allow you take advantage of hardware floating point operations on some devices.

Also note that the more architectures you include, the larger your resulting APK will be. And if you are regularly compiling for all platforms, your builds will take longer.

Take a look at docs/CPU-ARCH-ABIS.html in your NDK installation for more information about the different architectures.