arrow
Return

Static analysis of Android programs

delete2012-11-01
delete61
delete
OA
AI
É
Étienne Payet
F
Fausto Spoto
DOI:10.1016/j.infsof.2012.05.003delete
deleteOriginal
deleteShare
deleteSave
View PDF
Abstract

Abstract

En 中文
Context: Android is a programming language based on Java and an operating system for embedded and mobile devices, whose upper layers are written in the Android language itself. As a language, it features an extended event-based library and dynamic inflation of graphical views from declarative XML layout files. A static analyzer for Android programs must consider such features, for correctness and precision. Objective: Our goal is to extend the Julia static analyzer, based on abstract interpretation, to perform formally correct analyses of Android programs. This article is an in-depth description of such an extension, of the difficulties that we faced and of the results that we obtained. Method: We have extended the class analysis of the Julia analyzer, which lies at the heart of many other analyses, by considering some Android key specific features such as the potential existence of many entry points to a program and the inflation of graphical views from XML through reflection. We also have significantly improved the precision of the nullness analysis on Android programs. Results: We have analyzed with Julia most of the Android sample applications by Google and a few larger open-source programs. We have applied tens of static analyses, including classcast, dead code, nullness and termination analysis. Julia has found, automatically, bugs, flaws and inefficiencies both in the Google samples and in the open-source applications. Conclusion: Julia is the first sound static analyzer for Android programs, based on a formal basis such as abstract interpretation. Our results show that it can analyze real third-party Android applications, without any user annotation of the code, yielding formally correct results in at most 7 min and on standard hardware. Hence it is ready for a first industrial use. (c) 2012 Elsevier B.V. All rights reserved.
Keywords:
Program verification
Static analysis
Abstract interpretation
Android
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

Information and Software Technology cover
Information and Software Technology
IF:
4.3
Papers:
3.8K
Citations:
7.7K

Organization

U
University of Verona
Scholars:
1.9W
Papers: 1.4W
Citations: 1.5W
Cited Papers

Cited Papers

errShare
errSave
It’s So UnFAIR!
errEos
IF0
err2018-05-02
err0
errOAAI
errAnkur Desai
errShare
errSave
Sequential Optimization for PV Panel Parameter Estimation
err2016-09-01
err0
PREAI
errPallavi Bharadwaj; Kunal Narayan Chaudhury; Vinod John
errShare
errSave
Discovery of new MurA inhibitors using induced-fit simulation and docking
err2017-02-01
err0
PREAI
errKaja Rožman; Samo Lešnik; Boris Brus; Martina Hrast; Matej Sova; Delphine Patin; Hélène Barreteau; Janez Konc; Dušanka Janežič; Stanislav Gobec
errShare
errSave
no more