Some of the material in is restricted to members of the community. By logging in, you may be able to gain additional access to certain collections or items. If you have questions about access or logging in, please use the form on the Contact Page.
The ART executes apps in 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. I 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. This dissertation will address three main points. First, there is an increase in third-party library usage and an increase in the number of libraries used per app. Second, the execution of benchmark apps shows that most page accesses are before COW operations, which indicates that pages from preloaded classes will infrequently be duplicated. Third, a novel framework, the Amniote framework, moves control of the Zygote process to user space allowing greater opportunities for preloading and adoption of third-party libraries.