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

AndroidAndroid Studio-3.0

Android Problem Overview


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?

Android Solutions


Solution 1 - Android

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionjamadagniView Question on Stackoverflow
Solution 1 - AndroidNawrezView Answer on Stackoverflow