TY - GEN
T1 - Poster
T2 - 12th Annual International Conference on Mobile Systems, Applications, and Services, MobiSys 2014
AU - Ki, Taeyeon
AU - Munipalle, Satyaditya
AU - Dantu, Karthik
AU - Ko, Steven Y.
AU - Ziarek, Lukasz
PY - 2014
Y1 - 2014
N2 - Today's mobile applications operate in a diverse set of environments, where it is difficult for a developer to know beforehand what conditions his or her application will be put under. For example, once deployed on an online application store, an application can be downloaded on different types of hardware, ranging from budget smartphones to high-end tablets. In addition, network conditions can vary widely from Wi-Fi to 3G to 4G. Mobile applications also need to co-exist with other applications that compete for resources at different times. Due to this diverse set of operating conditions, it is difficult to understand what problems are occurring in the wild for mobile applications. Moreover, it is even more difficult to reproduce problems in a lab environment where developers can debug the problems. Some platforms support bug reports and stack traces, but they are inadequate in scenarios when operating conditions and inputs are not consistent. To address these issues, we propose Retro, an automated, application-layer record and replay system for Android. Unlike previous record and replay systems, Retro aims to support mobile Android applications with three features. First, Retro provides an automated instrumentation framework that transforms a regular Android application into a traceable application. This means that Retro does not require any change in the Android platform; thus, it enables developers to distribute instrumented applications via online application stores. Through the instrumentation, Retro records application-layer events such as click events, sensor readings, method calls, and return values. In order to reduce the overhead of logging, Retro also uses a selective logging mechanism that decides which event types to log at runtime. Second, Retro provides a replayer that a developer can use in a lab environment to faithfully replay a recorded run. To maximize the ease of use, Retro seamlessly integrates this replay functionality into Android's existing development workflow by adding the replayer into the Android platform. This means that a developer can replay using a regular phone as well as an emulator. Also, Retro provides a VCR-like interface for replaying that is capable of forwarding and rewinding executions. Third, Retro examines Android-specific issues in enabling record and replay and incorporates design choices that are tailored towards Android. The goal for doing this is efficiency and faithfulness; by examining Android-specific issues, Retro can provide efficient recording and replaying functionalities as well as faithfulness in replaying.
AB - Today's mobile applications operate in a diverse set of environments, where it is difficult for a developer to know beforehand what conditions his or her application will be put under. For example, once deployed on an online application store, an application can be downloaded on different types of hardware, ranging from budget smartphones to high-end tablets. In addition, network conditions can vary widely from Wi-Fi to 3G to 4G. Mobile applications also need to co-exist with other applications that compete for resources at different times. Due to this diverse set of operating conditions, it is difficult to understand what problems are occurring in the wild for mobile applications. Moreover, it is even more difficult to reproduce problems in a lab environment where developers can debug the problems. Some platforms support bug reports and stack traces, but they are inadequate in scenarios when operating conditions and inputs are not consistent. To address these issues, we propose Retro, an automated, application-layer record and replay system for Android. Unlike previous record and replay systems, Retro aims to support mobile Android applications with three features. First, Retro provides an automated instrumentation framework that transforms a regular Android application into a traceable application. This means that Retro does not require any change in the Android platform; thus, it enables developers to distribute instrumented applications via online application stores. Through the instrumentation, Retro records application-layer events such as click events, sensor readings, method calls, and return values. In order to reduce the overhead of logging, Retro also uses a selective logging mechanism that decides which event types to log at runtime. Second, Retro provides a replayer that a developer can use in a lab environment to faithfully replay a recorded run. To maximize the ease of use, Retro seamlessly integrates this replay functionality into Android's existing development workflow by adding the replayer into the Android platform. This means that a developer can replay using a regular phone as well as an emulator. Also, Retro provides a VCR-like interface for replaying that is capable of forwarding and rewinding executions. Third, Retro examines Android-specific issues in enabling record and replay and incorporates design choices that are tailored towards Android. The goal for doing this is efficiency and faithfulness; by examining Android-specific issues, Retro can provide efficient recording and replaying functionalities as well as faithfulness in replaying.
KW - android apps
KW - debugging
KW - record&replay
UR - https://www.scopus.com/pages/publications/84903165693
U2 - 10.1145/2594368.2601453
DO - 10.1145/2594368.2601453
M3 - Conference contribution
AN - SCOPUS:84903165693
SN - 9781450327930
T3 - MobiSys 2014 - Proceedings of the 12th Annual International Conference on Mobile Systems, Applications, and Services
SP - 373
BT - MobiSys 2014 - Proceedings of the 12th Annual International Conference on Mobile Systems, Applications, and Services
PB - Association for Computing Machinery
Y2 - 16 June 2014 through 19 June 2014
ER -