Achitecture recovery of Android applications

Developed under tight schedules, often by a single developer in a rapidly evolving environment, mobile applications (apps) are poorly architected and documented. Furthermore, mobile apps are much frequently updated compared to their desktop counterparts that lead to a high degree of architectural er...

Full description

Saved in:
Bibliographic Details
Main Author: Li, Weiyang
Other Authors: Chen Lihui
Format: Final Year Project
Language:English
Published: 2015
Subjects:
Online Access:http://hdl.handle.net/10356/62029
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
Description
Summary:Developed under tight schedules, often by a single developer in a rapidly evolving environment, mobile applications (apps) are poorly architected and documented. Furthermore, mobile apps are much frequently updated compared to their desktop counterparts that lead to a high degree of architectural erosion. These challenges make Software Architecture Recovery (SAR) as a suitable solution to capture the architecture of an app and further facilitate analysis on its individual modules. Recent research reveals that module-level analysis is inevitable for multiple tasks such code clone detection, malware detection, vulnerability analysis and app vetting. Despite such demands, architecture recovery on mobile apps remains largely unexplored. In this project, we investigate the feasibility of adapting state-of-the-art SAR solutions proposed for desktop apps to recover the architecture of Android apps and the related challenges. To this end, we develop the AppSplit framework. AppSplit SAR involves three major phases: (1) reverse engineering an app, (2) estimating program dependency among the app components and constructing a dependency graph, (3) supplying the graph to a state-of-the-art desktop SAR solution, namely, Bunch, to recover the app’s architecture. In order to evaluate the AppSplit framework, we developed an automated crawler and downloaded 100 open-source apps from Google Play. Following prominent SAR guideline, the ground-truth architectures of all the apps in the dataset are recovered through manual analysis. Afterwards, we developed a fully automated evaluation procedure. Through our experimental study we observe that AppSplit achieves an average accuracy of 27.84% in recovering architecture of apps, which is significantly lesser than the acceptable/reported SAR accuracies. This emphasizes that Android specific modifications are required to existing SAR solutions to deliver acceptable performances. Further as an application of the proposed SAR, we demonstrate automated detection of advertisement library modules contained in apps.