Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Virtual Device - Armeabi-v7a vs x86_64

I want to make my own Android application. I am using Ubuntu 64bit and IntelliJ. In Virtual Device Configuration, it asks me to choose a system image. All of the options have a Download beside, which means I haven't downloaded any system image.

There are 3 options available for Lollipop(API level 21), which are Armeabi-v7a, x86_64 and x86.(I am using Ubuntu 64 bit so I should not use x86 right?)

Can anyone explain what is Armeabi-v7a for? What are the differences between Armeabi-v7a and x84_64? What "version" should I choose (and which one runs faster ;))?

like image 716
Jeremy Avatar asked Jan 03 '15 15:01

Jeremy


1 Answers

The fundamental difference is the CPU that is being emulated.

  • Armeabi-v71 emaulates an ARM processor. (For more details on ARM options see: this question.)
  • x86_64 emulates a 64-bit X86 processor.

The decision on which to choose really depends upon your target device. ARM processors are far more prevalent, so testing your app with the ARM virtual devices often makes sense.

Another consideration is native code. If your app contains any native code, or 3rd-party libraries with native code, then your choice of virtual device is important. Native code is compiled into libraries (.so files) that are CPU-specific. Thus you would use the ARM virtual devices to test the ARM libraries in your app, and the X86 virtual devices to test the X86 libraries in your app.

A final consideration is speed of execution. X86 virtual devices will run faster on X86 desktop machines.

like image 166
EJK Avatar answered Nov 09 '22 09:11

EJK