论文题目:Static Asynchronous Component Misuse Detection for Android Applications
这是FSE2020上移动专题上的一篇会议论文,主要介绍了在安卓应用中存在的异步组件错误使用的问题,归纳总结了五种不同的错误使用方式,并制定了检测规则进行识别。
- 论文地址:https://dl.acm.org/doi/pdf/10.1145/3368089.3409699
- GitHub项目地址:https://github.com/pangeneral/AsyncChecker
Misuse Patterns
1. StrongReference
指的是在新建实例时参数为强引用类型,因此该对象无法被GC,从而导致内存泄露甚至程序崩溃等问题。下面是文章中的一个例子:

2. NotCancel
指异步任务,在执行后,未手动调用cancel函数。
3. NotTerminate
指在一些异步任务中,存在循环结构,但未设置终止条件。
4. EarlyCancel
指cancel函数调用写在execute函数前。
5. RepeatStart
存在多次执行的问题。
该论文聚焦于Android应用中的异步组件错误,提出了五种错误使用模式:StrongReference、NotCancel、NotTerminate、EarlyCancel和RepeatStart,并提供了检测工具AsyncChecker来识别这些问题。这些错误可能导致内存泄露、程序崩溃等严重后果。
4370

被折叠的 条评论
为什么被折叠?



