Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android emulator ABI

Preamble: THIS QUESTION IS WILDLY OBSOLETE.


When creating an Android Virtual Device (AVD), there's a selection for CPU/ABI. I've tried all available targets - there is no choice but ARM on all of them. I have targets up to Android 3.2.

I'm assuming this was done for emulating tablets or netbooks on x86. Do those even exist in hardware? What kind of target would support a different ABI?

EDIT: in Android Tools v17, there's an optional Intel Atom x86 image under API level 10.

EDIT2: ARMv7a is there now, too. No MIPS so far though.

EDIT3: MIPS emulator and image is available now, too. Pending some new architecture (ARMv8? Intel flavors for non-Atom? x86_64? SH3/4?), this question is utterly pointless.

like image 258
Seva Alekseyev Avatar asked Jul 21 '11 20:07

Seva Alekseyev


People also ask

What is ABI emulator?

All Android apps either use ARM or x86 libraries to run. The Application Binary Interface (ABI) of BlueStacks 5 supports both these libraries and lets you use any Android apps or games on your PC. While creating a new instance of BlueStacks 5, you can select your preferred libraries from the ABI settings.

What is an Android abi?

Different Android devices use different CPUs, which in turn support different instruction sets. Each combination of CPU and instruction set has its own Application Binary Interface (ABI). An ABI includes the following information: The CPU instruction set (and extensions) that can be used.

Is Android an arm64?

There are three main CPU architectures used in today's Android phones. ARM is perhaps the most common, as it's optimized for battery consumption. ARM64 is an evolution of the original ARM architecture that supports 64-bit processing for more powerful computing, and it's quickly becoming the standard in newer devices.

What is Armeabi?

EABI - Embedded Application Binary Interface. So ARMEABI are compiled binaries matching your android device's CPU architecture. e.g. arm64-v8a (Nexus 5x) - 64bit - ARM Cortex-A35, ARM Cortex-A53, ARM Cortex-A57, ARM Cortex-A72, ARM Cortex-A73.


2 Answers

There are android devices which run on non-ARM platforms, but it does not appear that the emulator mimics them yet. To my knowledge, there are not presently any first-rate fully supported (ie, "Google Experience") devices which use a different processor architecture.

In theory, you shouldn't need to test an android application that uses only official APIs on the actual target ABI unless you have ndk code, and the official ndk does not yet support non-ARM targets.

For the x86 cases, it tends to be faster to run in something like virtualbox anyway (and comes with its own ndk)

For something else - mips or whatever - at the moment that would probably be a custom hardware device and testing would either be done on the actual device or whatever eval board was used to support the initial work of porting android for it.

As long as non-ARM targets aren't fully official, this kind of support would come from the port author or hardware vendor rather than from Google's official tools.

like image 132
Chris Stratton Avatar answered Oct 11 '22 04:10

Chris Stratton


Intel Android phones and tablets do exist although none has been released commercially yet. A recent release of the NDK added support for x86 too.

As for MIPS, they offer their own NDK toolchain for MIPS. They say they have already shipped real devices to some markets but I'm not sure whether that's true or PR spin.

Also, please do notice that the Android SDK provides an emulator, not a simulator. Big difference there.

like image 21
Julio Gorgé Avatar answered Oct 11 '22 06:10

Julio Gorgé