APPx: an automated app acceleration framework for low latency mobile app

Minimizing response time of mobile applications is critical for user experience. Existing work predominantly focuses on reducing mobile Web latency, whereas users spend more time on native mobile apps than mobile Web. Similar to Web, mobile apps contain a chain of dependencies between successive requests. However, unlike Web acceleration where object dependencies can easily be identified by parsing Web documents, App acceleration is much more difficult because the dependency is encoded in the app binary. Motivated by recent advances in program analysis, this paper presents a system that utilizes static program analysis to automatically generate acceleration proxies for mobile apps. Our framework takes Android app binary as input, performs program analysis to identify resource dependencies, and outputs an acceleration proxy that performs dynamic prefetching. Our evaluation using a user study from 30 participants and an in-depth analysis of popular commercial apps shows that an acceleration proxy reduces the median user-perceived latency by up to 64% (1,471 ms).

[1]  Nicola Blefari-Melazzi,et al.  On the Fly TCP Acceleration with Miniproxy , 2016, HotMIddlebox '16.

[2]  Tilman Wolf,et al.  Transparent TCP acceleration , 2009, Comput. Commun..

[3]  Ratul Mahajan,et al.  Timecard: controlling user-perceived delays in server-based mobile applications , 2013, SOSP.

[4]  Ravi Netravali,et al.  Prophecy: Accelerating Mobile Page Loads Using Final-state Write Logs , 2018, NSDI.

[5]  Jeffrey C. Mogul,et al.  Using predictive prefetching to improve World Wide Web latency , 1996, CCRV.

[6]  Vijay Gopalakrishnan,et al.  NutShell: Scalable Whittled Proxy Execution for Low-Latency Web over Cellular Networks , 2017, MobiCom.

[7]  Jacques Klein,et al.  Effective inter-component communication mapping in Android with Epicc: an essential step towards holistic security analysis , 2013 .

[8]  Albert G. Greenberg,et al.  Measuring and Evaluating TCP Splitting for Cloud Services , 2010, PAM.

[9]  Andreas Pamboris,et al.  Edge Reduce: Eliminating Mobile Network Traffic Using Application-Specific Edge Proxies , 2015, 2015 2nd ACM International Conference on Mobile Software Engineering and Systems.

[10]  David A. Wagner,et al.  Analyzing inter-application communication in Android , 2011, MobiSys '11.

[11]  Hyunwoo Choi,et al.  Enabling Automatic Protocol Behavior Analysis for Android Applications , 2016, CoNEXT.

[12]  Matt Welsh,et al.  Flywheel: Google's Data Compression Proxy for the Mobile Web , 2015, NSDI.

[13]  Leonard Kleinrock,et al.  Web prefetching in a mobile environment , 1998, IEEE Wirel. Commun..

[14]  Dawn Xiaodong Song,et al.  NetworkProfiler: Towards automatic fingerprinting of Android apps , 2013, 2013 Proceedings IEEE INFOCOM.

[15]  Zhen Wang,et al.  How far can client-only solutions go for mobile browser speed? , 2011, WWW.

[16]  Srikanth V. Krishnamurthy,et al.  FlexiWeb: Network-Aware Compaction for Accelerating Mobile Web Transfers , 2015, MobiCom.

[17]  Suresha,et al.  Proxy-based acceleration of dynamically generated content on the world wide web: an approach and implementation , 2002, SIGMOD '02.

[18]  H. T. Kung,et al.  Mobile App Acceleration via Fine-Grain Offloading to the Cloud , 2014, HotCloud.

[19]  Ravi Netravali,et al.  Remote-Control Caching: Proxy-based URL Rewriting to Decrease Mobile Browsing Bandwidth , 2018, HotMobile.

[20]  Scott Shenker,et al.  Caching Doesn't Improve Mobile Web Performance (Much) , 2016, USENIX Annual Technical Conference.

[21]  Xu Chen,et al.  COMET: Code Offload by Migrating Execution Transparently , 2012, OSDI.

[22]  Suman Nath,et al.  PUMA: programmable UI-automation for large-scale dynamic analysis of mobile apps , 2014, MobiSys.

[23]  Aruna Balasubramanian,et al.  Improving User Perceived Page Load Times Using Gaze , 2017, NSDI.

[24]  Jason Flinn,et al.  Informed mobile prefetching , 2012, MobiSys '12.

[25]  Silvia Santini,et al.  Every Byte Counts , 2017, Proc. ACM Interact. Mob. Wearable Ubiquitous Technol..

[26]  Yuchung Cheng,et al.  TCP fast open , 2011, CoNEXT '11.

[27]  Rajkumar Buyya,et al.  Mobile code offloading: from concept to practice and beyond , 2015, IEEE Communications Magazine.

[28]  Nenad Medvidovic,et al.  Leveraging Program Analysis to Reduce User-Perceived Latency in Mobile Applications , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

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

[30]  Huber Flores,et al.  Adaptive code offloading for mobile cloud applications: exploiting fuzzy sets and evidence-based learning , 2013, MCS '13.

[31]  Weibo Gong,et al.  Application level relay for high-bandwidth data transport , 2004 .

[32]  David Wetherall,et al.  Demystifying Page Load Performance with WProf , 2013, NSDI.

[33]  Tim Verbelen,et al.  Cloudlets: bringing the cloud to the mobile user , 2012, MCS '12.

[34]  Darrell D. E. Long,et al.  Exploring the Bounds of Web Latency Reduction from Caching and Prefetching , 1997, USENIX Symposium on Internet Technologies and Systems.

[35]  Xin Chen,et al.  A Popularity-Based Prediction Model for Web Prefetching , 2003, Computer.

[36]  Jitendra Padhye,et al.  Procrastinator: pacing mobile apps' usage of the network , 2014, MobiSys.

[37]  Jon Howell,et al.  Crom: Faster Web Browsing Using Speculative Execution , 2010, NSDI.

[38]  David Wetherall,et al.  Speeding up Web Page Loads with Shandian , 2016, NSDI.

[39]  Harsha V. Madhyastha,et al.  Vroom: Accelerating the Mobile Web with Server-Aided Dependency Resolution , 2017, SIGCOMM.

[40]  Christopher Krügel,et al.  EdgeMiner: Automatically Detecting Implicit Control Flow Transitions through the Android Framework , 2015, NDSS.

[41]  Scott A. Mahlke,et al.  Accelerating Mobile Applications through Flip-Flop Replication , 2015, MobiSys.

[42]  Jacques Klein,et al.  FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps , 2014, PLDI.

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

[44]  Yao Guo,et al.  Looxy: Web Access Optimization for Mobile Applications with a Local Proxy , 2017, 2017 IEEE 85th Vehicular Technology Conference (VTC Spring).

[45]  Pan Hui,et al.  ThinkAir: Dynamic resource allocation and parallel execution in the cloud for mobile code offloading , 2012, 2012 Proceedings IEEE INFOCOM.

[46]  Khaled Elmeleegy,et al.  Overclocking the Yahoo!: CDN for faster web page loads , 2011, IMC '11.

[47]  Zhe Wu,et al.  Klotski: Reprioritizing Web Content to Improve User Experience on Mobile Devices , 2015, NSDI.

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

[49]  Srinivasan Seshan,et al.  Improving TCP/IP performance over wireless networks , 1995, MobiCom '95.