Resource Leak Prediction in Android Applications Using Machine Learning / Previsão de Vazamento de Recursos em Aplicações Android Usando Aprendizado de Máquina

Authors

  • Josias Gomes Lima Brazilian Journals Publicações de Periódicos, São José dos Pinhais, Paraná
  • Rafael Giusti
  • Arilo Claudio Dias Neto

DOI:

https://doi.org/10.34117/bjdv.v7i5.29694

Keywords:

defect prediction, Android apps, static analysis, resource leak.

Abstract

Context: When mobile applications (apps) acquire resources (such as a camera, media player and sensors) from the device without releasing them properly and in a timely manner, an error called resource leak occurs. This type of error can cause serious problems, such as performance degradation or system failure. Problem: Identify which components have resource leaks in order to correct them. Proposal: This work proposes an approach (called LeakPred) using machine learning to identify resource leak in components of an Android apps. The data set DroidLeaks, which contains 292 resource leaks identified in 32 open source and large-scale apps, was used in order to evaluate the effectiveness of the proposed approach. Result: The experimental result showed that the proposed approach can detect resource leaks with an accuracy of 87.84%.

References

BHATT, B. N. and FURIA, C. A. (2020). Automated repair of resource leaks in android applications. arXiv preprint arXiv:2003.03201.

EFENDIOGLU, M., SEN, A., and KOROGLU, Y. (2018). Bug prediction of systemc models using machine learning. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 38(3):419–429.

EL NAQA, I. and MURPHY, M. J. (2015). What is machine learning? In Machine Learningin Radiation Oncology, pages 3–11. Springer.

GUO, C., ZHANG, J., YAN, J., ZHANG, Z., and ZHANG, Y. (2013). Characterizing and detecting resource leaks in android applications. In 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE), pg 389–398. IEEE.

HOSHIEAH, N., ZEIN, S., SALLEH, N., and GRUNDY, J. (2019). A static analysis of android source code for lifecycle development usage patterns. Journal of Computer Science,15(1):92–107.

JIANG, H., YANG, H., QIN, S., SU, Z., ZHANG, J., and YAN, J. (2017). Detecting energy bugs in android apps using static analysis. In International Conference on Formal Engineering Methods, pages 192–208. Springer.

LI, Z., JING, X.-Y., ZHU, X., ZHANG, H., XU, B., and YING, S. (2019). Heterogeneous defect prediction with two-stage ensemble learning. Automated Software Engineering,26(3):599–651.

LIU, Y., WANG, J., WEI, L., XU, C., CHEUNG, S.-C., WU, T., YAN, J., and ZHANG, J. (2019). Droidleaks: a comprehensive database of resource leaks in android apps. Empirical Software Engineering, 24(6):3435–3483.

MANJULA, C. and FLORENCE, L. (2019). Deep neural network based hybrid approach for software defect prediction using software metrics. Cluster Computing, 22(4):9847–9863.

MOHRI, M., ROSTAMIZADEH, A., and TALWALKAR, A. (2018). Foundations of machine learning. MIT press.

PRESSMAN, R. and MAXIM, B. (2016). Engenharia de Software-8ª Edição. McGraw Hill Brasil.

QIAN, J. and ZHOU, D. (2016). Prioritizing test cases for memory leaks in android applications. Journal of Computer Science and Technology, 31(5):869–882.

SERRANO, N., HERNANTES, J., & GALLARDO, G. (2013). Mobile web apps. IEEE software, 30(5), 22-27.

STATISTA (2020a). Installed base of smartphones by operating system from 2015 to 2017. https://bit.ly/2xEx73E (Accessed 27 April 2021).

STATISTA (2020b). Number of available applications in the google play store from December 2009 to December 2020. https://bit.ly/2mOe6UQ (Accessed 27 April 2021).

TOFFALINI, F., SUN, J., and OCHOA, M. (2019). Practical static analysis of context leaks in android applications. Software: Practice and Experience, 49(2):233–251.

YAN, D., YANG, S., & ROUNTEV, A. (2013, November). Systematic testing for resource leaks in Android applications. In 2013 IEEE 24th International Symposium on Software Reliability Engineering (ISSRE) (pp. 411-420). IEEE.

Downloads

Published

2021-06-07

How to Cite

Lima, J. G., Giusti, R., & Neto, A. C. D. (2021). Resource Leak Prediction in Android Applications Using Machine Learning / Previsão de Vazamento de Recursos em Aplicações Android Usando Aprendizado de Máquina. Brazilian Journal of Development, 7(5), 47820–47837. https://doi.org/10.34117/bjdv.v7i5.29694

Issue

Section

Original Papers