Static analysis of Android apps for lifecycle conformance - Zein, Samer; Salleh, Norsaremah; Grundy, John (IEEE, 2017)
Building robust and reliable mobile applications requires the developer to be fully aware of the lifecycle models for mobile applications. During different states of the mobile application lifecycle, such as start-up, running, background etc., various system resources need to be acquired for use and released so that other applications can use them. However, novice and amateur developers, who are a growing fraction in the mobile development community, often find such a task to be non-trivial and complex and limited in support for by existing tools. This paper presents an automated approach based on static code analysis to aid novice developers in managing system resources during different stages of a mobile application’s lifecycle. In order to achieve this, we present a software model to encapsulate lifecycle rules for system resources and then create a repository for these resources. In addition, a novel code analysis algorithm is presented to show how Android application source code can be analyzed in order to verify that system resources have been correctly initiated and released. A proof-of-concept software tool known as ALCI has been developed to evaluate our approach. We used ALCI to analyze 10 Android applications and our initial results show that ALCI is effective and successful.