Memória Livre no Android, a lenda

Esse post é para desmistificar a questão de “Memória RAM Livre” no Android.

Vou dividir o post em duas partes, um resumão já de cara pra quem é leigo ou tem preguiça de ler e outra com mais  detalhes pra quem quer entender um pouco melhor o assunto.

Curto e Grosso: Android NÃO é Windows pra precisar de RAM livre!

– Windows, Menos RAM utilizada é melhor
– Android, MAIS RAM utilizada é MELHOR

O Android foi concebido para trabalhar sempre com a memória RAM carregada de apps. Estes apps carregados na memória ficam num estado congelado, ou seja, não gastam bateria, e o fato deles estarem na memória não consomem energia alguma.

Por quê é assim?

Simples, este é um meio de economizar bateria, e trazer uma experiência superior de multi-tarefa.

A economia de energia se dá pelo fato dos aplicativos já estarem carregados na memória RAM. Quando o usuário opta por usar algum app, ele apenas sai do segundo plano e é trazido para o primeiro. A demanda de energia necessária pra alternar um aplicativo do segundo pro primeiro plano, e vice-versa, é muito menor do que para carregar um aplicativo do zero.

A melhora na multi-tarefa se dá pelo fato dos aplicativos já estarem “abertos”. Ou seja, a alternância entre os apps é praticamente instantânea.

Então esqueça aqueles malditos aplicativos de limpeza de memória e que matam os processos do Android, tais como Clean Master, Task Killer, Smart RAM Booster…. eles só servem para gastar mais bateria, coletar dados e empurrar mais propagandas ao usuário.

E fuja dessas dicas mirabolantes de como aumentar a memória ram do seu android, isso também só irá fazer você gastar mais bateria!

 

Agora para quem quer uma explicação mais técnica, vamos detalhar melhor o gerenciamento do uso de RAM no Android.

I – Funcionamento

Primeiramente, vale ressaltar logo de cara que o Android utiliza, sim, o kernel Linux, ele é construído a partir disso. Kernel nada mais é do que a interface que faz a comunicação entre software e hardware em um computador, gerenciando, por exemplo, o uso de memória RAM e processamento.

No Android, a memória RAM é ocupada de 4 formas:

(1) Sistema
(2) Serviços
(3) Processos, associados a um serviço
(4) Processos, em Cache.

Vamos ver cada um deles:

(1) SISTEMA

Esta é a parcela que o próprio Android usa para rodar. Normalmente o valor flutua entre 400 e 600mb, no Android “puro”. (estes valores são mensuráveis apenas do Android 5.0 em diante).

O SISTEMA tem prioridade máxima na memória, ou seja, se ele precisar de mais espaço, ele vai encerrar (3) PROCESSOS EM CACHE, e por conseguinte os (2) SERVIÇOS e (3) PROCESSOS ASSOCIADOS À UM SERVIÇO para abrir espaço para sí próprio.

(Screenshot 1 )

No Screenshot 1 (acima), nota-se que o (1) SISTEMA está ocupando 500mb da RAM, dos 1.800mb disponíveis.

(2) SERVIÇOS / (3) PROCESSOS ASSOCIADOS

Este é fácil de explicar: enquanto você joga, ou assiste um vídeo no YouTube, você continua recebendo mensagens no WhatsApp ou Telegram, ou até mesmo e-mail, correto? Mas como pode, visto que você está usando um outro aplicativo?

Simples: há apps que emitem um (2) SERVIÇO. Esta condição os faz ficar retido na memória, para que por exemplo o WhatsApp sempre receba mensagens, mesmo que você não esteja com o aplicativo aberto.

O (2) SERVIÇO em sí não gasta bateria, ele é apenas um instrumento usado para invocar um (3) PROCESSO de determinado aplicativo para cumprir determinada tarefa, como por exemplo, enviar/receber mensagens.

Como podem ver, o WhatsApp mantém ativo um (2) SERVIÇO (MessageService) que invoca o (3) PROCESSO WhatsApp, que trabalha em segundo plano para enviar/receber suas mensagens.

Um (2) SERVIÇO pode invocar mais de um (3) PROCESSO, dependendo de sua necessidade.​

Logo abaixo de “Uso de RAM por apps”, estão listados os (2) SERVIÇOS que estão sendo executados no momento. Um (2) SERVIÇO pode ficar rodando de forma permanente, como o WhatsApp, ou surge conforme você usa o aplicativo, como por exemplo o Spotify. Após parar de usar o app, o (2) SERVIÇO é encerrado, junto do (3) PROCESSO associado.

A soma do espaço ocupado pelos (2) PROCESSOS ASSOCIADOS (visto que o (1) SERVIÇO em sí não faz nada por sí só) é mostrada logo abaixo de (1) SISTEMA, e é indicada pela porção verde da barrinha. No caso do screenshot 1, os (2) SERVIÇOS + (3) PROCESSOS ASSOCIADOS estão ocupando 458mb.

Os (2) SERVIÇOS + (3) PROCESSOS ASSOCIADOS tem prioridade na memória RAM sobre os (4) PROCESSOS em cache. Ou seja, antes de um (1) SERVIÇO e seu processo associado ser encerrado, todos os (4) PROCESSOS em cache serão encerrados antes para abrir espaço. Os (2) SERVIÇOS + (3) PROCESSOS ASSOCIADOS só são encerrados caso o (1) SISTEMA precise de mais espaço.


(4) PROCESSOS em cache

O processo de um app é a parte com a qual você interage diretamente, de grosso modo. Por exemplo, enquanto você troca mensagens no WhatApp, você está executando o processo do Whatsapp. Navegando no Chrome? Então está executando o processo do app Chrome.

Conforme explicado no início do post, o Android é feito de forma que fiquem em cache (ou seja, congelados na memória RAM) o máximo de processos possível, para agilizar a alterância entre apps e otimizar o uso de energia.

PS: O Android nunca ocupa totalmente a memória com (4) PROCESSOS em cache. Ele sempre deixa pelo menos 150-200mb para caso algum app cresça rapidamente, e precise de mais espaço de forma instantânea.

( screenshot 2 )

No screenshot 2, nota-se que os (4) PROCESSOS em cache somam 691mb de espaço usado na memória RAM. Todos os apps litados abaixo estão congelados e serão retomados imediatamente ao abrí-los. Este é um cenário ideal, e quanto maior for o cache, melhor.

O cache tem prioridade mínima, ou seja, eles serão encerrados caso o (1) SISTEMA ou (2) SERVIÇOS + (3) PROCESSOS ASSOCIADOS precisem de mais espaço. E é óbvio que os apps em cache vão variar conforme o tempo, normalmente os últimos apps usados ficam no cache, até que sejam abertos novos apps.

II – RAM E O DESEMPENHO

A memória RAM e seu gerenciamento são os quesitos mais importantes no desempenho e usabilidade do seu aparelho. Via de regra, quanto mais memória RAM = melhor, pois o sistema conseguirá manter mais aplicativos em (4) cache, e você irá alternar entre todos de forma instantânea e usando pouquíssima energia.

Sendo assim, a única forma de melhorar a performance de um aparelho no que diz respeito à multi-tarefa e responsividade, é dimiuir o número de (2) SERVIÇOS rodando. Como dito acima, nem todos os apps geram serviço, apenas aqueles que precisam ficar o tempo todo buscando conteúdo, como mensageiros, apps de e-mail, redes sociais, etc.

Infelizmente, os aparelhos de fabricantes como Samsung, LG, Asus tem uma quantidade enorme de serviços rodando, de fábrica. Enquanto um Nexus 5 vem com 4 serviços rodando (Configurações, com.qualcomm.qcrilmsgtunnel, Serviços do Google, Play Services, pois o restante são apps instalados a parte).

Logicamente, percebemos que quando falam que Android puro é mais rápido, não é por acaso.

Quando o assunto é memória, não se pode deixar de fazer uma menção ao LMK (Low Memory Killer). Resumindo, é um parâmetro do sistema aonde o desenvolvedor determina as situações aonde o sistema deve fechar processos em cache para dar lugar à um outro. O LMK pode ser agressivo, ou permissivo, dependendo da vontade do desenvovledor da ROM.

Isto explica o por que do gerenciamento de memória dos Galaxy S6, que se mostraram muito aquém nos testes, ou seja, não estavam segurando apps no cache como era esperado, para aparelhos com 3, 4GB de RAM. A Samsung alterou os parâmetros padrões do Google, e com isso, o sistema teve uma perda considerável de desempenho.

Exemplo:

Neste teste, o Galaxy Note 5 mostra que seus 4GB de RAM não saem vantajosos frente aos 3GB do Nexus 6P, que consegue manter tantos apps quanto ele em cache.

O ZenFone 2 com seus 4GB de RAM mostra que consegue fazer pleno uso de sua memória RAM, mantendo em cache vários jogos simultaneamente.

Para saber mais sobre o LMK, este artigo do XDA explica muito bem: http://www.xda-developers.com/fix-for-galaxy-s6-memory-issues/

III – OBSERVAÇÃO

Isso serve também pra mostrar que os apps “abertos” naquela tela de multi-tarefa (chamado no Android de “Apps recentes”) não necessariamente estão abertos. Só estão de fato “abertos” os que aparecerem no screenshot 1 e 2.
E, mesmo que estejam em cache, eles estão CONGELADOS, ou seja, não gastam bateria.

Portanto, PAREM de “fechar” os apps recentes de forma obsessiva, pois o Android vai carrega-los novamente no cache. Você só vai gastar mais bateria fazendo isso, além de diminuir a velocidade do sistema.

V – CONCLUSÃO

Quanto mais apps em cache na memória, melhor. Mesmo que sua memória esteja 90% utilizada.

Quanto mais (2) SERVIÇOS e (3) PROCESSOS ASSOCIADOS estiverem rodando, haverá menos (4) PROCESSOS EM CACHE, e pior será a experiência do usuário na questão da multi-tarefa.

Ficar limpando os apps recentes não traz nenhum benefício, pelo contrário, só vai consumir mais energia e deixar a abertura dos apps mais lenta.​

(Fonte/Crédito: adrenaline.uol.com.br, usuário Kepler)

Seja o primeiro a comentar

Deixe uma resposta