Abstract
Mobile applications (apps for short) often need to display images. However, inefficient image displaying (IID) issues are pervasive in mobile apps, and can severely impact app performance and user experience. This paper first establishes a descriptive framework for the image displaying procedures of IID issues. Based on the descriptive framework, we conduct an empirical study of 216 real-world IID issues collected from 243 popular open-source Android apps to validate the presence and severity of IID issues, and then shed light on these issues’ characteristics to support research on effective issue detection. With the findings of this study, we propose a static IID issue detection tool TAPIR and evaluate it with 243 real-world Android apps. Encouragingly, 49 and 64 previously-unknown IID issues in two different versions of 16 apps reported by TAPIR are manually confirmed as true positives, respectively, and 16 previously-unknown IID issues reported by TAPIR have been confirmed by developers and 13 have been fixed. Then, we further evaluate the performance impact of these detected IID issues and the performance improvement if they are fixed. The results demonstrate that the IID issues detected by TAPIR indeed cause significant performance degradation, which further show the effectiveness and efficiency of TAPIR.
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Zhao Y X, Laser M S, Lyu Y J, Medvidovic N. Leveraging program analysis to reduce user-perceived latency in mobile applications. In Proc. the 40th International Conference on Software Engineering, May 27–Jun. 3, 2018, pp.176–186. DOI: https://doi.org/10.1145/3180155.3180249.
Liu Y P, Xu C, Cheung S C. Characterizing and detecting performance bugs for smartphone applications. In Proc. the 36th Int. Conf. Software Engineering, May 31–Jun. 7, 2014, pp.1013–1024. DOI: https://doi.org/10.1145/2568225.2568229.
Carette A, Younes M A A, Hecht G, Moha N, Rouvoy R. Investigating the energy impact of Android smells. In Proc. the 24th IEEE International Conference on Software Analysis, Evolution and Reengineering, Feb. 2017, pp.115–126. DOI: https://doi.org/10.1109/SANER.2017.7884614.
Wang Y, Rountev A. Profiling the responsiveness of Android applications via automated resource amplification. In Proc. the 2016 International Conference on Mobile Software Engineering and Systems, May 2016, pp.48–58. DOI: https://doi.org/10.1145/2897073.2897097.
Linares-Vásquez M, Vendome C, Luo Q, Poshyvanyk D. How developers detect and fix performance bottlenecks in Android apps. In Proc. the 2015 IEEE Int. Conf. Software Maintenance and Evolution, Sept. 29–Oct. 1, 2015, pp.352–361. DOI: https://doi.org/10.1109/ICSM.2015.7332486.
Liu Y P, Xu C, Cheung S C. Diagnosing energy efficiency and performance for mobile internetware applications. IEEE Software, 2015, 32(1): 67–75. DOI: https://doi.org/10.1109/MS.2015.4.
Kwon Y, Lee S, Yi H, Kwon D, Yang S, Chun B G, Huang L, Maniatis P, Naik M, Paek Y. Mantis: Automatic performance prediction for smartphone applications. In Proc. the 2013 USENIX Conference on Annual Technical Conference, Jun. 2013, pp.297–308.
Gao Y, Luo Y, Chen D Q, Huang H C, Dong W Y, Xia M Y, Liu X, Bu J J. Every pixel counts: Fine-grained UI rendering analysis for mobile applications. In Proc. the 2017 IEEE Conference on Computer Communications, May 2017. DOI: https://doi.org/10.1109/INFOCOM.2017.8057023.
Li W J, Jiang Y Y, Xu C, Liu Y P, Ma X X, Lyu J. Characterizing and detecting inefficient image displaying issues in Android apps. In Proc. the 26th IEEE International Conference on Software Analysis, Evolution and Reengineering, Feb. 2019, pp.355–365. DOI: https://doi.org/10.1109/SANER.2019.8668030.
Agrawal H, Horgan J R. Dynamic program slicing. ACM SIGPLAN Notices, 1990, 25(6): 246–256. DOI: https://doi.org/10.1145/93548.93576.
Liu Y P, Xu C, Cheung S C, Terragni V. Understanding and detecting wake lock misuses for Android applications. In Proc. the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, Nov. 2016, pp.396–409. DOI: https://doi.org/10.1145/2950290.2950297.
Hu J J, Wei L L, Liu Y P, Cheung S C, Huang H X. A tale of two cities: How WebView induces bugs to Android applications. In Proc. the 33rd ACM/IEEE International Conference on Automated Software Engineering, Sept. 2018, pp.702–713. DOI: https://doi.org/10.1145/3238147.3238180.
Rath M, Rendall J, Guo J L C, Cleland-Huang J, Mäder P. Traceability in the wild: Automatically augmenting incomplete trace links. In Proc. the 40th International Conference on Software Engineering, May 27–Jun. 3 2018, pp.834–845. DOI: https://doi.org/10.1145/3180155.3180207.
Wu T Y, Liu J R, Xu Z B, Guo C R, Zhang Y L, Yan J, Zhang J. Light-weight, inter-procedural and callback-aware resource leak detection for Android apps. IEEE Trans. Software Engineering, 2016, 42(11): 1054–1076. DOI: https://doi.org/10.1109/TSE.2016.2547385.
Xu G Q, Rountev A. Precise memory leak detection for Java software using container profiling. In Proc. the 30th International Conference on Software Engineering, May 2008, pp.151–160. DOI: https://doi.org/10.1145/1368088.1368110.
Yan D C, Xu G Q, Yang S Q, Rountev A. LeakChecker: Practical static memory leak detection for managed languages. In Proc. the 2014 Annual IEEE/ACM International Symposium on Code Generation and Optimization, Feb. 2014, pp.87–97. DOI: https://doi.org/10.1145/2544137.2544151.
Song W, Han M Q, Huang J. IMGDroid: Detecting image loading defects in Android applications. In Proc. the 43rd IEEE/ACM Int. Conf. Software Engineering, May 2021, pp.823–834. DOI: https://doi.org/10.1109/ICSE43902.2021.00080.
Jensen C S, Prasad M R, Møller A. Automated testing with targeted event sequence generation. In Proc. the 2013 Inter. Symp. Software Testing and Analysis, Jul. 2013, pp.67–77. DOI: https://doi.org/10.1145/2483760.2483777.
Huang J X, Xu Q, Tiwana B, Mao Z M, Zhang M, Bahl P. Anatomizing application performance differences on smartphones. In Proc. the 8th International Conference on Mobile Systems, Applications, and Services, Jun. 2010, pp.165–178. DOI: https://doi.org/10.1145/1814433.1814452.
Nejati J, Balasubramanian A. An in-depth study of mobile browser performance. In Proc. the 25th International Conference on World Wide Web, Apr. 2016, pp.1305–1315. DOI: https://doi.org/10.1145/2872427.2883014.
Huang G, Xu M W, Lin F X, Liu Y X, Ma Y, Pushp S, Liu X Z. ShuffleDog: Characterizing and adapting user-perceived latency of Android apps. IEEE Trans. Mobile Computing, 2017, 16(10): 2913–2926. DOI: https://doi.org/10.1109/TMC.2017.2651823.
Rosen S, Han B, Hao S, Mao Z M, Qian F. Push or request: An investigation of HTTP/2 server push for improving mobile performance. In Proc. the 26th International Conference on World Wide Web, Apr. 2017, pp.459–468. DOI: https://doi.org/10.1145/3038912.3052574.
Qian F, Wang Z G, Gerber A, Mao Z Q, Sen S, Spatscheck O. Profiling resource usage for mobile applications: A cross-layer approach. In Proc. the 9th International Conference on Mobile Systems, Applications, and Services, Jun. 28–Jul. 1, 2011, pp.321–334. DOI: https://doi.org/10.1145/1999995.2000026.
Ravindranath L, Padhye J, Agarwal S, Mahajan R, Obermiller I, Shayandeh S. AppInsight: Mobile app performance monitoring in the wild. In Proc. the 10th USENIX Conference on Operating Systems Design and Implementation, Oct. 2012, pp.107–120. DOI: https://doi.org/10.5555/2387880.2387891.
Zhang L D, Bild D R, Dick R P, Mao Z M, Dinda P. Panappticon: Event-based tracing to measure mobile application and platform performance. In Proc. the 2013 International Conference on Hardware/Software Codesign and System Synthesis, Sept. 29–Oct. 4, 2013, pp.1–10. DOI: https://doi.org/10.1109/CODES-ISSS.2013.6659020.
Nistor A, Ravindranath L. SunCat: Helping developers understand and predict performance problems in smart-phone applications. In Proc. the 2014 International Symposium on Software Testing and Analysis, Jul. 2014, pp.232–292. DOI: https://doi.org/10.1145/2610384.2610410.
Lin Y, RadoiC, Dig D. Retrofitting concurrency for Android applications through refactoring. In Proc. the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, Nov. 2014, pp.341–352. DOI: https://doi.org/10.1145/2635868.2635903.
Kang Y, Zhou Y F, Xu H, Lyu M R. DiagDroid: Android performance diagnosis via anatomizing asynchronous executions. In Proc. the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, Nov. 2016, pp.410–421. DOI: https://doi.org/10.1145/2950290.2950316.
Lee K, Chu D, Cuervo E, Kopf J, Degtyarev Y, Grizan S, Wolman A, Flinn J. Outatime: Using speculation to enable low-latency continuous interaction for mobile cloud gaming. In Proc. the 13th Annual International Conference on Mobile Systems, Applications, and Services, May 2015, pp.151–165. DOI: https://doi.org/10.1145/2742647.2742656.
Lyu Y J, Li D, Halfond W G J. Remove RATs from your code: Automated optimization of resource inefficient database writes for mobile applications. In Proc. the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis, Jul. 2013, pp.310–321. DOI: https://doi.org/10.1145/3213846.3213865.
Nguyen D T, Zhou G, Xing G L, Qi X, Hao Z J, Peng G, Yang Q. Reducing smartphone application delay through read/write isolation. In Proc. the 13th Annual Int. Conf. Mobile Systems, Applications, and Services, May 2015, pp.287–300. DOI: https://doi.org/10.1145/2742647.2742661.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of Interest The authors declare that they have no conflict of interest.
Additional information
A preliminary version of the paper was published in the Proceedings of SANER 2019.
This work was supported by the Leading-Edge Technology Program of Jiangsu Natural Science Foundation of China under Grant No. BK20202001, and the National Natural Science Foundation of China under Grant No. 61932021. The authors would like to thank the support from the Collaborative Innovation Center of Novel Software Technology and Industrialization, Jiangsu, China.
Wen-Jie Li is a lecturer with the School of Computer and Information, Anhui Normal University, Wuhu. He received his Ph.D. degree from Nanjing University, Nanjing, in 2022. His research interests include Android application analysis and testing.
Jun Ma is an associate professor in the Department of Computer Science and Technology at Nanjing University, Nanjing. He received his Ph.D. degree from Nanjing University, Nanjing, in 2015. His research interests include software testing and analysis, and software composition analysis.
Yan-Yan Jiang received his Ph.D. degree from Nanjing University, Nanjing, in 2017. He is currently an associate professor in the Department of Computer Science and Technology, Nanjing University, Nanjing. His research interests include software testing/analysis and program synthesis.
Chang Xu is a professor in the Department of Computer Science and Technology at Nanjing University, Nanjing. He received his Ph.D. degree in computer science and engineering from The Hong Kong University of Science and Technology, Hong Kong, in 2008. His research interests include big data software engineering, software testing and analysis, and adaptive and embedded system.
Xiao-Xing Ma received his Ph.D. degree in computer science and technology from Nanjing University, Nanjing, in 2003. He is currently a professor in State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing. His research topics include adaptive software systems, software architectures, middleware systems, and assurance of non-functional software qualities.
Electronic supplementary material
Rights and permissions
About this article
Cite this article
Li, WJ., Ma, J., Jiang, YY. et al. Understanding and Detecting Inefficient Image Displaying Issues in Android Apps. J. Comput. Sci. Technol. 39, 434–459 (2024). https://doi.org/10.1007/s11390-022-1670-3
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11390-022-1670-3