Resource leaks -- a program does not release resources it previously acquired -- are a common kind of bug in Android applications. Even with the help of existing techniques to automatically detect leaks, writing a leak-free program remains tricky. One of the reasons is Android's event-driven programming model, which complicates the understanding of an application's overall control flow. In this paper, we present PlumbDroid: a technique to automatically detect and fix resource leaks in Android applications. PlumbDroid uses static analysis to find execution traces that may leak a resource. The information built for detection also undergirds automatically building a fix -- consisting of release operations performed at appropriate locations -- that removes the leak and does not otherwise affect the application's usage of the resource. An empirical evaluation on resource leaks from the DroidLeaks curated collection demonstrates that PlumbDroid's approach is scalable, precise, and produces correct fixes for a variety of resource leak bugs: PlumbDroid automatically found and repaired 50 leaks that affect 9 widely used resources of the Android system, including all those collected by DroidLeaks for those resources; on average, it took just 2 minutes to detect and repair a leak. PlumbDroid also compares favorably to Relda2/RelFix -- the only other fully automated approach to repair Android resource leaks -- since it usually detects more leaks with higher precision and producing smaller fixes. These results indicate that PlumbDroid can provide valuable support to enhance the quality of Android applications in practice.


翻译:资源渗漏 -- 一个程序不会释放它以前获得的资源 -- 是安氏剂应用中常见的一种错误。 即便在自动检测泄漏的现有技术的帮助下, 写出一个无漏程序仍然很棘手。 原因之一是安氏剂的事件驱动编程模型, 这使人们对应用程序总体控制流程的理解复杂化。 在本文中, 我们介绍 PlubDroid: 自动检测和修复安氏剂应用中的资源渗漏的技术。 PlubDroid 使用静态分析来寻找执行漏洞, 这可能泄漏资源。 用于检测的底栖动物也自动建立一个修复系统 -- -- 包括适当地点进行的释放操作 -- -- 这些信息可以消除泄漏, 并且不会影响应用程序对资源使用情况的使用。 对来自DroidLeaks 曲线收集的资源渗漏的实证评估表明, PlubdD 的方法是可变缩缩缩缩缩的, 并且为各种资源漏漏漏漏的精确方法: 发现并修复50个渗漏, 影响到安氏剂系统9个广泛使用的资源, 包括适当地点进行的释放操作 -- 清除作业, 也显示所有由Droidleak Leak 流收集的精度 的精度, 的精度, 也能 提升到更精确到更精度。

0
下载
关闭预览

相关内容

Automator是苹果公司为他们的Mac OS X系统开发的一款软件。 只要通过点击拖拽鼠标等操作就可以将一系列动作组合成一个工作流,从而帮助你自动的(可重复的)完成一些复杂的工作。Automator还能横跨很多不同种类的程序,包括:查找器、Safari网络浏览器、iCal、地址簿或者其他的一些程序。它还能和一些第三方的程序一起工作,如微软的Office、Adobe公司的Photoshop或者Pixelmator等。
最新《联邦学习Federated Learning》报告,Federated Learning
专知会员服务
88+阅读 · 2020年12月2日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【CAAI 2019】偏标记学习的研究,东南大学|张敏灵教授
专知会员服务
9+阅读 · 2019年12月1日
计算机视觉最佳实践、代码示例和相关文档
专知会员服务
18+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
40+阅读 · 2019年10月9日
已删除
将门创投
3+阅读 · 2019年11月25日
Arxiv
0+阅读 · 2021年9月1日
Arxiv
0+阅读 · 2021年8月31日
Arxiv
30+阅读 · 2021年8月18日
Advances and Open Problems in Federated Learning
Arxiv
18+阅读 · 2019年12月10日
VIP会员
相关资讯
已删除
将门创投
3+阅读 · 2019年11月25日
Top
微信扫码咨询专知VIP会员