WEST LAFAYETTE, Ind. -- If you resort to deleting apps when your phone's storage space is full, researchers have a solution.
New software "streams" data and code resources to an app from a cloud server when necessary, allowing the app to use only the space it needs on a phone at any given time.
"It's like how Netflix movies aren't actually stored on a computer. They are streamed to you as you are watching them," said Saurabh Bagchi, a Purdue University professor of electrical and computer engineering, and computer science, and director of the Center for Resilient Infrastructures, Systems and Processes.
"Here the application components, like heavy video or graphics or code paths, are streaming instantly despite the errors and slowdowns that are possible on a cellular network."
Bagchi's team showed in a study how the software, called "AppStreamer," cuts down storage requirements by at least 85% for popular gaming apps on an Android.
The software seamlessly shuffles data between an app and a cloud server without stalling the game. Most study participants didn't notice any differences in their gaming experience while the app used AppStreamer.
Since AppStreamer works for these storage-hungry gaming apps, it could work for other apps that usually take up far less space, Bagchi said. The software also allows the app itself to download faster to a phone.
The researchers will present their findings Feb. 18 at the 17th International Conference on Embedded Wireless Systems and Networks in Lyon, France. Conference organizers have selected this study as one of three top papers.
AppStreamer is a type of software known as middleware, located between the apps on a device and the operating system.
The middleware automatically predicts when to fetch data from a cloud server. AT&T Labs Research provided data from cellular networks for this study to help evaluate which bandwidths AppStreamer would use and how much energy it would consume.
AppStreamer could help phones better accommodate 5G connectivity - high-speed wireless cellular networks that would allow devices to download movies in seconds and handle other data-heavy tasks much faster than the 4G networks currently available to most phones.
Using AppStreamer on a 5G network would mean that an app downloads instantly, runs faster and takes up minimal space on a phone.
The researchers also designed AppStreamer to use "edge computing," which stores and sends data from edge servers. These servers, located in spots such as cellphone towers, are closer to a device compared to the cloud. The shorter distance reduces data download time.
Bagchi's lab researches ways to make edge computing more reliable. Bagchi wrote on those challenges in an article recently published in Communications of the ACM.
The researchers believe that AppStreamer could be good for more than just phones. In order for self-driving cars to respond to their surroundings more safely, they would need to reliably pull data from servers in milliseconds. Middleware such as AppStreamer could eventually supply this functionality through edge computing on a 5G network.
This research was supported by AT&T and the National Science Foundation (grant numbers CNS-1409506 and CNS-1527262).
AppStreamer: Reducing Storage Requirements of Mobile Games through Predictive Streaming
Nawanol Theera-Ampornpunt1, Shikhar Suryavansh2, Sameer Manchanda3, Rajesh Panta4, Kaustubh Joshi4, Mostafa Ammar5, Mung Chiang2, Saurabh Bagchi2
1Prince of Songkla University, Thailand
3University of Illinois at Urbana-Champaign
4AT&T Labs Research
5Georgia Institute of Technology
Storage has become a constrained resource on smartphones. Gaming is a popular activity on mobile devices and the explosive growth in the number of games coupled with their growing size contributes to the storage crunch. Even where storage is plentiful, it takes a long time to download and install a heavy app before it can be launched. This paper presents AppStreamer, a novel technique for reducing the storage requirements or startup delay of mobile games, and heavy mobile apps in general. AppStreamer is based on the intuition that most apps do not need the entirety of its files (images, audio and video clips, etc.) at any one time. AppStreamer can therefore keep only a small part of the files on the device, akin to a "cache", and download the remainder from a cloud storage server or a nearby edge server when it predicts that the app will need them in the near future. AppStreamer continuously predicts file blocks for the near future as the user uses the app, and fetches them from the storage server before the user sees a stall due to missing resources. We implement AppStreamer at the Android file system layer. This ensures that the apps require no source code or modification, and the approach generalizes across apps. We evaluate AppStreamer using two popular games: Dead Effect 2, a 3D first-person shooter, and Fire Emblem Heroes, a 2D turn-based strategy role-playing game. Through a user study, 75% and 87% of the users respectively find that AppStreamer provides the same quality of user experience as the baseline where all files are stored on the device. AppStreamer cuts down the storage requirement by 87% for Dead Effect 2 and 86% for Fire Emblem Heroes.