Skip to main content

Improving Android App Responsiveness Through Automated Frame Rate Reduction

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 12914))

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    Available: https://github.com/AndroidGI/AndroidGI.

  2. 2.

    Based on manual judgement we decided to select applications with at least one UI class with at least 100 lines of code.

References

  1. Espresso for UI testing. https://developer.android.com/training/testing/espresso/

  2. Jacoco. https://docs.gradle.org/current/userguide/jacoco_plugin.html

  3. Arcuri, A., Yao, X.: A novel co-evolutionary approach to automatic software bug fixing, pp. 162–168, July 2008

    Google Scholar 

  4. 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

  5. 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

  6. 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

  7. 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)

    Google Scholar 

  8. 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

  9. 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

  10. Fraser, G., Arcuri, A.: EvoSuite: automatic test suite generation for object-oriented software. In: SIGSOFT FSE, pp. 416–419. ACM (2011)

    Google Scholar 

  11. 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

  12. 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)

    Google Scholar 

  13. 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

  14. 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

  15. 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

  16. Hort, M., Kechagia, M., Sarro, F., Harman, M.: A survey of performance optimization for mobile applications. IEEE Trans. Softw. Eng. (TSE) (2021)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. 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

    Chapter  Google Scholar 

  19. Khalid, H., Shihab, E., Nagappan, M., Hassan, A.E.: What do mobile app users complain about? IEEE Softw. 32(3), 70–77 (2014)

    Article  Google Scholar 

  20. 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

  21. Langdon, W.B.: Performance of genetic programming optimised Bowtie2 on genome comparison and analytic testing (GCAT) benchmarks. BioData Min. 8, 1 (2015)

    Article  Google Scholar 

  22. 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)

    Google Scholar 

  23. 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

    Article  Google Scholar 

  24. 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

  25. 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

  26. 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

  27. 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)

    Article  Google Scholar 

  28. Ra, M., Sheth, A., Mummert, L., Pillai, P., Wetherall, D., Govindan, R.: Odessa: enabling interactive perception applications on mobile devices. In: MobiSys 2011 (2011)

    Google Scholar 

  29. Saarinen, A., Siekkinen, M., Xiao, Y., Nurminen, J., Kemppainen, M., Hui, P.: Can offloading save energy for popular apps?, August 2012

    Google Scholar 

  30. Yang, Y., Cao, G.: Prefetch-based energy optimization on smartphones. IEEE Trans. Wirel. Commun. 17(1), 693–706 (2017)

    Article  Google Scholar 

Download references

Acknowledgements

This work was funded by the EPSRC fellowship EP/P023991/1.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to James Callan .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics