Tool First to Automate App 'Slicing' for Developers
Whether it's a theme park, music festival, or vacation destination, there's always a new app. But, downloading a new app onto an already cluttered smartphone can be challenging, particularly with limited network connectivity.
A new plug-in tool created at Georgia Tech for app developers, however, lets people select and use relevant "slices" of an app without the entire download on their phone. Known as "AppSlicer", the tool builds on existing dynamic program slicing capabilities, but it is the first of its kind to eliminate the need for additional coding by automating the process for app developers.
“If the network is as fast as the card on my phone, why would I ever need to install an app? We created AppSlicer, so you wouldn’t have to,” said Ketan Bhardwaj, a research scientist in Georgia Tech's College of Computing who worked on the tool.
To confirm its functionality, AppSlicer was tested on the top 50 apps in the Google Play store. The research team found that the slices served up through their new development tool had security and performance levels equal to those of complete apps.
"By providing only the necessary parts of an app, and then automatically deleting them when no longer in use, AppSlicer saves people time and phone storage space, all with the same user interface and experience they would have with the complete app," Bhardwaj said.
AppSlicer uses dynamic program slicing to determine when an app uses each resource, then divides the app into only these functional elements. Each of these slices can carry out a single task, like determining a ride wait time at a theme park. The tool also expands on existing capabilities by taking advantage of a user’s smartphone network. If a slice isn’t complete, or the user wants to access other app features, the app still works because AppSlicer relies on the network — not the phone — and handles any issues without the user ever knowing.
“In other domains, you have to be precise about the slice, but with app slicing, even approximate slicing makes huge improvements in performance and doesn’t jeopardize service because AppSlicer dynamically streams missing app components. Correctness is never a factor,” said Ada Gavrilovska, School of Computer Science associate professor.
AppSlicer currently only works on Android, but Gavrilovska and Bhardwaj see this work only gaining momentum as the app economy grows. Soon, apps could be customized for specific contexts and different types of devices. They also believe it’s part of a bigger trend in systems research, edge computing, where computation is done closer to the source.
“There are a lot of user-facing cases that won’t work when served from the cloud, so this is just one example we can quantify where there are gaps in the traditional device-cloud model that edge computing can improve,” Gavrilovska said.
Bhardwaj and Gavrilovska presented the research in the paper Serving Mobile Apps — A Slice at a Time, co-authored with master’s students Nikita Juneja and Matt Saunders. It was an accepted paper at EuroSys 2019 in Dresden, Germany, at the end of March.