May 16, 2019 | Atlanta, GA
Every theme park, music festival, and new city has an app now. For all their utility, downloading an app off a network onto an already cluttered phone isn’t convenient. But School of Computer Science (SCS) researchers have created a tool called AppSlicer that lets users install only the portion of the app with the same performance capabilities.
AppSlicer saves users time and phone storage because it gives access to only the necessary parts of the app then automatically deletes it from the device when no longer in use. It also makes developers’ work easier because the entire process is automated.
“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 SCS who worked on the tool.
The researchers are not the only ones to suggest only a portion of the app is necessary, but they are the first to automate it. Google Instant Apps, for example, allows users to try out apps before committing, but requires developers to create new code to facilitate app slicing.
An app, in essence, is a set of files and resources executed at various times. AppSlicer employs a programming technique called dynamic program slicing to determine when the app uses each resource, then divides the app into only these functional elements, or slices. Each slice can carry out a single task, like determining a ride wait time at a theme park.
This research expands on existing dynamic program slicing capabilities because it takes advantage of the user’s smartphone network. If the 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 because AppSlicer dynamically streams missing app components,” said SCS Associate Professor Ada Gavrilovska. “Correctness is never a factor.”
AppSlicer was tested on the top 50 apps in the Google Play store. The researchers found that AppSlicer improves app delivery and maintains performance and security with no additional work for app developers.
Although AppSlicer only works on Android currently, 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, coauthored with master’s students Nikita Juneja and Matt Saunders. It was an accepted paper at EuroSys in Dresden, Germany, at the end of March.