To verify whether a program uses resources in a valid manner is vital for program correctness. A number of solutions have been proposed to ensure such a property for resource usage. But most of them are sophisticated to use for resource bugs detection in practice and do not concern about the issue that an opened resource should be used. This open-but-not-used problem can cause resource starvation in some case as well. In particular, resources of smartphones are notonly scarce but also energy-hungry. The misuse of resources could not only cause the system to run out of resources butalso lead to a shorter battery life. That is the so-call energy leak problem. Aiming to provide a lightweight method and to detect as many resource bugs as possible, we propose a state taint analysis in this paper. First, take the open-but-not-used problem into account, we specify the appropriate usage of resources as resource protocols. Then we propose a taint-like analysis which takes resource protocols as a guide to detect resource bugs. As an application, we enrich the resource usage protocols by taking into account energy leaks and use the refined protocols to guide the analysis for energy leak detection. We implement the analysis as a prototype tool called statedroid. Using this tool, we conduct experiments on several real Android applications and find several energy leaks.
|Publication status||Published - 17 Jul 2016|
|Event||10th International Symposium on Theoretical Aspects of Software Engineering - Shanghai, China|
Duration: 17 Jul 2016 → 19 Jul 2016
Conference number: 10
|Conference||10th International Symposium on Theoretical Aspects of Software Engineering|
|Abbreviated title||TASE 2016|
|Period||17/07/16 → 19/07/16|