Android API and processor architectures

I am creating my own components from the command line (not from Android.mk

). I am trying to determine the intersection of processor architectures with API levels. I know:

  • armeabi

    - ARMv5TE
  • armeabi-v7a

    - ARMv7-A

I am trying to determine the minimum API level required for armeabi

(ARMv5TE) and armeabi-v7a

(ARMv7-A). I need a minimum API level to pick the right one sysroot

. For example, I can choose:

  • /opt/android-ndk-r9/platforms/android-19/arch-arm

or

  • /opt/android-ndk-r9/platforms/android-9/arch-arm

What are the intersections of API levels with armeabi

and armeabi-v7a

?


According to NDK docs/CPU-MIPS.html

and CPU-X86.html

MIPS and X86 minimum API level is 9. But I can't find a similar document for ARM.


According to the NDK docs/NEON.html

, ARMv7-a debuted in NDK R3, dated March 2010. This puts ARMv7-a around API 8 as of May 2010.

+3


source to share


1 answer


ARM has been supported since early releases (release 3 is the first to support NDK development at all). Since references armeabi

and armeabi-v7a

links to the same libraries (in a subdirectory arch-arm

), both are supported since release 3.

To find out for yourself, just look <NDK>/platforms/android-X

for the smallest X value where arch-arm

(or similarly, arch-x86

and arch-mips

) exists.



In general, there is no risk or harm in the new architecture code in an APK running on an older device - an older device simply won't look at unknown architectures. The only risk is that the NDK build will fail because the directory is missing arch-X

if you build the platform too old, in which case you can fix it yourself by configuring the new platform version.

+3


source







All Articles