Previsão de Vazamento de Recursos em Aplicações Android usando Aprendizado de Máquina

  • Josias Gomes Lima UFAM
  • Rafael Giusti UFAM
  • Arilo Claudio Dias-Neto UFAM

Resumo


Contexto: As aplicações móveis (apps) na plataforma Android manipulam muitos recursos incorporados no dispositivo, como câmera, reprodutor de mídia e sensores. Problema: Quando as apps adquirem esses recursos sem liberá-los de maneira adequada e em tempo hábil, acontece o erro chamado vazamento de recursos. Esse tipo de erro pode causar problemas sérios, como degradação de desempenho ou falha do sistema. Proposta: Este trabalho propõe uma solução para a predição de vazamento de recursos em componentes baseando-se em aprendizado de máquina. Para isso, utilizou-se a base de dados DroidLeaks que contém 292 vazamentos de recursos identificados em 32 apps de código aberto e de larga escala.
Palavras-chave: Vazamento de Recursos, Aplicações Android, Aprendizado de Máquina

Referências

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

Calli, B., Srinivasan, K., Morgan, A., and Dollar, A. M. (2018). Learning modes of within-hand manipulation. In 2018 IEEE International Conference on Robotics and Automation (ICRA), pages 3145–3151. IEEE.

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 Learning in Radiation Oncology, pages 3–11. Springer.

Ezzini, S., Berrada, I., and Ghogho, M. (2018). Who is behind the wheel? driver identification and fingerprinting. Journal of Big Data, 5(1):9.

Gao, J., Bai, X., Tsai,W.-T., and Uehara, T. (2014). Mobile application testing: a tutorial. Computer, 47(2):46–55.

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

Nimbalkar, R. R. (2013). Mobile application testing and challenges. International Journal of Science and Research, 2(7):56–58.

Pressman, R. and Maxim, B. (2016). Engenharia de Software-8a 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.

Statista (2020a). Installed base of smartphones by operating system from 2015 to 2017. https://bit.ly/2xEx73E (Accessed 28 August 2020).

Statista (2020b). Number of available applications in the google play store from december 2009 to june 2020. https://bit.ly/2mOe6UQ (Accessed 28 August 2020).

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.
Publicado
01/12/2020
LIMA, Josias Gomes; GIUSTI, Rafael; DIAS-NETO, Arilo Claudio. Previsão de Vazamento de Recursos em Aplicações Android usando Aprendizado de Máquina. In: WORKSHOP DE TESES E DISSERTAÇÕES EM QUALIDADE DE SOFTWARE - SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 19. , 2020, Evento Online. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2020 . p. 31-38.