Authors:
Zachary Yannes
and
Gary Tyson
Affiliation:
Department of Computer Science, Florida State University, Tallahassee and U.S.A.
Keyword(s):
Android, Zygote, Runtime, Dalvik, Virtual Machine, Preloading, ClassLoader, Library.
Related
Ontology
Subjects/Areas/Topics:
Application Integration Technologies
;
Applications
;
Service-Oriented Software Engineering and Management
;
Software Change and Configuration Management
;
Software Engineering
;
Software Metrics
;
Software Process Improvement
;
Software Project Management
Abstract:
The Android Runtime (ART) executes apps in a dedicated virtual machine called the Dalvik VM. The Dalvik VM creates a Zygote instance when the device first boots which is responsible for sharing Android runtime libraries to new applications. New apps rely heavily on external libraries in addition to the runtime libraries for everything from graphical user interfaces to remote databases. We propose an extension to the Zygote, aptly named Amniote, which exposes the Zygote to the user space. Amniote allows developers to sideload common third-party libraries to reduce application boot time and memory. Just like the Android runtime libraries, apps would share the address to the library and generate a local copy only when one app writes to a page. In this paper, we will address three points. First, we will demonstrate that many third-party libraries are used across the majority of Android applications. Second, execution of benchmark apps show that most page accesses are before copy-on-write
operations, which indicates that pages from preloaded classes will infrequently be duplicated. Third, we will provide a solution, the Amniote framework, and detail the benefits over the traditional Zygote framework.
(More)