Abstract
The advent of emergent systems on chip and MPSocs opens a new era in the small mobile devices (Smartphones, Tablets,...) in terms of computing capabilities and applications to be addressed. Currently, these devices have multicore processors and GPUs which provide high computational power. The efficient use of such devices, including the parallel power, is still a challenge for general-purpose programmers. In the last years Android has become the dominant platform in the small mobile devices. In addition, it has a large community of developers. For application development, Android provides two development kits, the Software Development Kit and Native Development Kit. To exploit the high computational capabilities on current devices, Android provides Renderscript, an API that allows the execution of parallel applications and it is designed to be used in applications that require high computing power. The development model used involves an important impact in the performance of the applications. In this paper, we address the evaluation of the performance on Android platforms. A set of benchmark applications has been implemented to evaluate the performance of the different development models. Sequential and parallel versions of the different development kits are considered in the computational experience. This benchmark and the computational experience achieved are greatly helpful to the programmer for understanding sources of overhead and bottlenecks in the developed code.
Similar content being viewed by others
References
SoCC (2014) IEEE International System-on-chip conference. http://www.ieee-socc.org/. Accessed Feb 2014
NVIDIA. Tegra mobile processors: Tegra 2, Tegra 3, Tegra 4 and Tegra K1. http://www.nvidia.com/object/tegra-superchip.html. Accessed Feb 2014
Texas Instruments. OMAP\(^{\rm TM}\) Mobile Processors : OMAP\(^{\rm TM}\) 5 platform. http://www.ti.com/omap5. Accessed Feb 2014
Google. Android mobile platform. http://www.android.com. Accessed Feb 2014
Apple. iOS: Apple mobile operating system. http://www.apple.com/ios. Accessed Feb 2014
Microsoft. Windows Phone: Microsoft mobile operating system. http://www.windowsphone.com/. Accessed Feb 2014
Samsung. Bada: Samsung mobile operating system. http://developer.bada.com. Accessed Feb 2014
Nokia. Nokia Asha: Nokia mobile operating system designed for low-end borderline smartphones. http://www.developer.nokia.com/. Accessed Feb 2014
Reid AD, Flautner K, Grimley-Evans E, Lin Y (2008) SoC-C: efficient programming abstractions for heterogeneous multicore systems on chip. In: Altman ER (ed) Proceedings of the 2008 international conference on compilers, architecture, and synthesis for embedded systems, CASES’08. ACM, Atlanta, pp 95–104
Memoir Systems: Algorithmic Memory\(^{\rm TM}\) technology. http://www.memoir-systems.com/. Accessed Feb 2014
Nvidia: GPUDirect Technology. http://developer.nvidia.com/gpudirect. Accessed Feb 2014
Anandtech. AMD Outlines HSA Roadmap: Unified Memory for CPU/GPU in 2013, HSA GPUs in 2014. http://www.anandtech.com/show/5493/. Accessed Feb 2014
Android. Android, the world’s most popular mobile platform. http://developer.android.com/about. Accessed Feb 2014
Cinar O (2012) Pro Android C++ with the NDK. Apress
Wilson S, Kesselman J (2000) Java platform performance—strategies and tactics. Addison-Wesley, USA
Kurzyniec D, Sunderam V (2001) Efficient cooperation between java and native codes jni performance benchmark. In: The 2001 international conference on parallel and distributed processing techniques and applications
Guihot H (2012) Pro Android Apps performance optimization. Apressus Series, Apress
Sams J. Levels in renderscript. http://android-developers.blogspot.com.es/2012/01/levels-in-renderscript.html. Accessed Feb 2014
Sams J. Evolution of renderscript performance. http://android-developers.blogspot.com.es/2013/01/evolution-of-renderscript-performance.html. Accessed Feb 2014
Android: NDK. http://developer.android.com/tools/sdk/ndk/index.html. Accessed Feb 2014
ARM: Architecture reference manuals. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.subset.architecture.reference. Accessed Feb 2014
ARM: VFPv3 architecture and thumb-2 instruction set. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344c/Beiiegaf.html. Accessed Feb 2014
Android: Renderscript. http://developer.android.com/guide/topics/renderscript/compute.html. Accessed Feb 2014
CLANG. A C language family frontend for LLVM. http://clang.llvm.org/. Accessed Feb 2014
AOSP: Android Open Source Project. http://source.android.com/. Accessed Feb 2014
IEEE. 754-2008 - IEEE Standard for Floating-Point Arithmetic. http://dx.doi.org/10.1109/IEEESTD.2008.4610935
Acknowledgments
This work has been supported by the EC (FEDER) and the Spanish MEC with the I+D+I contract number: TIN2011-24598.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Acosta, A., Almeida, F. Android\(^\mathrm{TM}\) development and performance analysis. J Supercomput 70, 649–659 (2014). https://doi.org/10.1007/s11227-014-1119-8
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-014-1119-8