CE-17.27

Title: 

Automated Testing of Best Practices for Android

Author(s): 

Sai Krishna Undurthi

Oral Defence Date: 

12/04/2017

Location: 

TH 434

Committee: 

Profs. Arno Puder & William Hsu

Abstract: 

Along with the evolution of Android, there has been a drastic increase in the number of Android applications. Much has been said about the topic of battery conservation but there is an important aspect that concerns the Android users the most, battery draining applications. Most of the time applications drain the battery without us realizing it. Sometimes it is done maliciously but often, it can be explained by poor application design and violation of best practices. For example: an application registers a location listener and forgets to unregister it, which can drain battery drastically. The Automated Testing of Best Practices for Android, analyze and provide feedback on whether applications follow Android’s best practices. This analysis looks out for patterns that violate the best practices and provides feedback which helps the developer better understand their API usage. Our tool uses Aspect Oriented Programming (AOP) to weave the various well-defined best practice advices into the Android source code, monitoring for common violations. It logs the call stack of the Android API called to identify the class and method where the violation took place. The logs generated are also helpful for profiling and identifying bugs. Our tool can be used efficiently and with minimal effort by users to examine the behavior of Android Apps. Rectifying the bad design improves the battery life of a mobile device while using the App.

Keywords: 

Android, Android Open Source Project (AOSP), Aspect Oriented Programming (AOP), AspectJ, Java

Copyright: 

Sai Krishna Undurthi