skip to main content
10.1145/2814270.2814320acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Versatile yet lightweight record-and-replay for Android

Published:23 October 2015Publication History

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.

References

  1. D. Amalfitano, A. Fasolino, S. Carmine, A. Memon, and P. Tramontana. Using gui ripping for automated testing of android applications. In ASE’12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Android Developers. UI/Application Exerciser Monkey,. http://developer.android.com/tools/help/ monkey.html.Google ScholarGoogle Scholar
  3. Android Developers. MonkeyRunner,. http: //developer.android.com/guide/developing/tools/ monkeyrunner_concepts.html.Google ScholarGoogle Scholar
  4. Android Developers. SharedPreferences,. https: //developer.android.com/reference/android/ content/SharedPreferences.html.Google ScholarGoogle Scholar
  5. Atif Memon. GUITAR, August 2012.Google ScholarGoogle Scholar
  6. guitar.sourceforge.net/.Google ScholarGoogle Scholar
  7. 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 ScholarGoogle Scholar
  8. CNET. Android dominates 81 percent of world smartphone market, November 2013. http://www.cnet.com/ news/android-dominates-81-percent-of-worldsmartphone-market/.Google ScholarGoogle Scholar
  9. 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 ScholarGoogle Scholar
  10. D. Geels, G. Altekar, S. Shenker, and I. Stoica. Jockey: a user-space library for record-replay debugging. In USENIX ATC’06.Google ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. Google Code. Robotium, August 2012. http:// code.google.com/p/robotium/.Google ScholarGoogle Scholar
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. Steven, P. Chandra, B. Fleck, and A. Podgurski. jrapture: A capture/replay tool for observation-based testing. In ISSTA’00. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Jinseong Jeon and Jeffrey S. Foster. Troyd, January 2013. https://github.com/plum-umd/troyd.Google ScholarGoogle Scholar
  19. Jinseong Jeon and Kristopher Micinski and Jeffrey S. Foster. Redexer. http://www.cs.umd.edu/projects/PL/ redexer/index.html.Google ScholarGoogle Scholar
  20. L. Gomez, I. Neamtiu, T.Azim, and T. Millstein. Reran: Timing- and touch-sensitive record and replay for android. In ICSE ’13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. L. Lamport. Time, clocks, and the ordering of events in a distributed system. CACM’78, 21(7):558–565. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. P. Maiya, A. Kanade, and R. Majumdar. Race detection for android applications. In PLDI’14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. S. Narayanasamy, G. Pokam, and B. Calder. Bugnet: Continuously recording program execution for deterministic replay debugging. In ISCA ’05. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Ronsse and K. D. Bosschere. Recplay: A fully integrated proctical record/replay system.Google ScholarGoogle Scholar
  26. S. T. King, G. W. Dunlap, and P. M. Chen. Debugging operating systems with time-traveling virtual machines. In USENIX ATC’05. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. T.Azim and I. Neamtiu. Targeted and depth-first exploration for systematic testing of android apps. In OOPSLA’13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. X. Wei, L. Gomez, I. Neamtiu, and M. Faloutsos. Profile-Droid: Multi-layer Profiling of Android Applications. In MobiCom’12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. Y. Saito. Jockey: a user-space library for record-replay debugging. In AADEBUG’05. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Versatile yet lightweight record-and-replay for Android

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • Published in

                cover image ACM Conferences
                OOPSLA 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
                October 2015
                953 pages
                ISBN:9781450336895
                DOI:10.1145/2814270
                • cover image ACM SIGPLAN Notices
                  ACM SIGPLAN Notices  Volume 50, Issue 10
                  OOPSLA '15
                  October 2015
                  953 pages
                  ISSN:0362-1340
                  EISSN:1558-1160
                  DOI:10.1145/2858965
                  • Editor:
                  • Andy Gill
                  Issue’s Table of Contents

                Copyright © 2015 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 23 October 2015

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • research-article

                Acceptance Rates

                Overall Acceptance Rate268of1,244submissions,22%

                Upcoming Conference

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader