Abstract
Recording and replaying the execution of smartphone apps is useful in a variety of contexts, from reproducing bugs to profiling and testing. Achieving effective record-and-replay is a balancing act between accuracy and overhead. On smartphones, the act is particularly complicated, because smartphone apps receive a high-bandwidth stream of input (e.g., network, GPS, camera, microphone, touchscreen) and concurrency events, but the stream has to be recorded and replayed with minimal overhead, to avoid interfering with app execution. Prior record-and-replay approaches have focused on replaying machine instructions or system calls, which is not a good fit on smartphones. We propose a novel, stream-oriented record-and-replay approach which achieves high-accuracy and low-overhead by aiming at a sweet spot: recording and replaying sensor and network input, event schedules, and inter-app communication via intents. To demonstrate the versatility of our approach, we have constructed a tool named VALERA that supports record-and-replay on the Android platform. VALERA works with apps running directly on the phone, and does not require access to the app source code. Through an evaluation on 50 popular Android apps, we show that: VALERA's replay fidelity far exceeds current record-and-replay approaches for Android; VALERA's precise timing control and low overhead (about 1% for either record or replay) allows it to replay high-throughput, timing-sensitive apps such as video/audio capture and recognition; and VALERA's support for event schedule replay enables the construction of useful analyses, such as reproducing event-driven race bugs.
- D. Amalfitano, A. Fasolino, S. Carmine, A. Memon, and P. Tramontana. Using gui ripping for automated testing of android applications. In ASE’12. Google Scholar
Digital Library
- Android Developers. UI/Application Exerciser Monkey,. http://developer.android.com/tools/help/ monkey.html.Google Scholar
- Android Developers. MonkeyRunner,. http: //developer.android.com/guide/developing/tools/ monkeyrunner_concepts.html.Google Scholar
- Android Developers. SharedPreferences,. https: //developer.android.com/reference/android/ content/SharedPreferences.html.Google Scholar
- Atif Memon. GUITAR, August 2012.Google Scholar
- guitar.sourceforge.net/.Google Scholar
- M. Böhmer, B. Hecht, J. Schöning, A. Krüger, and G. Bauer. Falling asleep with angry birds, facebook and kindle: a large scale study on mobile application usage. In MobileHCI’11.Google Scholar
- CNET. Android dominates 81 percent of world smartphone market, November 2013. http://www.cnet.com/ news/android-dominates-81-percent-of-worldsmartphone-market/.Google Scholar
- CNET. Android beat Apple in tablet sales last year – Gartner, March 2014. http://www.cnet.com/news/androidbeat-apple-in-tablet-sales-last-year-gartner/.Google Scholar
- D. Geels, G. Altekar, S. Shenker, and I. Stoica. Jockey: a user-space library for record-replay debugging. In USENIX ATC’06.Google Scholar
- G. W. Dunlap, S. T. King, S. Cinar, M. A. Basrai, and P. M. Chen. Revirt: enabling intrusion analysis through virtualmachine logging and replay. In OSDI’02. Google Scholar
Digital Library
- Google Code. Robotium, August 2012. http:// code.google.com/p/robotium/.Google Scholar
- Z. Guo, X. Wang, J. Tang, X. Liu, Z. Xu, M. Wu, M. F. Kaashoek, and Z. Zhang. R2: An application-level kernel for record and replay. In OSDI’08. Google Scholar
Digital Library
- M. Halpern, Y. Zhu, and V. J. Reddi. Mosaic: Cross-platform user-interaction record and replay for the fragmente d android ecosystem. In ISPASS’15.Google Scholar
- P. Hornyack, S. Han, J. Jung, S. Schechter, and D. Wetherall. These aren’t the droids you’re looking for: Retrofitting android to protect data from imperious applications. In CCS’11. Google Scholar
Digital Library
- C.-H. Hsiao, J. Yu, S. Narayanasamy, Z. Kong, C. L. Pereira, G. A. Pokam, P. M. Chen, and J. Flinn. Race detection for event-driven mobile applications. In PLDI’14. Google Scholar
Digital Library
- J. Steven, P. Chandra, B. Fleck, and A. Podgurski. jrapture: A capture/replay tool for observation-based testing. In ISSTA’00. Google Scholar
Digital Library
- Jinseong Jeon and Jeffrey S. Foster. Troyd, January 2013. https://github.com/plum-umd/troyd.Google Scholar
- Jinseong Jeon and Kristopher Micinski and Jeffrey S. Foster. Redexer. http://www.cs.umd.edu/projects/PL/ redexer/index.html.Google Scholar
- L. Gomez, I. Neamtiu, T.Azim, and T. Millstein. Reran: Timing- and touch-sensitive record and replay for android. In ICSE ’13. Google Scholar
Digital Library
- L. Lamport. Time, clocks, and the ordering of events in a distributed system. CACM’78, 21(7):558–565. Google Scholar
Digital Library
- P. Maiya, A. Kanade, and R. Majumdar. Race detection for android applications. In PLDI’14. Google Scholar
Digital Library
- S. Narayanasamy, G. Pokam, and B. Calder. Bugnet: Continuously recording program execution for deterministic replay debugging. In ISCA ’05. Google Scholar
Digital Library
- H. Patil, C. Pereira, M. Stallcup, G. Lueck, and J. Cownie. Pinplay: A framework for deterministic replay and reproducible analysis of parallel programs. In CGO ’10. Google Scholar
Digital Library
- M. Ronsse and K. D. Bosschere. Recplay: A fully integrated proctical record/replay system.Google Scholar
- S. T. King, G. W. Dunlap, and P. M. Chen. Debugging operating systems with time-traveling virtual machines. In USENIX ATC’05. Google Scholar
Digital Library
- S. M. Srinivasan, S. Kandula, C. R. Andrews, and Y. Zhou. Flashback: a lightweight extension for rollback and deterministic replay for software debugging. In USENIX ATC’04. Google Scholar
Digital Library
- T.Azim and I. Neamtiu. Targeted and depth-first exploration for systematic testing of android apps. In OOPSLA’13. Google Scholar
Digital Library
- X. Wei, L. Gomez, I. Neamtiu, and M. Faloutsos. Profile-Droid: Multi-layer Profiling of Android Applications. In MobiCom’12. Google Scholar
Digital Library
- M. Xu, R. Bodik, and M. D. Hill. A ”flight data recorder” for enabling full-system multiprocessor deterministic replay. In ISCA ’03, pages 122–135. Google Scholar
Digital Library
- Y. Saito. Jockey: a user-space library for record-replay debugging. In AADEBUG’05. Google Scholar
Digital Library
Index Terms
Versatile yet lightweight record-and-replay for Android
Recommendations
Record and replay for Android: are we there yet in industrial cases?
ESEC/FSE 2017: Proceedings of the 2017 11th Joint Meeting on Foundations of Software EngineeringMobile applications, or apps for short, are gaining popularity. The input sources (e.g., touchscreen, sensors, transmitters) of the smart devices that host these apps enable the apps to offer a rich experience to the users, but these input sources pose ...
Versatile yet lightweight record-and-replay for Android
OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and ApplicationsRecording and replaying the execution of smartphone apps is useful in a variety of contexts, from reproducing bugs to profiling and testing. Achieving effective record-and-replay is a balancing act between accuracy and overhead. On smartphones, the act ...
Improving the Android development lifecycle with the VALERA record-and-replay approach
MobileDeLi 2015: Proceedings of the 3rd International Workshop on Mobile Development LifecycleAs smartphones become more and more popular, developers are switching their focus from traditional desktop programs to mobile apps. Recording and replaying the execution of mobile apps is useful in development tasks, from reproducing bugs to profiling ...






Comments