Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should I choose x86_64 for testing rather than the "recommended" x86 for virtual device system image?

I'm totally new to Android programming. I have Android Studio 3.0.1 running on Kubuntu Xenial 64-bit on a desktop with a Haswell processor.

I am configuring virtual devices. I am thinking of doing that corresponding to the physical Android devices I own. However, I notice that x86 images are placed in the "Recommended" pane:

enter image description here

compared to the x86_64 images of identical API version and target:

enter image description here

#4 of https://developer.android.com/studio/run/managing-avds.html#createavd seems to indicate that x86 images are recommended because they "run the fastest in the emulator."

A few of my old devices are x86 but the newer ones are x86_64. Should I choose x86_64 accordingly though it is not in the "Recommended" pane?

Does this make a difference when I am going to distribute APKs on Google Play Store in the future?

like image 889
jamadagni Avatar asked Nov 23 '17 07:11

jamadagni


People also ask

What is the difference between x86 and x86_64?

x86 is a 32 bit instruction set, x86_64 is a 64 bit instruction set... the difference is simple architecture. in case of windows os you better use the x86/32bit version for compatibility issues. in case of Linux you will not be able to use a 64 bit s/w if the os does not have the long mode flag.

Which processor architecture or ABI should you use for creating an Android Virtual Device on a Windows computer?

Hardware Requirements You need Android SDK edition 26.1. 1 and higher. Your PC or laptop should have a processor type 64 or 86-bit to work with the Android emulator.

What is x86_64 in Android?

With Google's recent release of its x86 64-bit Android 5.0 emulator image, developers can create 64-bit apps for Intel Atom processor-based devices.

What is the x86_64 architecture?

x86-64 is a 64-bit processing technology developed by AMD that debuted with the Opteron and Athlon 64 processor. x86-64 is also known as x64 and AMD64. x86-64 enables 64-bit processing advantages such as increased memory space (up to 256TB) and processing more data per clock cycle.


1 Answers

related to this answer By default, all 32-bit applications run without a glitch on 64-bit processors, but might run slower than applications tuned to run on 64-bit processors.

and according with this article

With Google’s recent release of its x86 64-bit Android 5.0 emulator image, developers can create 64-bit apps for Intel Atom processor-based devices.

Android 32-bit vs 64-bit

Many 64-bit platforms today, including Solaris, AIX*, HP-UX*, Linux*, OS X*, BSD, and IBM z/OS*, use an LP64 model. Since Android is based on the Linux kernel, Android 64-bit platforms also use the LP64 model.

Intel 64-bit CPUs have a 32-bit compatibility mode. While 32-bit applications will run on 64-bit processors, compiling with a 64-bit optimizing compiler allows them to take advantage of the architectural benefits of a 64-bit environment.

Android with 64-bit technologies for Intel Atom processor-based platforms can help developers to optimize their applications now. Building Android applications for 64-bit is just as easy as building traditional 32-bit Android applications. You can now use the official Android 64-bit emulator to run and debug 64-bit apps.

Maybe this articles can help you to understand the difference between this system images.

Update

Google now encourage to use x86 emulator like you can see in this image

enter image description here

The difference is that when using x86 images, it now uses fast, hardware-accelerated virtualization under the right conditions (HAXM) so it doesn't feel like there's a fat middle layer anymore.

like image 120
Nawrez Avatar answered Oct 19 '22 03:10

Nawrez