Font Size: a A A

Analysis And Detection Of Service Usage Defects In Android Applications

Posted on:2020-04-03Degree:MasterType:Thesis
Country:ChinaCandidate:J ZhangFull Text:PDF
GTID:2438330626453267Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
As a component that is often used in Android applications,service is mainly responsible for performing time-consuming operations in the background.Although the service is independent of the graphical user interface of the application,the research has found that improper use of the service can result in reduced application performance,such as additional energy consumption and unnecessary resource usage.At present,relevant research mainly focuses on the testing of graphical user interfaces and energy defects in Android applications,and does not study the use defects of services.To this end,the following four efforts are presented in this paper.1.This paper summarizes four anti-patterns caused by the service usage based on service life cycle and three types of service usage,and based on inter-procedural control flow graph of Android applications,give static analysis methods for the specific defects corresponding to the four anti-patterns.2.This paper uses linear temporal logic to give the formal definition of the four anti-pattern defects caused by service usage,and give the dynamic analysis method for running-time verification of related characteristics according to the dynamic information generated by the running application.3.This paper designs and implements a prototype tool called ServDroid,to automatically detect service usage patterns and their deficiencies in Android applications(specific examples of anti-patterns).The tool mainly includes three modules: static analysis module,dynamic analysis module and use defect repair module.The static analysis module obtains the service usage pattern by analyzing the application code and resources,and then further analyzes the anti-pattern defects existing in each service usage pattern by combining the key APIs provided by the Android SDK,which can generate context debugging information to help developers quickly locate problem;the dynamic analysis module first automatically generates an activity transition graph of the application,and generates an execution path of the trigger service based on the graph,and then gives a service with a use defect based on the runtime verification;the defect repair module can automatically fix Android applications that have anti-pattern defects caused by service usage.4.Based on 50 applications,the results of the manual review were used as Ground Truth to verify the static and dynamic analysis results presented in this paper.The experimental results clarify the correctness of static analysis and dynamic analysis.The 50 applications were repaired and the power experiment was carried out.The experimental results show that the service use defects have a great impact on the application energy consumption and memory usage.Using ServDroid's static analysis module to empirically analyze 1000 popular Android applications,and found the universality of service usage defects.
Keywords/Search Tags:Android application, service usage inefficiency, static analysis, runtime validation, power consumption
PDF Full Text Request
Related items