  With the popularity of smartphones, users are heavily dependent on mobile
applications for daily work and entertainments. However, mobile apps are
becoming more and more complicated with more features and increasing size, part
of which may be redundant to users. Due to the limitation of current
installation mechanism, users have to download full-size applications instead
of enjoy only the wanted features. Such full-size apps may consume more
resources, including CPU, memory, and energy, which may hurt users' enthusiasm
for further installation. We first conduct an empirical study to characterize
used features when users interact with mobile applications, and find that users
only consume a small set features of target apps. To address this problem, we
present AppStarscream, which offers to decompose and run Android apps with
app-level virtualization. We have implemented a prototype system and evaluated
it with real-world apps showing that AppStarscream is efficient and practical.
