12th Generation Intel® Core™ Processors Run Android* 11 in a Virtual Machine

Published: 02/15/2022

By Nataraj Deshpande

Android* apps are part of our daily lives and continue to gain popularity on Chromebook* notebook computers. In response, Intel and Google are working to make the apps safer and better. In 2021, the number of people using Android apps on Chromebooks increased by 50%,1 with use cases in conferencing, games, and content creation. In 2022, 12th generation Intel® Core™ Processors are ushering in the transition from a containerized Android Runtime for Chrome (ARC++) architecture to an architecture called Android Runtime for Chrome Virtual Machine (ARCVM). ARCVM delivers better Android 11 support, easier upgradability, and better security and scalability.

 

Architecture

The following graphic depicts the architecture of the system:

ARCVM uses Virtio, an architecture in which a guest Android OS forwards API requests to a virtual machine monitor (VMM) on Chrome OS (or CROSVM) based on a Kernel-based Virtual machine (KVM) hypervisor. The hypervisor manages access to hardware devices such as GPUs, input, and so forth. Since the guest operating system runs in a virtual machine, the host Chrome OS is protected from the possibility that the guest contains malicious code. It also provides stricter isolation for the Android environment. ARCVM allows users to install Android apps and use developer tools without requiring the device to be in developer mode.

The 12th generation Intel Core processor has a hybrid core architecture with two Performance-cores and eight Efficient-cores that are optimized to run Android applications. In addition, it has unique hardware blocks that accelerate graphics and multimedia. Android apps can leverage those blocks to reduce power consumption and improve performance. The processor enhances Intel® Bridge Technology (Intel® BT) and optimizes support for ARM* applications on Chromebooks.2

 

Developer Optimizations and Tools

 

Unity* Engine and Chrome OS

For game developers, the 2020 and 2021 versions of the Unity Engine now include x86 build support and specific Chrome OS improvements. These features include the following benefits:

  • Improved game performance and control for app optimization
  • Improved window management and input support, making the user experience top-notch

Building for x86 is straight-forward:

  1. Go to the PLAYER configuration screen
  2. Select IL2CPP for the scripting back end
  3. Choose the x86 and x86_64 Chrome OS build targets

To improve game performance even more, look through the advanced settings and adjust the defaults to match your specific needs, as shown in this graphic:

screenshot of the settings

For more information, see the Unity Documentation.

 

Intel® Bridge Technology (Intel® BT) and Built-In X86

Our top recommendation for improving performance on Intel® devices is to add X86 built-in support if you use the standard libraries in the applications. To do that, add the following lines to your build.gradle file (used with X86 and X86_64 ABIs).

screenshot of added lines of code

Adding those lines will generate standard X86 versions. Use Google's Android App Bundle publishing format to resolve Android application package size concerns. For more information see:

For all other ARM applications, Intel® BT translates standard ARM instructions into standard X86 instructions for running ARM Android apps on Intel platforms. Intel® BT performs very well compared to its competition and is constantly being improved to minimize translation overhead.

Intel® Advanced Vector Extensions 2 (Intel® AVX2)

A single instruction multiple data (SIMD) unit is a hardware component that performs the same operation on multiple data operands concurrently. Intel AVX2, a 256-bit instruction set extension to the Intel® Streaming SIMD Extensions (Intel® SSE) instruction set, enables operations on eight floating elements per iteration, greatly improving application performance through parallelism.

Approaches to enable Intel AVX2:

  • Use compiler support for clang /gcc. The major compilation flags used are march=”<architecture>”, “-mavx2”, “-mfma”
  • Use compiler support: java. The JVM (Java virtual machine) options are org.gradle.jvmargs= -XX:UseAVX=2 - XX:UseFMA -XX:+UseSuperWord
  • Integrate intrinsic functions for Intel AVX or Intel AVX2 into app functions
  • Integrate Intel oneAPI libraries into app functions

SIMD versions of applications with vectorization support benefit from this optimization. This example app improves performance with Intel AVX2 as tested on Chromebooks with Intel processors.

12th generation Intel Core processors take full advantage of this technology by supportingIntel AVX2 instructions on both Performance-cores and Efficient-cores.

Additional resources to enable Intel AVX2:

 

Intel® VTune™ Profiler Tool

The Intel VTune Profiler helps identify and fix performance bottlenecks. It also helps optimize application performance, system performance, and system configuration for Android apps. In using it, the key is to minimize the time it takes your program, module, or function to run. You should identify the hot spots in the app and optimize them with the compiler or by hand. To optimize them:

  • Maximize CPU and GPU utilization and minimize elapsed time
  • Ensure that the CPU is busy all the time
  • Optimize task execution

The following figure depicts a CPU front-end hot spot:

 

The following figure displays statistics related to hot spot analysis:

 

The following figure depicts the utilization of physical and logical cores:

Additional resources for Intel VTune Profiler:

 

Hardware Acceleration

Chromebooks shipped with Intel® Iris® Xe graphics have 96 execution units, and support OpenGLES 3.1, EGL 1.4, and Venus Vulkan 1.1 APIs for accelerated 3D graphics. Media acceleration is achieved by using iHD drivers supporting AVC, VP8, VP9, AV1, and HEVC codecs. Chromebooks with Intel processors may also ship with specialized Intel® Image Processing Unit (Intel® IPU) cameras that provide an excellent experience for users. These cameras use Intel IPU hardware acceleration for processing and free CPU resources. They also support higher resolutions and are both faster and more reliable than USB cameras. ARCVM exposes these accelerators for Android applications.

Intel and Google have worked together to improve the user experience and performance of ARCVM for Android workloads. These optimized solutions will be available on Chromebooks with 12th generation Intel Core processors.

 

References
  1. Android App Usage on Chromebooks

 

Notices & Disclaimers

Intel technologies may require enabled hardware, software or service activation.

© Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries.

Google, Android and Chromebook are trademarks of Google LLC.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.