Abstract
Responsiveness is one of the most important properties of Android applications to both developers and users. Recent survey on automated improvement of non-functional properties of Android applications shows there is a gap in the application of search-based techniques to improve responsiveness. Therefore, we explore the use of genetic improvement (GI) to achieve this task. We extend Gin, an open source GI framework, to work with Android applications. Next, we apply GI to four open source Android applications, measuring frame rate as proxy for responsiveness. We find that while there are improvements to be found in UI-implementing code (up to 43%), often applications’ test suites are not strong enough to safely perform GI, leading to generation of many invalid patches. We also apply GI to areas of code which have highest test-suite coverage, but find no patches leading to consistent frame rate reductions. This shows that although GI could be successful in improvement of Android apps’ responsiveness, any such test-based technique is currently hindered by availability of test suites covering UI elements.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Available: https://github.com/AndroidGI/AndroidGI.
- 2.
Based on manual judgement we decided to select applications with at least one UI class with at least 100 lines of code.
References
Espresso for UI testing. https://developer.android.com/training/testing/espresso/
Jacoco. https://docs.gradle.org/current/userguide/jacoco_plugin.html
Arcuri, A., Yao, X.: A novel co-evolutionary approach to automatic software bug fixing, pp. 162–168, July 2008
Baumann, P., Santini, S.: Every byte counts: selective prefetching for mobile applications. In: Proceedings of ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies, vol. 1, no. 2, June 2017. https://doi.org/10.1145/3090052
Berg, F., Dürr, F., Rothermel, K.: Increasing the efficiency and responsiveness of mobile applications with preemptable code offloading. In: 2014 IEEE International Conference on Mobile Services, pp. 76–83 (2014). https://doi.org/10.1109/MobServ.2014.20
Blot, A., Petke, J.: Empirical comparison of search heuristics for genetic improvement of software. IEEE Trans. Evol. Comput. 1 (2021). https://doi.org/10.1109/TEVC.2021.3070271
Bokhari, M.A., Bruce, B.R., Alexander, B., Wagner, M.: Deep parameter optimisation on android smartphones for energy minimisation: a tale of woe and a proof-of-concept. In: GECCO (Companion), pp. 1501–1508. ACM (2017)
Brownlee, A.E.I., Petke, J., Alexander, B., Barr, E.T., Wagner, M., White, D.R.: Gin: genetic improvement research made easy. In: Proceedings of the Genetic and Evolutionary Computation Conference, GECCO 2019, pp. 985–993. Association for Computing Machinery (2019). https://doi.org/10.1145/3321707.3321841
Feng, R., Meng, G., Xie, X., Su, T., Liu, Y., Lin, S.: Learning performance optimization from code changes for android apps. In: 2019 IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW), pp. 285–290 (2019). https://doi.org/10.1109/ICSTW.2019.00067
Fraser, G., Arcuri, A.: EvoSuite: automatic test suite generation for object-oriented software. In: SIGSOFT FSE, pp. 416–419. ACM (2011)
Gordon, M.S., Hong, D.K., Chen, P.M., Flinn, J., Mahlke, S., Mao, Z.M.: Accelerating mobile applications through flip-flop replication. In: Proceedings of the 13th Annual International Conference on Mobile Systems, Applications, and Services, MobiSys 2015, New York, NY, USA, pp. 137–150. Association for Computing Machinery (2015). https://doi.org/10.1145/2742647.2742649
Gordon, M.S., Jamshidi, D.A., Mahlke, S., Mao, Z.M., Chen, X.: COMET: code offload by migrating execution transparently. In: Proceedings of the 10th USENIX Conference on Operating Systems Design and Implementation, OSDI 2012, pp. 93–106. USENIX Association, USA (2012)
Haraldsson, S.O., Woodward, J.R., Brownlee, A.E.I., Siggeirsdottir, K.: Fixing bugs in your sleep: how genetic improvement became an overnight success. In: Bosman, P.A.N. (ed.) Genetic and Evolutionary Computation Conference, Berlin, Germany, 15–19 July 2017. Companion Material Proceedings, pp. 1513–1520. ACM (2017). https://doi.org/10.1145/3067695.3082517
Hecht, G., Moha, N., Rouvoy, R.: An empirical study of the performance impacts of android code smells. In: 2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft), pp. 59–69 (2016). https://doi.org/10.1109/MobileSoft.2016.030
Higgins, B.D., Flinn, J., Giuli, T.J., Noble, B., Peplin, C., Watson, D.: Informed mobile prefetching. In: Proceedings of the 10th International Conference on Mobile Systems, Applications, and Services, MobiSys 2012, New York, NY, USA, pp. 155–168. Association for Computing Machinery (2012). https://doi.org/10.1145/2307636.2307651
Hort, M., Kechagia, M., Sarro, F., Harman, M.: A survey of performance optimization for mobile applications. IEEE Trans. Softw. Eng. (TSE) (2021)
Inukollu, V., Keshamoni, D., Kang, T., Inukollu, M.: Factors influencing quality of mobile apps: role of mobile app development life cycle. Int. J. Softw. Eng. Appl. 5 (2014)
Kemp, R., Palmer, N., Kielmann, T., Bal, H.: Cuckoo: a computation offloading framework for smartphones. In: Gris, M., Yang, G. (eds.) MobiCASE 2010. LNICST, vol. 76, pp. 59–79. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-29336-8_4
Khalid, H., Shihab, E., Nagappan, M., Hassan, A.E.: What do mobile app users complain about? IEEE Softw. 32(3), 70–77 (2014)
Kosta, S., Aucinas, A., Hui, P., Mortier, R., Zhang, X.: ThinkAir: dynamic resource allocation and parallel execution in the cloud for mobile code offloading. In: Proceedings of the IEEE INFOCOM, pp. 945–953, March 2012. https://doi.org/10.1109/INFCOM.2012.6195845
Langdon, W.B.: Performance of genetic programming optimised Bowtie2 on genome comparison and analytic testing (GCAT) benchmarks. BioData Min. 8, 1 (2015)
Li, D., Lyu, Y., Gui, J., Halfond, W.G.J.: Automated energy optimization of HTTP requests for mobile applications. In: Proceedings of the 38th International Conference on Software Engineering, ICSE 2016, New York, NY, USA, pp. 249–260. Association for Computing Machinery (2016)
Lim, S.L., Bentley, P., Kanakam, N., Ishikawa, F., Honiden, S.: Investigating country differences in mobile app user behavior and challenges for software engineering. IEEE Trans. Softw. Eng. 41, 40–64 (2014). https://doi.org/10.1109/TSE.2014.2360674
Lin, Y., Okur, S., Dig, D.: Study and refactoring of android asynchronous programming (T). In: 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 224–235 (2015). https://doi.org/10.1109/ASE.2015.50
Lyu, Y., Li, D., Halfond, W.G.J.: Remove rats from your code: automated optimization of resource inefficient database writes for mobile applications. In: Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2018, New York, NY, USA, pp. 310–321. Association for Computing Machinery (2018). https://doi.org/10.1145/3213846.3213865
Pecorelli, F., Catolino, G., Ferrucci, F., De Lucia, A., Palomba, F.: Testing of mobile applications in the wild: a large-scale empirical study on android apps. In: ICPC 2020, New York, NY, USA. Association for Computing Machinery (2020). https://doi.org/10.1145/3387904.3389256
Petke, J., Haraldsson, S.O., Harman, M., Langdon, W.B., White, D.R., Woodward, J.R.: Genetic improvement of software: a comprehensive survey. IEEE Trans. Evol. Comput. 22(3), 415–432 (2018)
Ra, M., Sheth, A., Mummert, L., Pillai, P., Wetherall, D., Govindan, R.: Odessa: enabling interactive perception applications on mobile devices. In: MobiSys 2011 (2011)
Saarinen, A., Siekkinen, M., Xiao, Y., Nurminen, J., Kemppainen, M., Hui, P.: Can offloading save energy for popular apps?, August 2012
Yang, Y., Cao, G.: Prefetch-based energy optimization on smartphones. IEEE Trans. Wirel. Commun. 17(1), 693–706 (2017)
Acknowledgements
This work was funded by the EPSRC fellowship EP/P023991/1.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Callan, J., Petke, J. (2021). Improving Android App Responsiveness Through Automated Frame Rate Reduction. In: O'Reilly, UM., Devroey, X. (eds) Search-Based Software Engineering. SSBSE 2021. Lecture Notes in Computer Science(), vol 12914. Springer, Cham. https://doi.org/10.1007/978-3-030-88106-1_10
Download citation
DOI: https://doi.org/10.1007/978-3-030-88106-1_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-88105-4
Online ISBN: 978-3-030-88106-1
eBook Packages: Computer ScienceComputer Science (R0)