Static Analysis of Android Programs

  • Étienne Payet
  • Fausto Spoto
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6803)


Android is a programming language based on Java and an operating system for mobile or embedded devices. 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. This article is a description of how we extended the Julia system, based on abstract interpretation, to run formally correct analyses of Android programs. We have analyzed with Julia the Android sample applications by Google and a few larger open-source programs. Julia has found, automatically, bugs and flaws both in the Google samples and in the open-source programs.


Class Analysis Abstract Interpretation Constraint Graph Graphical View Embed Device 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Cousot, P., Cousot, R.: Abstract Interpretation: A Unifed Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In: Proc. of the 4th Symposium on Principles of Programming Languages (POPL 1977), pp. 238–252. ACM Press, New York (1977)Google Scholar
  2. 2.
    Miné, A.: A New Numerical Abstract Domain Based on Difference-Bound Matrices. In: Danvy, O., Filinski, A. (eds.) PADO 2001. LNCS, vol. 2053, pp. 155–172. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  3. 3.
    Palsberg, J., Schwartzbach, M.I.: Object-Oriented Type Inference. In: Paepcke, A. (ed.) Proc. of the 6th International ACM Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA 1991). ACM SIGPLAN Notices, vol. 26(11), pp. 146–161. ACM Press, New York (1991)Google Scholar
  4. 4.
    Spoto, F.: Precise null-Pointer Analysis. Software and Systems Modeling 10(2), 219–252 (2011)CrossRefGoogle Scholar
  5. 5.
    Spoto, F., Jensen, T.: Class Analyses as Abstract Interpretations of Trace Semantics. ACM Transactions on Programming Languages and Systems (TOPLAS) 25(5), 578–630 (2003)CrossRefGoogle Scholar
  6. 6.
    Spoto, F., Mesnard, F., Payet, É.: A Termination Analyzer for Java Bytecode Based on Path-Length. ACM Transactions on Programming Languages and Systems (TOPLAS) 32(3), 70 pages (2010)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Étienne Payet
    • 1
  • Fausto Spoto
    • 2
  1. 1.LIM-IREMIAUniversité de la RéunionFrance
  2. 2.Dipartimento di InformaticaUniversità di VeronaItaly

Personalised recommendations