Acessando as informações de consumo de memória de uma aplicação (app) em Android via linha de comando

Este post é muito interessante e extremamente útil para quem desenvolve aplicativos para sistemas em modo quiosque. Quando trabalhamos com este modo, temos que ter muito controle e cuidado com as aplicações desenvolvidas para não consumir recursos do dispositivo em demasia. Lembre-se que os dispositivos existentes atualmente, apesar de serem muito melhores que determinados computadores de 10 anos atrás, ainda são equipamentos com recursos reduzidos. Então, suas aplicações devem ser escritas com consciência e observando as diversas limitações que estes dispositivos ainda apresentam. Uma limitação muito importante que deve ser respeitada no Android é o uso de memória. Você deve ter em mente que o Android SO possui diversas regras internas que gerenciam o uso de memória e essas regras diferem um pouco do linux padrão. Em um post futuro irei explicar melhor este tópico, mas para quem ainda não sabe, o Android assume a responsabilidade de finalizar uma determinada aplicação “sem aviso prévio” caso esta aplicação viole algumas regras de uso de recursos ou o sistema operacional necessite liberar espaço de memória para outras atividades.

Várias pessoas me perguntam assombradas o porquê de suas aplicações estarem rodando em um dispositivo Android e de repente elas pararem de rodar do nada. Surpresa! O Android pode ter matado suas aplicações por razões internas. Ai lá se vai seu dispositivo embarcado. Outros me dizem que configuram a aplicações para rodarem com alta prioridade e etc, mas ainda assim elas caem. Surpresa! O Android pode ter derrubado assim mesmo. Dessa forma, procure se informar bem sobre este assunto e tente escrever suas aplicações o mais otimizadas possível.

Neste post vou mostrar um comando via adb shell bem simples que nos permite ter uma visão geral sobre o consumo de memória (heap) de uma aplicação dentro do Android. Para isto, você deve conhecer o pacote completo de sua aplicação ou o pid. Abra um prompt adb shell e utilize o comando dumpsys conforme sintaxe abaixo:

dumpsys meminfo <package_name|pid> [-d]

No meu caso, vou avaliar a aplicação sshdroid através do comando:

dumpsys meminfo berserker.android.apps.sshdroid -d

No site do https://developer.android.com/studio/profile/investigate-ram.html você vai encontrar mais informações sobre este assunto e como analisar os diversos dados retornados pelo dumpsys. Sugiro fortemente que leiam o artigo completo. Sugiro também que você combine este comando com os comandos ps, top, tcpdump e dmesg para fazer uma análise completa do quadro.

Paras aqueles leitores que não estão familiarizados com o uso do adb shell para executar comandos no prompt do Android OS, leiam o artigo http://www.frameworksystem.com/abrindo-um-adb-shell-terminal-no-android/.

Add Comment

Your email address will not be published. Required fields are marked *

Phone: (31) 3646-1612
Fax: (31) 3646-1614
Loja 01, Lourdes, Belo Horizonte/MG
Rua Rio de Janeiro, 1278