[论文解读] Using Automatic Refactoring to Improve Energy Efficiency of Android Apps
本文提出 Leafactor,一款开源工具,可自动重构 Android 应用以修复能耗低效的代码异味,从而提升能效。该研究分析了 140 个开源 Android 应用,修复了 45 个应用中的 222 个反模式,并成功将更改合并至 18 个官方代码库,证明自动化重构可显著提升能效,且不改变应用功能。
The ever-growing popularity of mobile phones has brought additional challenges to the software development lifecycle. Mobile applications (apps, for short) ought to provide the same set of features as conventional software, with limited resources: such as, limited processing capabilities, storage, screen and, not less important, power source. Although energy efficiency is a valuable requirement, developers often lack knowledge of best practices. In this paper, we study whether or not automatic refactoring can aid developers ship energy efficient apps. We leverage a tool, Leafactor, with five energy code smells that tend to go unnoticed. We use Leafactor to analyze code smells in 140 free and open source apps. As a result, we detected and fixed code smells in 45 apps, from which 40% have successfully merged our changes into the official repository.
研究动机与目标
- 为应对移动应用能效低下导致电池续航受限的日益严峻挑战。
- 探究自动化重构是否有助于开发者实施能效优化的编码实践。
- 评估自动化重构在开源 Android 应用中的实际影响。
- 提供一款可检测并修复与能耗相关的代码异味的工具,减少人工工作量并提升软件质量。
提出的方法
- 作者开发了 Leafactor,一款针对 Android 应用中五类特定能耗相关代码异味的自动化重构工具。
- 该工具使用静态代码分析检测反模式,如低效的 View 复用、冗余资源使用以及定时器的不当使用。
- 重构策略基于已被证实可降低能耗的 Android 最佳实践,包括 ViewHolder 模式和优化的资源管理。
- 该工具被应用于包含 140 个免费开源 Android 应用的数据集,以检测并修复能耗低效的代码模式。
- 更改建议通过拉取请求提交至官方代码库,成功与否通过合并接受率衡量。
- 通过真实世界集成对工具进行了验证,能效提升通过代码质量和合并统计数据进行测量。
实验结果
研究问题
- RQ1自动化重构工具能否有效检测并修复 Android 应用中的能耗低效代码模式?
- RQ2开发者在多大程度上接受并合并针对能效优化的自动化重构建议?
- RQ3有多少实际的 Android 应用包含可检测的与能耗相关的代码异味,修复它们的潜在影响如何?
- RQ4自动化重构工具能否同时作为能效优化编码的教学辅助工具和开发辅助工具?
主要发现
- Leafactor 在 140 个分析的开源 Android 应用中,共检测并修复了 222 个与能耗相关的反模式,影响 45 个应用。
- 40% 接收重构建议的应用成功将更改合并至其官方代码库,其中 18 个应用接受了补丁。
- 该工具成功提升了 18 个官方发布版本的能效,证明了其在真实世界中的实际影响。
- ViewHolder 模式是最复杂的重构,需最多 35 行代码正确实现,但可带来 4.5% 的能效提升。
- 分析的应用中高达 32% 至少包含一个能耗低效的代码异味,凸显该问题的普遍性。
- 本研究证实,自动化重构可作为提升移动软件能效的可扩展且有效的解决方案。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。