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
id sg-ntu-dr.10356-62029
record_format dspace
spelling sg-ntu-dr.10356-620292023-07-07T17:12:53Z Achitecture recovery of Android applications Li, Weiyang Chen Lihui School of Electrical and Electronic Engineering DRNTU::Engineering::Electrical and electronic engineering::Computer hardware, software and systems 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. Bachelor of Engineering 2015-01-06T03:30:18Z 2015-01-06T03:30:18Z 2014 2014 Final Year Project (FYP) http://hdl.handle.net/10356/62029 en Nanyang Technological University 66 p. application/pdf
institution Nanyang Technological University
building NTU Library
continent Asia
country Singapore
Singapore
content_provider NTU Library
collection DR-NTU
language English
topic DRNTU::Engineering::Electrical and electronic engineering::Computer hardware, software and systems
spellingShingle DRNTU::Engineering::Electrical and electronic engineering::Computer hardware, software and systems
Li, Weiyang
Achitecture recovery of Android applications
description 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.
author2 Chen Lihui
author_facet Chen Lihui
Li, Weiyang
format Final Year Project
author Li, Weiyang
author_sort Li, Weiyang
title Achitecture recovery of Android applications
title_short Achitecture recovery of Android applications
title_full Achitecture recovery of Android applications
title_fullStr Achitecture recovery of Android applications
title_full_unstemmed Achitecture recovery of Android applications
title_sort achitecture recovery of android applications
publishDate 2015
url http://hdl.handle.net/10356/62029
_version_ 1772827547123318784