Improving the performance and reliability of mobile applications
Author(s)
Sivalingam, Lenin Ravindranath
DownloadFull printable version (17.88Mb)
Other Contributors
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.
Advisor
Hari Balakrishnan.
Terms of use
Metadata
Show full item recordAbstract
The mobile application ("app") ecosystem has grown at a tremendous pace with millions of apps and hundreds of thousands of app developers. Mobile apps run across a wide range of network, hardware, location, and usage conditions that are hard for developers to emulate or even anticipate during lab testing. Hence, app failures and performance problems are common in the wild. Scarce resources, shift away from familiar synchronous programming models, and poor development support has made it more difficult for app developers to overcome these problems. This dissertation focuses on systems that make it significantly easy for app developers to diagnose and improve their mobile apps. To reduce user annoyance and survive the brutally competitive mobile app marketplace, developers need systems that (i) identify potential failures before the app is released, (ii) diagnose problems after the app is deployed in the wild, and (iii) provide reliable app performance in the face of varying conditions in the wild. This dissertation presents systems that satisfy these needs. VanarSena makes it easy to diagnose common failures in mobile apps before deployment, AppInsight makes it easy to monitor mobile apps after deployment, and Timecard allows mobile apps to adapt to conditions in the wild and provide consistent performance. For the legion of amateur app developers with fewer resources at hand, these systems significantly reduce the barrier for diagnosing and improving mobile apps. The systems are built on top of a binary instrumentation framework that automatically rewrites app binary at bytecode level. Hence, using them requires minimal effort on part of the app developer. The systems include novel instrumentation techniques to automatically track the runtime behavior of the app. To cope with the scarcity of resources, they include resource-aware mechanisms that incur negligible overhead. To make them immediately deployable, they are designed to require no modification to the OS or runtime. We have built VanarSena, AppInsight, and Timecard for the Windows Phone platform. VanarSena does automated app testing by systematically emulating user interactions and fault conditions from the wild to uncover app failures. VanarSena uncovered 2,969 distinct crashes in more than 1,100 apps in the app store. AppInsight does light-weight monitoring of mobile apps in the wild. It automatically instruments the app binary to track performance and failures. AppInsight uncovered several performance bottlenecks and crashes in the wild and has provided useful feedback to developers. Timecard enables apps to adapt at runtime and provide consistent performance in the face of varying conditions in the wild. Timecard can tightly control the response time around a desired user-perceived delay.
Description
Thesis: Ph. D., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2014. Cataloged from PDF version of thesis. Includes bibliographical references (pages 129-133).
Date issued
2014Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer SciencePublisher
Massachusetts Institute of Technology
Keywords
Electrical Engineering and Computer Science.