DOI QR코드

DOI QR Code

Towards Performance-Enhancing Programming for Android Application Development

  • Kim, Dong Kwan (Department of Computer Engineering Mokpo National Maritime University)
  • Received : 2017.08.18
  • Accepted : 2017.09.27
  • Published : 2017.12.28

Abstract

Due to resource constraints, most of Android application developers need to address potential performance problems during application development and maintenance. The coding styles and patterns of Android programming could often affect the execution time and energy efficiency which are utilized by the Android applications. Thus, it is necessary for application developers to apply performance-enhancing programming practices for mobile application development. This paper introduces performance-enhancing best practices for Android programming, and further, it evaluates the impact of these practices on the CPU time of the application. The original version with the performance-worsening code has been refactored to become an efficient version without changing its functionality. To demonstrate the efficiency of the proposed approach, each coding pattern was evaluated by measuring the CPU time under the controlled runtime environment. Furthermore, the Android applications were evaluated and compared via the CPU time of the original version, with that of the refactored version. These experimental results indicate that, by -using the proposed programming practices, the Android developer can develop performance-efficient mobile applications.

Keywords

References

  1. Android Mobile Platforms, The official website, https://developer.android.com
  2. Google Play, https://play.google.com/
  3. AppBrain, Number of Android applications, Feb. 2017.
  4. Android NDK website, https://developer.android.com/ndk/index.html
  5. J. Reimann, M. Brylski, and U. ABmann, A Tool-Supported Quality Smell Catalogue for Android Developers, Softwaretechnik-Trends, 2014.
  6. U. A. Mannan, I. Ahmed, R. A. M. Almurshed, D. Dig, and C. Jensen, "Understanding code smells in Android applications," International Conference on Mobile Software Engineering and Systems, 2016.
  7. S. Mundody and K. Sudarshan, "Evaluating the Impact of Android Best Practices on Energy Consumption," International Conference on Information and Communication Technologies, 2014.
  8. D. Li and W. G. J. Halfond, "An investigation into energy-saving programming practices for Android smartphone app development," International Workshop on Green and Sustainable Software, 2014.
  9. F. A. Fontana, V. Ferme, M. Zanoni, and A. Yamashita, "Automatic metric thresholds derivation for code smell detection," International Workshop on Emerging Trends in Software Metrics, 2015.
  10. M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts, Refactoring: Improving the Design of Existing Code, Addison Wesley, 2002.
  11. F. Palomba, D. D. Nucci, A. Panichella, A. Zaidman, and A. D. Lucia, "Lightweight detection of Android-specific code smells: The aDoctor project," International Conference on Software Analysis, Evolution and Reengineering (SANER), 2017.
  12. G. Hecht, B. Omar, R. Rouvoy, N. Moha, and L. Duchien, "Tracking the Software Quality of Android Applications Along Their Evolution," International Conference on Automated Software Engineering, 2015.
  13. J. A. M. Santos, M. G. de Mendonça, and C. V. A. Silva, "An exploratory study to investigate the impact of conceptualization in god class detection," International Conference on Evaluation and Assessment in Software Engineering, 2013.
  14. J. Lee, D. Kim, and J. Hong, "Code Refactoring Techniques Based on Energy Bad Smells for Reducing Energy Consumption," KIPS Tr. Software and Data Eng., vol. 5, no. 5, Apr. 2016, pp. 209-220. https://doi.org/10.3745/KTSDE.2016.5.5.209
  15. M. Gottschalk, M. Josefiok, J. Jelschen, and A. Winter, "Removing Energy Code Smells with Reengineering Services," Lecture Notes in Informatics, 2012.
  16. A. Carette, M. A. A. Younes, G. Hecht, N. Moha, and R. Rouvoy, "Investigating the energy impact of Android smells," International Conference on Software Analysis, Evolution and Reengineering (SANER), 2017.
  17. G. Hecht, N. Moha, and R. Rouvoy, "An Empirical Study of the Performance Impacts of Android Code Smells," International Conference on Mobile Software Engineering and Systems, 2016.
  18. Best Practices for Performance, https://developer.android.com/training/articles/perf-tips.html#PackageInner
  19. Bitmap Plasma, https://github.com/googlesamples/android-ndk/tree/master/bitmap-plasma
  20. Robotium, https://github.com/RobotiumTech/robotium