Developing and Benchmarking Native Linux Applications on Android

  • Leonid Batyuk
  • Aubrey-Derrick Schmidt
  • Hans-Gunther Schmidt
  • Ahmet Camtepe
  • Sahin Albayrak
Part of the Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering book series (LNICST, volume 7)


Smartphones get increasingly popular where more and more smartphone platforms emerge. Special attention was gained by the open source platform Android which was presented by the Open Handset Alliance (OHA) hosting members like Google, Motorola, and HTC. Android uses a Linux kernel and a stripped-down userland with a custom Java VM set on top. The resulting system joins the advantages of both environments, while third-parties are intended to develop only Java applications at the moment.

In this work, we present the benefit of using native applications in Android. Android includes a fully functional Linux, and using it for heavy computational tasks when developing applications can bring in substantional performance increase. We present how to develop native applications and software components, as well as how to let Linux applications and components communicate with Java programs. Additionally, we present performance measurements of native and Java applications executing identical tasks.

The results show that native C applications can be up to 30 times as fast as an identical algorithm running in Dalvik VM. Java applications can become a speed-up of up to 10 times if utilizing JNI.


software performance smartphones android Java 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Android - An Open Handset Alliance Project (2008/12/05),
  2. 2.
    Android Open Source Project (2008/12/05),
  3. 3.
    Android Market (2008/12/05),
  4. 4.
  5. 5.
    Reinholtz, K.: Java will be faster than C++. ACM SIGPLAN Not. 35, 25–28 (2000)CrossRefGoogle Scholar
  6. 6.
    Eclipse Intergrated Development Environment (2008/12/05),
  7. 7.
    Netbeans Intergrated Development Environment (2008/12/05),
  8. 8.
    Codesourcery (2008/12/05),
  9. 9.
    Scratchbox (2008/12/05),
  10. 10.
    Ubuntu Home Page (2008/12/05),
  11. 11.
    Busybox (2008/12/05),
  12. 12.
  13. 13.
    Named Pipes (FIFOs) (2008/12/05),
  14. 14.
  15. 15.
    Schmidt, A.-D., Schmidt, H.-G., Clausen, J., Yüksel, K.A., Kiraz, O., Camtepe, A., Albayrak, S.: Enhancing Security of Linux-based Android Devices. In: Proceedings of 15th International Linux Kongress. Lehman Verlag, Hamburg (2008)Google Scholar
  16. 16.
    McConnel, S.: Code Complete, 2nd edn., pp. 180–197. Microsoft Press, Redmond (2004)Google Scholar
  17. 17.
    Knuth, D.E.: The Art of Computer Programming, 2nd edn. Sorting and Searching, vol. 3, pp. 180–197. Addison-Wesley, Reading (1997)Google Scholar
  18. 18.
    Hoare, C.A.R.: Quicksort. Computer Journal 5(1), 10–15 (1962)MathSciNetCrossRefzbMATHGoogle Scholar
  19. 19.
    Williams, J.W.J.: Algorithm 232 - Heapsort. Communications of the ACM 7(6), 347–348 (1964)Google Scholar
  20. 20.
    Okumura, T., Childers, B., Mossé, B.: Running a Java VM Inside an Operating System Kernel. In: VEE 2008: Proceedings of the fourth ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, Seattle, WA, USA (2008)Google Scholar
  21. 21.
    Dongarra, J.J.: The LINPACK Benchmark: An explanation. In: Houstis, E.N., Polychronopoulos, C.D., Papatheodorou, T.S. (eds.) ICS 1987. LNCS, vol. 297. Springer, Heidelberg (1988)CrossRefGoogle Scholar

Copyright information

© ICST Institute for Computer Science, Social Informatics and Telecommunications Engineering 2009

Authors and Affiliations

  • Leonid Batyuk
    • 1
  • Aubrey-Derrick Schmidt
    • 1
  • Hans-Gunther Schmidt
    • 1
  • Ahmet Camtepe
    • 1
  • Sahin Albayrak
    • 1
  1. 1.Technische Universität BerlinBerlinGermany

Personalised recommendations