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

Exception or error:

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?

How to solve:

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.

Leave a Reply

Your email address will not be published. Required fields are marked *