[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2901739.2901748acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

How android app developers manage power consumption?: an empirical study by mining power management commits

Published: 14 May 2016 Publication History

Abstract

As Android platform becomes more and more popular, a large amount of Android applications have been developed. When developers design and implement Android applications, power consumption management is an important factor to consider since it affects the usability of the applications. Thus, it is important to help developers adopt proper strategies to manage power consumption. Interestingly, today, there is a large number of Android application repositories made publicly available in sites such as GitHub. These repositories can be mined to help crystalize common power management activities that developers do. These in turn can be used to help other developers to perform similar tasks to improve their own Android applications.
In this paper, we present an empirical study of power management commits in Android applications. Our study extends that of Moura et al. who perform an empirical study on energy aware commits; however they do not focus on Android applications and only a few of the commits that they study come from Android applications. Android applications are often different from other applications (e.g., those running on a server) due to the issue of limited battery life and the use of specialized APIs. As subjects of our empirical study, we obtain a list of open source Android applications from F-Droid and crawl their commits from Github. We get 468 power management commits after we filter the commits using a set of keywords and by performing manual analysis. These 468 power management commits are from 154 different Android applications and belong to 15 different application categories. Furthermore, we use open card sort to categorize these power management commits and we obtain 6 groups which correspond to different power management activities. Our study also reveals that for different kinds of Android application (e.g., Games, Connectivity, Navigation, Internet, Phone & SMS, Time, etc.), the dominant power management activities differ. For example, the percentage of power management commits belonging to Power Adaptation activity is larger for Navigation applications than those belonging to other categories.

References

[1]
Google play. https://en.wikipedia.org/wiki/Google_Play.
[2]
Smartphone market share. http://www.idc.com/prodserv/smartphone-os-market-share.jspl.
[3]
New research reveals mobile users want phones to have a longer than average battery life, November 2013.
[4]
Brooks, D., Tiwari, V., and Martonosi, M. Wattch: A framework for architectural-level power analysis and optimizations. In Proceedings of the 27th Annual International Symposium on Computer Architecture (2000), pp. 83--94.
[5]
Cao, T., Blackburn, S. M., Gao, T., and McKinley, K. S. The yin and yang of power and performance for asymmetric hardware and managed software. In ACM SIGARCH Computer Architecture News (2012), vol. 40, IEEE Computer Society, pp. 225--236.
[6]
Chun, B.-G., Ihm, S., Maniatis, P., Naik, M., and Patti, A. Clonecloud: elastic execution between mobile device and cloud. In Proceedings of the Sixth Conference on Computer Systems (2011), ACM, pp. 301--314.
[7]
Daylight, E. G., Fermentel, T., Ykman-Couvreur, C., and Catthoor, F. Incorporating energy efficient data structures into modular software implementations for internet-based embedded systems. In Proceedings of the 3rd International Workshop on Software and Performance (2002), ACM, pp. 134--141.
[8]
Gu, X., Nahrstedt, K., Messer, A., Greenberg, I., and Milojicic, D. Adaptive offloading for pervasive computing. Pervasive Computing, IEEE 3, 3 (2004), 66--73.
[9]
Hao, S., Li, D., Halfond, W. G., and Govindan, R. Estimating android applications' cpu energy usage via bytecode profiling. In Proceedings of the First International Workshop on Green and Sustainable Software (2012), IEEE Press, pp. 1--7.
[10]
Hao, S., Li, D., Halfond, W. G., and Govindan, R. Estimating mobile application energy consumption using program analysis. In Proceedings of the 35th International Conference on Software Engineering (ICSE) (2013), IEEE, pp. 92--101.
[11]
Heikkinen, M. V., Nurminen, J. K., Smura, T., and Hämmäinen, H. Energy efficiency of mobile handsets: Measuring user attitudes and behavior. Telematics and Informatics 29, 4 (2012), 387--399.
[12]
Hemmati, H., Nadi, S., Baysal, O., Kononenko, O., Wang, W., Holmes, R., and Godfrey, M. W. The msr cookbook: Mining a decade of research. In Proceedings of the 10th Working Conference on Mining Software Repositories (MSR) (2013), IEEE, pp. 343--352.
[13]
Hindle, A. Green mining: investigating power consumption across versions. In Proceedings of 34th International Conference on Software Engineering (ICSE) (2012), IEEE, pp. 1301--1304.
[14]
Hindle, A. Green mining: a methodology of relating software change and configuration to power consumption. Empirical Software Engineering 20, 2 (2015), 374--409.
[15]
Hunt, N., Sandhu, P. S., and Ceze, L. Characterizing the performance and energy efficiency of lock-free data structures. In Proceedings of the 15th Workshop on Interaction between Compilers and Computer Architectures (INTERACT) (2011), IEEE, pp. 63--70.
[16]
Krutz, D. E., Mirakhorli, M., Malachowsky, S. A., Ruiz, A., Peterson, J., Filipski, A., and Smith, J. A dataset of open-source android applications. In Proceedings of the 12th Working Conference on Mining Software Repositories (MSR) (2015), pp. 522--525.
[17]
Kwon, Y.-W., and Tilevich, E. Reducing the energy consumption of mobile applications behind the scenes. In Proceedings of the 29th International Conference on Software Maintenance (ICSM) (2013), IEEE, pp. 170--179.
[18]
Li, D., and Halfond, W. G. An investigation into energy-saving programming practices for android smartphone app development. In Proceedings of the 3rd International Workshop on Green and Sustainable Software (2014), ACM, pp. 46--53.
[19]
Li, D., Hao, S., Gui, J., and Halfond, W. G. An empirical study of the energy consumption of android applications. In Proceedings of 2014 International Conference on Software Maintenance and Evolution (ICSME) (2014), IEEE, pp. 121--130.
[20]
Li, D., Hao, S., Halfond, W. G., and Govindan, R. Calculating source line level energy information for android applications. In Proceedings of the 2013 International Symposium on Software Testing and Analysis (ISSTA) (2013), ACM, pp. 78--89.
[21]
Linares-Vásquez, M., Bavota, G., Bernal-Cárdenas, C., Oliveto, R., Di Penta, M., and Poshyvanyk, D. Mining energy-greedy api usage patterns in android apps: an empirical study. In Proceedings of the 11th Working Conference on Mining Software Repositories (MSR) (2014), ACM, pp. 2--11.
[22]
Lo, D., Nagappan, N., and Zimmermann, T. How practitioners perceive the relevance of software engineering research. In Proceedings of the 10th Joint Meeting on Foundations of Software Engineering (FSE) (2015), ACM, pp. 415--425.
[23]
Manotas, I., Pollock, L., and Clause, J. Seeds: a software engineer's energy-optimization decision support framework. In Proceedings of the 36th International Conference on Software Engineering (ICSE) (2014), ACM, pp. 503--514.
[24]
McIntire, D., Ho, K., Yip, B., Singh, A., Wu, W., and Kaiser, W. J. The low power energy aware processing (leap) embedded networked sensor system. In Proceedings of the 5th International Conference on Information Processing in Sensor Networks (2006), ACM, pp. 449--457.
[25]
Messer, A., Greenberg, I., Bernadat, P., Milojicic, D., Chen, D., Giuli, T. J., and Gu, X. Towards a distributed platform for resource-constrained devices. In Proceedings of the 22nd International Conference on Distributed Computing Systems (2002), IEEE, pp. 43--51.
[26]
Moura, I., Pinto, G., Ebert, F., and Castor, F. Mining energy-aware commits. In Proceedings of the 12th Working Conference on Mining Software Repositories (MSR) (2015), pp. 56--67.
[27]
Mudge, T., Austin, T., and Grunwald, D. The reference manual for the sim-panalyzer version 2.0.
[28]
Pathak, A., Hu, Y. C., and Zhang, M. Bootstrapping energy debugging on smartphones: a first look at energy bugs in mobile devices. In Proceedings of the 10th ACM Workshop on Hot Topics in Networks (2011), ACM, p. 5.
[29]
Pathak, A., Hu, Y. C., and Zhang, M. Where is the energy spent inside my app?: fine grained energy accounting on smartphones with eprof. In Proceedings of the 7th ACM European Conference on Computer Systems (2012), ACM, pp. 29--42.
[30]
Pinto, G., Castor, F., and Liu, Y. D. Mining questions about software energy consumption. In Proceedings of the 11th Working Conference on Mining Software Repositories (MSR) (2014), pp. 22--31.
[31]
Sahin, C., Cayci, F., Gutiérrez, I. L. M., Clause, J., Kiamilev, F., Pollock, L., and Winbladh, K. Initial explorations on design pattern energy usage. In Proceedings of First International Workshop on Green and Sustainable Software (GREENS) (2012), IEEE, pp. 55--61.
[32]
Sahin, C., Tornquist, P., McKenna, R., Pearson, Z., and Clause, J. How does code obfuscation impact energy usage? In Proceedings of IEEE International Conference on Software Maintenance and Evolution (ICSME) (2014), IEEE, pp. 131--140.
[33]
Sartoli, S., and Namin, A. S. Poster: Reasoning based on imperfect context data in adaptive security. In Proceedings of the 37th IEEE International Conference on Software Engineering (ICSE) (2015), vol. 2, IEEE, pp. 835--836.
[34]
Satyanarayanan, M., Bahl, P., Caceres, R., and Davies, N. The case for vm-based cloudlets in mobile computing. Pervasive Computing, IEEE 8, 4 (2009), 14--23.
[35]
Siegmund, J., Siegmund, N., and Apel, S. Views on internal and external validity in empirical software engineering. In Proceedings of the 37th International Conference on Software Engineering (ICSE) (2015).
[36]
Spencer, D. Card sorting: Designing usable categories. Rosenfeld Media, 2009.
[37]
Weissel, A., Beutel, B., and Bellosa, F. Cooperative i/o: A novel i/o semantics for energy-aware applications. ACM SIGOPS Operating Systems Review 36, SI (2002), 117--129.
[38]
Wilke, C., Richly, S., Gotz, S., Piechnick, C., and Assmann, U. Energy consumption and efficiency in mobile applications: A user feedback study. In Green Computing and Communications (GreenCom), 2013 IEEE and Internet of Things (iThings/CPSCom), IEEE International Conference on and IEEE Cyber, Physical and Social Computing (2013), IEEE, pp. 134--141.
[39]
Yuan, W., and Nahrstedt, K. Energy-efficient soft real-time cpu scheduling for mobile multimedia systems. ACM SIGOPS Operating Systems Review 37, 5 (2003), 149--163.
[40]
Zhang, Y., Huang, G., Liu, X., Zhang, W., Mei, H., and Yang, S. Refactoring android java code for on-demand computation offloading. In ACM SIGPLAN Notices (2012), vol. 47, ACM, pp. 233--248.
[41]
Zimmermann, T., Nagappan, N., Guo, P. J., and Murphy, B. Characterizing and predicting which bugs get reopened. In Proceedings of 34th International Conference on Software Engineering (ICSE) (2012), IEEE, pp. 1074--1083.

Cited By

View all
  • (2024)The Linguistics of ProgrammingProceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3689492.3689806(162-182)Online publication date: 17-Oct-2024
  • (2024)Refining ChatGPT-Generated Code: Characterizing and Mitigating Code Quality IssuesACM Transactions on Software Engineering and Methodology10.1145/364367433:5(1-26)Online publication date: 4-Jun-2024
  • (2023)Development of a Mobile Application: From University Website to Mobile AppJournal of Ubiquitous Computing and Communication Technologies10.36548/jucct.2023.2.0075:2(203-219)Online publication date: Jun-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
MSR '16: Proceedings of the 13th International Conference on Mining Software Repositories
May 2016
544 pages
ISBN:9781450341868
DOI:10.1145/2901739
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 May 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. empirical study
  2. mining software repository
  3. power consumption
  4. power management

Qualifiers

  • Research-article

Conference

ICSE '16
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)21
  • Downloads (Last 6 weeks)4
Reflects downloads up to 21 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)The Linguistics of ProgrammingProceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3689492.3689806(162-182)Online publication date: 17-Oct-2024
  • (2024)Refining ChatGPT-Generated Code: Characterizing and Mitigating Code Quality IssuesACM Transactions on Software Engineering and Methodology10.1145/364367433:5(1-26)Online publication date: 4-Jun-2024
  • (2023)Development of a Mobile Application: From University Website to Mobile AppJournal of Ubiquitous Computing and Communication Technologies10.36548/jucct.2023.2.0075:2(203-219)Online publication date: Jun-2023
  • (2023)Which design decisions in AI-enabled mobile applications contribute to greener AI?Empirical Software Engineering10.1007/s10664-023-10407-729:1Online publication date: 18-Nov-2023
  • (2023)Integrating human values in software development using a human values dashboardEmpirical Software Engineering10.1007/s10664-023-10305-y28:3Online publication date: 18-Apr-2023
  • (2022)Techvar: Classification of Similarity in Software Detection Model using Deep Learning2022 International Conference on Sustainable Computing and Data Communication Systems (ICSCDS)10.1109/ICSCDS53736.2022.9761003(341-346)Online publication date: 7-Apr-2022
  • (2022)Human values in software development artefactsInformation and Software Technology10.1016/j.infsof.2021.106731141:COnline publication date: 1-Jan-2022
  • (2021)Towards a Human Values Dashboard for Software DevelopmentProceedings of the 15th ACM / IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)10.1145/3475716.3475770(1-12)Online publication date: 11-Oct-2021
  • (2020)How do open source app developers perceive API changes related to Android battery optimization? An empirical studySoftware: Practice and Experience10.1002/spe.292851:4(691-710)Online publication date: 8-Nov-2020
  • (2019)On the classification of software change messages using multi-label active learningProceedings of the 34th ACM/SIGAPP Symposium on Applied Computing10.1145/3297280.3297452(1760-1767)Online publication date: 8-Apr-2019
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media