Developing and Benchmarking Native Linux Applications on Android

Abstract

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.

@INPROCEEDINGS{,
  author = {Leonid Batyuk and Aubrey-Derrick Schmidt and Hans-Gunther Schmidt
	and Ahmet Camtepe and Sahin Albayrak},
  title = {Developing and Benchmarking Native Linux Applications on Android},
  booktitle = {MobileWireless Middleware, Operating Systems, and Applications},
  year = {2009},
  pages = {381--392},
  abstract = {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.},
  doi = {10.1007/978-3-642-01802-2_28},
  keywords = {software, performance, smartphones, Android, C, Java, DAI-Labor},
  url = {http://dx.doi.org/10.1007/978-3-642-01802-2_28}
}
Authors:
Leonid Batyuk, Aubrey-Derrick Schmidt, Hans-Gunther Schmidt, Seyit Ahmet Camtepe, Sahin Albayrak
Category:
Conference Paper
Year:
2009
Location:
Second International Conference on MOBILe Wireless MiddleWARE, Operating Systems, and Applications (Mobilware 2009), Berlin