Recursos reservados para a aplicação Android Binders Gerenciamento de memória no Android Garbage Collector Causa de referências perdidas Cuidados com Bitmaps
inicializar parte do sistema e rodar o init.rc que carregará parte do sistema Android, dentre eles:. - servicemanager: inicia o binder (responsável pela comunicação entre os processos). - vold: volume daemon — controla a montagem de volumes de mídia no sistema de arquivos. - adbd: android debugger bridge daemon — servidor para comuni cação com o cliente adb. - installd: servidor de instalação de pacotes/aplicações (*. apk). - Zygote: O zygote é o pai de todos os processos Java. OBS: O init.rc é escrito em uma linguagem chamada Android Init Language que é composta por Ações, Comandos, Serviços e opções. service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
= new String("Hello World") myString += ", blz?" FIX - Caso 1: Trocar String por StringBuffer/StringBuilder Caso 2: public interface EventListener<EventResponseType> { public void onEvent(EventResponseType response); } Gerenciamento de memória
activity que o framework do android irá chamar para notificar sobre o estado da memória da app. - onTrimMemory() (Android API 14+); - onLowMemory() (Android API anteriores a 14 ); - Para ambos os casos a flag TRIM_MEMORY_UI_HIDDEN será entregue; - onStop ainda deve ser usado para liberar recursos;
de fazer grandes alocações Verifica o espaço de memória da pilha - Runtime.getRuntime().totalMemory(); Verifica quanto de memória já foi consumido - Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory(); Verifica o tamanho máximo da pilha - Runtime.getRuntime().maxMemory()
2048x1536 com um inSampleSize de 4 eu teria uma imagem de 512x384. Aplicando a formula abaixo eu passaria a carregar em memória ao invés de 12MB uma imagem de 0.75 MB. # Of Pixels X Bit Depth ÷ bytes per pixel ÷ 1024 ÷ 1024 = File Size in Megabytes (MB) # Of Pixels = 512x384 == 196608 # Of bit depth == 16 (Considerando uma boa qualidade) (((((512 * 384) * 16) / 4) / 1024) / 1024) -> 0.75 MB * O resultado acima é baseado em um bitmap ARGB_8888
layout complexo que pode ser reutilizado. Isso ajudará a evitar multiplas telas idênticas com complexidades diferentes. <merge> - O Uso do merge faz com que elementos raiz redundantes sejam inseridos na hierarquia.
responding (ANR) - Force close - Delay na exibição e execução de tarefas - Database corrompido - Review ruim na play store OBS: Apenas seguindo algumas boas práticas do android uma série de problemas podem ser evitados e consequentemente dores de cabeça. :P