Home android Android NDK. A lot of ABI: Armeabi, Armeabi-V7A, ARM64-V8A ... What kind...

Android NDK. A lot of ABI: Armeabi, Armeabi-V7A, ARM64-V8A … What kind of one do you really build native .So-lips?




Armeabi, Armeabi-V7A, ARM64-V8A, X86, X86_64, MIPS, MIPS64 …

Well, Armeabi – it seems clear. This kind of architecture on all (or almost all) real gadgets.
x86 – it seems too, it is also clear. This is primarily for Genymotion and other emulators, where Android x86.

And the rest?

Will the ideal solution just build a libe on all ABI? And if it is not possible to test everywhere, but only on x86 and armeabi?

And why so many ARMs: Armeabi, Armeabi-V7A, ARM64-V8A? Which one is more relevant? How to determine which is supported by my gadget? Can be somewhat right away?

Answer 1, Authority 100%

x86 is primarily the intel atom processors, which are set to a considerable number of real devices, and not emulators. Emulator, just can emulate any architecture, regardless of the processor architecture, on which it is hosted – it is also an emulator. You can see for yourself by looking at the list of images for emulation:

The minimum set of supported architectures is App_abi: = x86 Armeabi . Next, you should decide whether your application will use additional architecture features armeabi-v7a , for example neon – if so, then this architecture should also be included in the list (Advanced List of ARM-V7 instructions ) – In fact, almost all ARM processors, at least v7

Recently, the device with processors on a 64-bit architecture is increasingly appearing on sale, so they are also worth considering.

You can definitely ignore MIPS / MIPS64

Find out what architecture from your device is possible by the specifications of the processor that it uses. For example, Qualcomm Snapdragon 820 – Arm V8A . Also in the market you can find programs that will show system information.

Multiple Arm architectures in one processor can not be, but each next includes the previous one, that is, ARM-V7 includes ARM, in ARM-V8 – Arm-V7. In fact, the most up-to-date ARM platform – ARM-V7, it contains the absolute majority of existing processors, but ARM-V8 is actively coming.
The difference in ARM architectures is obvious, each next is a step in evolution, new opportunities at the level of the iron core are added.

You can specify a collect library under all ABI and it will be a good solution if the final size of the application will suit you – each additional platform is new files that are size.

Official guide on this issue.

Programmers, Start Your Engines!

Why spend time searching for the correct question and then entering your answer when you can find it in a second? That's what CompuTicket is all about! Here you'll find thousands of questions and answers from hundreds of computer languages.

Recent questions