Profiling the Responsiveness of Android Applications via Automated Resource Amplification

Yan Wang, A. Rountev
{"title":"Profiling the Responsiveness of Android Applications via Automated Resource Amplification","authors":"Yan Wang, A. Rountev","doi":"10.1145/2897073.2897097","DOIUrl":null,"url":null,"abstract":"The responsiveness of the GUI in an Android application is an important component of the user experience. Android guidelines recommend that potentially-expensive operations should not be performed in the GUI thread, but rather in separate threads. The responsiveness of existing code can be improved by introducing such asynchronous processing, either manually or automatically. One simple view is that all potentially-expensive operations should be removed from the GUI thread. We demonstrate that this view is too simplistic, because run-time cost under reasonable conditions may often be below the threshold for poor responsiveness. We propose a profiling approach to characterize response times as a function of the size of a potentially-expensive resource (e.g., shared preferences store, bitmap, or Silt database). By manipulating and \"amplifying\" such resources automatically, we can obtain a responsiveness profile for each GUI-related callback. The profiling is based on a static analysis to generate tests that trigger expensive operations, followed by a dynamic analysis of amplified test execution. Based on our evaluation, we conclude that many operations can be safely left in the GUI thread. These results highlight the importance of choosing carefully - based on profiling information - the operations that should be removed from the GUI thread, in order to avoid unnecessary code complexity.","PeriodicalId":296509,"journal":{"name":"2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft)","volume":"43 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"29","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2897073.2897097","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 29

Abstract

The responsiveness of the GUI in an Android application is an important component of the user experience. Android guidelines recommend that potentially-expensive operations should not be performed in the GUI thread, but rather in separate threads. The responsiveness of existing code can be improved by introducing such asynchronous processing, either manually or automatically. One simple view is that all potentially-expensive operations should be removed from the GUI thread. We demonstrate that this view is too simplistic, because run-time cost under reasonable conditions may often be below the threshold for poor responsiveness. We propose a profiling approach to characterize response times as a function of the size of a potentially-expensive resource (e.g., shared preferences store, bitmap, or Silt database). By manipulating and "amplifying" such resources automatically, we can obtain a responsiveness profile for each GUI-related callback. The profiling is based on a static analysis to generate tests that trigger expensive operations, followed by a dynamic analysis of amplified test execution. Based on our evaluation, we conclude that many operations can be safely left in the GUI thread. These results highlight the importance of choosing carefully - based on profiling information - the operations that should be removed from the GUI thread, in order to avoid unnecessary code complexity.
通过自动资源放大分析Android应用程序的响应性
Android应用程序中GUI的响应性是用户体验的重要组成部分。Android指南建议,可能代价高昂的操作不应该在GUI线程中执行,而应该在单独的线程中执行。通过引入这种异步处理(手动或自动),可以提高现有代码的响应性。一个简单的观点是,应该从GUI线程中删除所有可能代价高昂的操作。我们证明这种观点过于简单,因为在合理条件下的运行时成本可能经常低于低响应性的阈值。我们提出了一种分析方法,将响应时间描述为潜在昂贵资源(例如,共享偏好存储、位图或淤泥数据库)大小的函数。通过自动操作和“放大”这些资源,我们可以获得每个gui相关回调的响应性概要文件。分析是基于静态分析来生成触发昂贵操作的测试,然后是扩展测试执行的动态分析。根据我们的评估,我们得出结论,许多操作可以安全地留在GUI线程中。这些结果强调了仔细选择(基于分析信息)应该从GUI线程中删除的操作的重要性,以避免不必要的代码复杂性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信