Poster: Retro: an automated, application-layer record and replay for android

Taeyeon Ki, Satyaditya Munipalle, Karthik Dantu, Steven Y. Ko, Lukasz Ziarek
{"title":"Poster: Retro: an automated, application-layer record and replay for android","authors":"Taeyeon Ki, Satyaditya Munipalle, Karthik Dantu, Steven Y. Ko, Lukasz Ziarek","doi":"10.1145/2594368.2601453","DOIUrl":null,"url":null,"abstract":"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.","PeriodicalId":131209,"journal":{"name":"Proceedings of the 12th annual international conference on Mobile systems, applications, and services","volume":"15 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-06-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 12th annual international conference on Mobile systems, applications, and services","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2594368.2601453","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

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.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
海报:Retro:一个自动化的,应用层记录和重放android
今天的移动应用程序运行在各种各样的环境中,开发者很难事先知道他或她的应用程序将处于什么条件下。例如,一旦部署到在线应用程序商店,应用程序就可以在不同类型的硬件上下载,从廉价智能手机到高端平板电脑。此外,从Wi-Fi到3G再到4G,网络条件差异很大。移动应用程序还需要与在不同时间竞争资源的其他应用程序共存。由于操作条件的多样性,很难理解在移动应用程序中发生了什么问题。此外,在开发人员可以调试问题的实验室环境中再现问题甚至更加困难。有些平台支持bug报告和堆栈跟踪,但在操作条件和输入不一致的情况下,它们是不够的。为了解决这些问题,我们提出了Retro,一个用于Android的自动化应用层记录和重播系统。与之前的记录和回放系统不同,Retro旨在通过三个功能支持移动Android应用程序。首先,Retro提供了一个自动化的检测框架,可以将常规的Android应用程序转换为可跟踪的应用程序。这意味着《Retro》不需要在Android平台上做出任何改变;因此,它使开发人员能够通过在线应用程序商店分发仪表化的应用程序。通过仪表,Retro记录应用层事件,如单击事件、传感器读数、方法调用和返回值。为了减少日志记录的开销,Retro还使用了一种选择性日志记录机制,该机制决定在运行时记录哪些事件类型。其次,Retro提供了一个重放器,开发人员可以在实验室环境中使用它来忠实地重放记录的运行。为了最大限度地提高易用性,Retro通过将重放器添加到Android平台,无缝地将这种重放功能集成到Android现有的开发工作流程中。这意味着开发人员可以使用普通手机和模拟器进行回放。此外,Retro提供了一个类似录像机的重放界面,能够转发和倒带执行。第三,Retro检查了Android特定的问题,在启用记录和重播,并结合设计选择,为Android量身定制。这样做的目标是效率和忠诚;通过检查android特定的问题,Retro可以提供高效的录音和重放功能,以及忠实的重放。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Characterizing resource usage for mobile web browsing Demo: Yalut -- user-centric social networking overlay Demo: Mapping global mobile performance trends with mobilyzer and mobiPerf Poster: DriveBlue: can bluetooth enhance your driving experience? Balancing design and technology to tackle global grand challenges
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1