Serving Mobile Apps: A Slice at a Time

End users wanting to do more and more with mobile apps has led to explosive growth in the number of available apps. This has widened the gap between developers making apps available and end users being able to install all the apps they want on their device. To address this, Google introduced Instant Apps for Android where users can access selective app features on demand without having to download and install entire apps. But this requires developers to refactor apps and limits the apps' functionality. In this paper, we present AppSlicer -- a solution that automates the creation, delivery, execution and cleanup of lightweight app slices from native apps. With AppSlicer, app slices are created from existing native apps, without requiring any additional developer effort. App slices run on end-user devices and correspond to arbitrary single functionality (task) that is carried out using an app. We demonstrate that app slicing is practical, it provides users with seamless access to app functionality with performance matching that of native installed apps, and better than other technologies for on-demand delivery of apps.

[1]  Ada Gavrilovska,et al.  DRIVESHAFT: Improving Perceived Mobile Web Performance , 2018, ArXiv.

[2]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[3]  Galen C. Hunt,et al.  The Coign automatic distributed partitioning system , 1999, OSDI '99.

[4]  Vitaly Shmatikov,et al.  Eternal Sunshine of the Spotless Machine: Protecting Privacy with Ephemeral Channels , 2012, OSDI.

[5]  Hari Balakrishnan,et al.  Vesper: Measuring Time-to-Interactivity for Web Pages , 2018, NSDI.

[6]  Cristian Ungureanu,et al.  Revisiting storage for smartphones , 2012, TOS.

[7]  Cristian Ungureanu,et al.  Examining storage performance on mobile devices , 2011, MobiHeld '11.

[8]  Marsha Chechik,et al.  Semantic Slicing of Software Version Histories (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[9]  Joseph Robert Horgan,et al.  Dynamic program slicing , 1990, PLDI '90.

[10]  Alec Wolman,et al.  MAUI: making smartphones last longer with code offload , 2010, MobiSys '10.

[11]  Sivan Toledo,et al.  Wishbone: Profile-based Partitioning for Sensornet Applications , 2009, NSDI.

[12]  Michael S. Bernstein,et al.  4chan and /b/: An Analysis of Anonymity and Ephemerality in a Large Online Community , 2011, ICWSM.

[13]  J. Rubin,et al.  Semantic Slicing of Software Version Histories , 2018, IEEE Transactions on Software Engineering.

[14]  Ada Gavrilovska,et al.  Ephemeral Apps , 2016, HotMobile.

[15]  Gustavo Alonso,et al.  Calling the Cloud: Enabling Mobile Phones as Interfaces to Cloud Applications , 2009, Middleware.

[16]  Gustavo Alonso,et al.  Dynamic Software Deployment from Clouds to Mobile Devices , 2012, Middleware.

[17]  Je-Min Kim,et al.  AndroBench: Benchmarking the Storage Performance of Android-Based Mobile Devices , 2011, ICFCE.

[18]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[19]  Laura Vasiliu,et al.  CloneCloud: Elastic Execution between Mobile Device and Cloud , 2012 .

[20]  Youjip Won,et al.  I/O Stack Optimization for Smartphones , 2013, USENIX ATC.

[21]  Byung-Gon Chun,et al.  CloneCloud: elastic execution between mobile device and cloud , 2011, EuroSys '11.