x86 system images with translation versus ARM system images



Previously, Android app developers who needed to develop/test Android apps that used native ARM libraries could not use the x86-based emulator system images, and were forced to use system images with full ARM emulation, which are over 10x slower than the x86-based system images. Or, developers were forced to build or hunt down the x86 version in parallel. This is one of the top reasons app developers still resort to physical devices.



To address this, we've released P x86 system images that can also run apps with ARM native code. This leverages Google's ARM to x86 translation technology, which enables running native ARM apps at a much higher speed than with the actual ARM system images. App developers can then much more easily use the emulator to develop/test apps that are natively ARM or have native ARM dependencies. Note that the ARM to x86 translation technology enables the execution of intellectual property owned by Arm Limited. It will only be available on Google APIs and Play Store system images, and can only be used for application development and debug on x86 desktop, laptop, customer on-premise servers, and customer-procured cloud-based environments.



Why is x86 system with ARM to x86 translation faster?

The x86-based system images are fast due to leveraging CPU virtualization technologies such as HAXM and KVM, while the ARM system images are much slower due to having to emulate the entire stack, especially any system code and anything related to the memory management unit (MMU), which made basic memory read/write instructions very, very slow.



