Andreaz Lewerentz; Jonathan Lindvall , pp. 28. COM/School of Computing, 2012.
Software developers are faced with several challenges when creating applications for the new generation of mobile devices. Smartphones and tablets have limited processing power and memory resources, and a small battery is the only thing that keeps the hardware components running. End users have little patience for slow applications that drain the batteries of their devices. To satisfy the needs of their customers, developers must take these hardware limitations into account; they must make an effort to optimize the performance and energy efficiency of their applications.
This thesis provides a general overview of performance and energy optimization in the mobile domain. A specific sub-area is explored in great detail: the use of native C code for performance and energy optimization of Android applications. An experiment was conducted to see how the performance of native code compares to that of Java. This is the first time that such measurements have been made on both emulators and physical devices. The devices were running recent versions of Android that have not been used for similar experiments before: 2.3.3, 3.2 and 4.0.3. It is also the first time that native code has been compared to Java in terms of energy consumption.
The results show that the latest updates to the Android platform have brought Java closer to native code in terms of performance, but native code is still the best choice for certain types of operations. It is also evident that there is a close correlation between performance and energy efficiency. Finally, the results show that Android emulators are unreliable for performance measurements. This could be a reason to question the validity of previous research.