AppStreamer: Reducing Storage Requirements of Mobile Games through Predictive Streaming
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.
💡 Research Summary
The paper “AppStreamer: Reducing Storage Requirements of Mobile Games through Predictive Streaming” addresses the critical and growing problem of storage scarcity on smartphones, exacerbated by the increasing size and popularity of mobile games and heavy applications. It proposes AppStreamer, a novel system that reduces the local storage footprint of such apps without significantly degrading user experience.
The core insight behind AppStreamer is that applications, especially games, only require a small subset of their total resource files (images, audio, models) at any given moment during execution. Instead of storing the entire application locally, AppStreamer maintains only a fraction of the files on the device as a cache. The remainder is kept on a cloud storage server. As the user interacts with the app, AppStreamer continuously analyzes real-time file access patterns to predict which blocks of data will be needed in the near future. These predicted blocks are then prefetched from the cloud server proactively, aiming to have them available on the local storage before the application actually requests them, thereby avoiding user-perceptible stalls.
A key design principle is application-agnosticism and transparency. AppStreamer is implemented at the Android virtual file system (VFS) layer. This requires no modifications to the application source code, no special APIs, and no developer effort, making it universally applicable to existing closed-source commercial apps.
The system operates in two phases: offline training and online execution. In the offline phase, file block access traces are collected from various gameplay sessions. These traces are used to build a Continuous-Time Markov Chain (CTMC) model that captures the probabilities of transitioning between different blocks or groups of blocks (called “superblocks”). In the online phase, this model, combined with the real-time access history, is used to perform predictions and trigger prefetching.
The evaluation employs two popular, closed-source mobile games representing different genres: “Dead Effect 2” (a 3D first-person shooter, ~1.7GB) and “Fire Emblem Heroes” (a 2D turn-based strategy RPG, ~589MB). The results demonstrate substantial storage savings: AppStreamer reduces local storage requirements by 87% for Dead Effect 2 and 86% for Fire Emblem Heroes. Crucially, user studies show that 75% and 87% of users for the respective games found the experience with AppStreamer to be equivalent to the baseline where all files were stored locally. Microbenchmarks further explore the trade-offs between parameters like network bandwidth, prediction lookahead time, and cache size.
The paper also contrasts AppStreamer with traditional cloud gaming, where the entire game runs on a server and video is streamed to the client. Experiments show AppStreamer uses 77% less bandwidth and incurs 98% lower latency, making it more suitable for highly interactive applications on variable mobile networks.
In conclusion, AppStreamer presents a practical and effective solution to the mobile storage crunch. By intelligently predicting and streaming only the necessary application components, it enables a new paradigm of “application streaming,” analogous to the shift from downloading to streaming media, potentially changing how large applications are delivered and consumed on mobile devices.
Comments & Academic Discussion
Loading comments...
Leave a Comment