AndroidX is a customizable Android runtime environment for running Android applications on clouds. We provide a container-based approach to custom-tailor Android OS components. Under the guidance of this approach, we develop an automatic customization toolkit named AndroidKit for generating specific Android OS components. Through this toolkit, we are able to boot new Android VM instances called AndroidXs, which are composed of OS images generated by AndroidKit.
The figure provides an overview of AndroidX’s architecture. It can be clearly observed that AndroidX has two core components.
One is a set of tools with command line interfaces called AndroidKit that is used to parse input yaml configuration file and generate Docker images.
The other is a hypervisor-agnostic runtime, which is able to launch images with a new VM instance.
Internal to the AndroidX instance in this figure, a minimalist Android Kernel called AndroidX-Kernel is booted directly by hypervisor. The AndroidX-Kernel employs a tiny Android initialization service called AndroidX-Init to load the images from host and then launch them. Through containing applications within separate VM instances and kernel spaces, AndroidXs are able to provide more excellent workload isolation than containers, and security advantages like VMs, which are much suitable for multi-tenant cloud environments.
We provide a detailed description of the document for you. This document describes how to build and run AndroidXs on the ordinary GNU/Linux platform.