Bring a Mobile Application Ecosystem to PC Clients through Virtualized Android*

ID 721790
Updated 2/15/2022
Version Latest
Public

author-image

By

Authors: Yong Yao, Zachary Zou, Luhai Chen, Jacky Deng, and Fei Jiang

Running mobile applications on personal computers and a converged user experience between PCs and mobile devices is trending. This is due to mobile applications achieving great success and providing the best interactive user experience.

From a software developer point of view, Android* and iOS attracts the most developers. There are more mobile application developers than Windows* and Linux* developers. PCs can provide a bigger screen, an efficient I/O, better performance, and more. Sometimes PCs run mobile applications better than smartphones. Also, the mobile-dominated, device ecosystem based on Android has seen the arrival of use cases such as client, IoT, automotive, edge, and cloud. To better support the Android ecosystem for emerging uses, we defined the “high scale, low touch” strategy. This allowed us to use limited resources to support a range of Android use cases that our customers and Android application and system developers are working on.

Work with Celadon

We started our journey with Celadon, the Android open source project for Intel® architecture. Celadon is designed to be fully compliant with Android compatibility definitions, ensuring affinity and security of applications running on the stack. The auto adaptation framework (AAF) is the key component that makes Celadon unique. It automatically detects and binds system kernel drivers and loads the hardware abstraction layer (HAL) modules and configurations for various devices exposed on Intel architecture. One Celadon image provides a unified architecture, accelerating development of broad workload consolidation use cases from edge to cloud. It can run Android applications in virtual machines (VM) or on bare metal devices. To best support customized configurations and use cases, we also developed an open source Mixins* tool, which addresses a specific configuration problem in Android. You can now change the configure file to turn on or off one feature or switch the implementation. These features allow you to use Celadon for different purposes, such as a tablet, point-of-sale system, or In-Vehicle Infotainment without many code changes.

For last five years, Celadon has provided the latest version of Android for x86: Within 48-72 hours of Android public release (estimated based on Intel internal records).

Work with Microsoft*

Microsoft* has introduced the Windows Subsystem for Android*. It includes a stack based on Android Stack from the Android Open Source Project (AOSP) that runs in the Hyper-V* VM. Through this subsystem, you can download different Android applications to Windows* 11. Intel® Bridge Technology (Intel® BT) is part of this subsystem to support certain Android applications that cannot run on x86 platforms. We continue to work closely with Microsoft to fully use the capability of Intel architecture to provide the best use for Android applications on Windows.

Android Applications for Operating Systems Based on Linux

Since 2016, when Google Play* was brought to Chromebooks*, application developers have been encouraged to improve and adapt their applications for larger screens with hardware inputs from trackpad, mouse, keyboard, and stylus. Intel has worked closely with Google* to ensure Chromebooks are fully optimized on Intel architecture.

Intel also helped to extend Android applications to other operating systems based on Linux. In China, Intel worked with key partners using Celadon to ensure that multiple Android applications can run simultaneously with Linux applications to provide seamless user experiences.

 

Application Compatibility

As you may know, the biggest barrier to run Android on x86 CPU architecture is application compatibility. Android provides built-in APIs (Native Development Kit [NDK]) so you can embed the native code (such as C or C++) in your application. For multiple reasons, such as better performance, many Android applications have built-in C or C++ libraries. Normally, if built-in libraries are not compiled for one CPU architecture, that application cannot be run on it. Intel BT can help. It's a runtime, post compiler that enables Android applications with built-in libraries not compiled for x86 CPU architecture to run on x86 platforms.

Build Android Applications for x86 CPU Architecture

To get the best performance and experience, we need all Android developers to help by adding x86 support in applications. For the top 100 free nongaming apps, the x86 porting rate increased from 38% in 2019 to 74% in 2021 (an internal Intel estimate based on the published top application list).

But, the x86 porting rate for games was not good due to the deprecation of x86 support from the Unity* engine. Unity has resumed x86 support for both 32 bit (x86) and 64 bit (x86_64) versions and improved the support for keyboard, mouse and large screen because of the Chrome OS. It meets the requirements for applications in the Google Play store (starting in August 2019, all published applications need to support 64-bit architecture).

We have already verified that based on the instructions from Unity, we can build the Android applications by using Unity engine to support x86 including both 32 bit and 64 bit versions.

Summary

We don’t want to stop here. We also extended our scope to IoT, edge, cloud (including cloud gaming and cloud media), and more. Our goal is to run Android applications on all Intel® platforms to provide the best support and Android product/service to Android developers, the Android community, and the Android ecosystem.