Abstract
Smartphones are an indispensable part of people’s daily lives. Smartphone apps often use phone sensors to probe their users’ physical environmental conditions to provide services. However, sensing operations can be energy-consumptive, and thus the obtained sensory data should be effectively utilized by apps for their users’ benefits. Existing studies disclosed that many real-world smartphone apps have poor utilization of sensory data, and this causes serious energy waste. To diagnose such energy bugs, a recent technique GreenDroid automatically generates sensory data, tracks their propagation and analyzes their utilization in an app. However, we observe that GreenDroid’s sensory data generation is random and this can negatively affect its stability and effectiveness. Our study reported that GreenDroid might miss energy bugs that require specific sensory data to manifest. To address this problem, we propose a novel approach to systematically generating multi-dimensional sensory data. For effective diagnosis, we also propose to consider app state changes at a finer granularity. We implemented our approach as a prototype tool CyanDroid, and evaluated it using four real-world Android apps and hundreds of their mutants. Our results confirmed that CyanDroid is more stable and effective in energy inefficiency diagnosis for sensory data underutilization issues.
摘要
创新点
-
1.
用多维白盒采样技术分析安卓应用的传感数据利用率;
-
2.
用细粒度运行状态提升安卓应用能耗低效分析的稳定性。
Similar content being viewed by others
References
Carroll A, Heiser G. An analysis of power consumption in a smartphone. In: Proceedings of the USENIX Annual Technical Conference, Boston, 2010. 1–14
Liu Y P, Xu C, Cheung S C. Where has my battery gone? Finding sensor related energy black holes in smartphone applications. In: Proceedings of IEEE International Conference on Pervasive Computing and Communications (PerCom), San Diego, 2013. 2–10
Liu Y P, Xu C, Cheung S C, et al. GreenDroid: automated diagnosis of energy inefficiency for smartphone applications. IEEE Trans Softw Eng, 2014, 40: 911–940
Bao T, Zheng Y H, Zhang X Y. White box sampling in uncertain data processing enabled by program analysis. In: Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, Tucson, 2012. 897–914
Sama M, Rosenblum D S, Wang Z M, et al. Model-based fault detection in context-aware adaptive applications. In: Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering, Atlanta, 2008. 261–271
King J C. Symbolic execution and program testing. Commun ACM, 1976, 17: 385–394
Kemerlis V P, Portokalidis G, Jee K, et al. Libdft: practical dynamic data flow tracking for commodity systems. In: Proceedings of the 8th ACM SIGPLAN/SIGOPS Conference on Virtual Execution Environments, London, 2012. 121–132
Jia Y, Harman M. An analysis and survey of the development of mutation testing. IEEE Trans Softw Eng, 2011, 37: 649–678
Just R, Jalali D, Inozemtseva L, et al. Are mutants a valid substitute for real faults in software testing? In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, Hong Kong, 2014. 654–665
Knuth D E, Moore R W. An analysis of alpha-beta pruning. Artif Intell, 1976, 6: 293–326
Li X J, Jiang Y Y, Liu Y P, et al. User guided automation for testing mobile apps. In: Proceedings of Asia-Pacific Software Engineering Conference, Jeju, 2014. 27–34
Machiry A, Tahiliani R, Naik M. Dynodroid: an input generation system for Android apps. In: Proceedings of the 9th Joint Meeting on Foundations of Software Engineering, Saint Petersburg, 2013. 224–234
Mahmood R, Mirzaei N, Malek S. EvoDroid: segmented evolutionary testing of Android apps. In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, Hong Kong, 2014. 599–609
Liu Y P, Xu C, Cheung S C. Characterizing and detecting performance bugs for smartphone applications. In: Proceedings of the 36th International Conference on Software Engineering, Hyderabad, 2014. 1013–1024
Pathak A, Jindal A, Hu Y C, et al. What is keeping my phone awake? Characterizing and detecting no-sleep energy bugs in smartphone apps. In: Proceedings of the 10th International Conference on Mobile Systems, Applications, and Services. New York: ACM, 2012. 267–280
Banerjee A, Chong L K, Chattopadhyay S, et al. Detecting energy bugs and hotspots in mobile apps. In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, Hong Kong, 2014. 588–598
Singh D, KaiserWJ. The atom LEAP platform for energy-efficient embedded computing. Technical Report, University of California, Los Angeles. 2010
Pathak A, Hu Y C, 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, Bern, 2012. 29–42
Hao S, Li D, Halfond W G J, et al. Estimating mobile application energy consumption using program analysis. In: Proceedings of the International Conference on Software Engineering, San Francisco, 2013. 92–101
Li D, Hao S, Halfond W G, et al. Calculating source line level energy information for Android applications. In: Proceedings of the International Symposium on Software Testing and Analysis, Lugano, 2013. 78–89
Sahin C, Tornquist P, McKenna R, et al. How does code obfuscation impact energy usage? In: Proceedings of IEEE International Conference on Software Maintenance and Evolution (ICSME), Victoria, 2014. 131–140
Li D, Hao S, Gui J P, et al. An empirical study of the energy consumption of Android applications. In: Proceedings of IEEE International Conference on Software Maintenance and Evolution (ICSME), Victoria, 2014. 121–130
Linares-Vásquez M, Bavota G, Bernal-Cárdenas C, et al. Mining energy-greedy API usage patterns in Android apps: an empirical study. In: Proceedings of the 11th Working Conference on Mining Software Repositories, Hyderabad, 2014. 2–11
Ma X, Huang P, Jin X X, et al. eDoctor: automatically diagnosing abnormal battery drain issues on smartphones. In: Proceedings of the 10th USENIX Conference on Networked Systems Design and Implementation, Lombard, 2013. 57–70
Li Y C, Guo Y, Kong J J, et al. Fixing sensor-related energy bugs through automated sensing policy instrumentation. In: Proceedings of IEEE/ACM International Symposium on Low Power Electronics and Design (ISLPED), Rome, 2015. 321–326
Marvasti F. Nonuniform Sampling: Theory and Practice. New York: Springer Science & Business Media, 2012
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Li, Q., Xu, C., Liu, Y. et al. CyanDroid: stable and effective energy inefficiency diagnosis for Android apps. Sci. China Inf. Sci. 60, 012104 (2017). https://doi.org/10.1007/s11432-015-1015-5
Received:
Accepted:
Published:
DOI: https://doi.org/10.1007/s11432-015-1015-5