quinta-feira, 28 de março de 2013

Gerenciamento de memória no Android


    Gerenciamento de memória no Android



Todas as pessoas que possuem um Smartphone com o sistema operacional Android, certamente já usaram ou pelo menos já ouviram falar dos Task Killers, que são programas para gerenciar os processos (programas) que estão em execução no telefone, e fechá-los de tempos em tempos quando você para de usar ou deixa o telefone em stand-by.
Se existem aplicações como esta, para ficar fechando os programas de tempo em tempo, é fácil deduzir que o Android os mantém abertos, diferentemente do que acontece em outros sistemas operacionais, sejam mobile ou baseados na arquitetura x86.
Realmente, quando você clica no botão home, ou em algum momento sai de uma aplicação e vai para a outra, aquele programa que estava em uso é mantido na memória do aparelho e lá fica por tempo indeterminado, sendo fechado a critério do Android.
Por esse motivo, surgiram diversos Task Killers que trabalham em background, verificando quais aplicativos estão ociosos, fazendo com que sejam devidamente eliminados.
Há uma discussão muito grande sobre o uso de Task Killers, sendo que muitos defendem e outros não, mas o que se sabe, é que o Android tem uma forma bem interessante de trabalhar com processos, e é de certa forma parecida com o gerenciamento de memória do Linux, que abordei neste artigo no site principal: "Gerenciamento de Memória no Linux". Esta abordagem na gestão de memória do Android foi explicada também no Blog oficial do Android, pela Engenheira de Software Dianne Hackborn. Este artigo pode ser lido aqui.
Imagine a seguinte situação: Em um telefone com a memória praticamente cheia, com vários processos residentes porque não foram fechados pelo Android, você decide abrir uma nova aplicação. O que acontece ?! Em outros sistemas operacionais, você recebe uma mensagem de memória insuficiente e a aplicação não abre. Já no Android a coisa é diferente. O Sistema libera automaticamente a memória necessária e sua aplicação vai abrir normalmente. Interessante, não ?!
Sabemos que aplicações ociosas na memória não vão consumir mais bateria ou fazer com que seu sistema fique mais lento, afinal, desde que você tenha memória suficiente, as aplicações vão ter o desempenho normal, e já vimos que o Android libera estes recursos quando necessário, então, o que faz nosso querido Smartphone ficar lento e gastar mais bateria ?!
A resposta é simples: Processamento.
Como já vimos, o problema do desempenho não está na memória, e sim no consumo de processador, ou seja, se você está usando um aplicativo, este faz uso do processador do smartphone, só que, os programas ociosos, geralmente não podem manter-se utilizando este recurso. Quando isso acontece, significa que este programa tem algum problema, sendo necessário realmente fechá-lo.
É possível visualizar a lista de processos no Android > 2.1, e também fechá-los quando estão consumindo muito CPU. Outro programa interessante para verificar os processos é o Watchdog. (Este também é um Task Killer, mas com abordagem voltada para consumo de CPU, e não memória).
O problema em se usar task killers, é que eles ficam residentes na memória consumindo CPU, justamente para identificar programas abertos. Muitas vezes o task killer fecha um determinado programa que era necessário pelo Android, e este o abre novamente. Quando esta situação ocorre, há um considerável consumo de CPU, e no final das contas, você acaba consumindo mais processamento utilizando-os.

Fonte: http://www.thiagoelias.org/blog/tag/gerenciamento-de-memoria-no-android/

Nenhum comentário:

Postar um comentário