Neste tempo, seus dispositivos portáteis estão atualizando e ficando cada vez melhores. Nós temos recebido constantemente atualizações no departamento de memória (mais do que realmente precisamos). Se você ler nosso recurso anterior, ‘Quanta RAM é muita RAM?’, você realmente saberá quanta RAM é realmente necessária para que seu smartphone funcione perfeitamente e além disso, é um pouco exagerado.
Você pode precisar de uma atualização se na idade atual seu telefone estiver atrasado ou lento. Mas você já se perguntou por que, e o mais importante, como isso está acontecendo? Neste recurso, nós vamos DeCode como isso acontece. E muito mais. Leia em!
Por que nosso mundo gira em torno da RAM?
No coração do sistema operacional Android está um kernel Linux. Sempre que você inicia um novo aplicativo, você cria um processo dentro do Linux. Um processo é agora responsável por todos os diferentes recursos que o kernel pode alocar para as diferentes aplicações. O tempo da CPU, processos de Entrada e Saída e RAM são todos considerados como um recurso.
CPU Tempo e E/S são na sua maioria considerados como recursos infinitos. Se você tiver uma CPU ocupada e quiser executar uma nova tarefa, sua tarefa também receberá uma fatia desse tempo da CPU. É certo que a tarefa será feita, mas pode ser atrasada devido à sobrecarga no tempo da CPU. Similarmente, sua tarefa pode acontecer um pouco mais rápido se a CPU estiver menos ocupada.
No caso de E/S, baixar um arquivo grande, escrever algo no armazenamento interno ou fazer qualquer outro processo ao mesmo tempo pode atrasar a sua conclusão, mas isso vai acontecer eventualmente.
No entanto, a RAM está presente em um dispositivo em uma quantidade fixa. Ela é finita. Se você ficar sem RAM não há mágica que irá liberar a RAM se você esperar um pouco mais. Portanto, o Android e o Linux precisavam de um sistema para ajudá-los a lidar com essa limitação.
Como funciona a RAM em um smartphone?
Quando você lança um aplicativo em seu dispositivo, um novo processo é lançado que exige o kernel do Linux que ele precisa (digamos) ‘X’ de quantidade de RAM apenas para carregar o aplicativo. Postando isso, a aplicação pode também pedir mais memória para carregar mais alguns arquivos ou para baixar algo da internet e o kernel Linux irá fornecer o necessário. É assim que acontece a delegação básica de RAM.
Seu dispositivo tem um pool de memória disponível, que é diferente da memória livre. A memória disponível é na verdade a memória disponível para iniciar novas aplicações ou processar outras aplicações, sem trocar. Em um sistema operacional multitarefa, memória livre é uma coisa ruim porque a memória está ociosa; pode sempre ajudar em um processo ou no outro.
Por exemplo, memória livre pode ser usada para melhorar a E/S do arquivo, E/S da rede para cache ou pode ser dada a outros programas que podem fazer essa memória extra útil. Ao mesmo tempo, também é marcada como memória disponível. Assim, a qualquer momento, ela pode ser parada como um buffer ou cache e pode ser utilizada por um processo.
Em um dispositivo de 4GB de RAM, parte da memória é utilizada por drivers de hardware, e parte dela é utilizada pelo Android. A restante memória disponível após reiniciar um novo sistema será de cerca de 1,7 GB. Quando um aplicativo é iniciado, o dispositivo irá olhar para a memória disponível fornecer alguns pedaços de memória para usar em processos.
Dividirá a memória em páginas, uma página de aproximadamente 4 KB. Estas páginas podem ser delegadas pelo sistema a diferentes processos, conforme a necessidade. Todos os processos funcionarão bem se houver memória em abundância. Mas quando a memória disponível diminui à medida que o número de aplicações aumenta, começa a causar alguns problemas. Em algum momento, não haverá memória disponível suficiente para iniciar um novo processo.
Neste estágio, Linux e Android têm um problema. Para lidar com isso, eles podem fazer swapping ou matar um aplicativo para liberar memória. Nós obtemos o conceito de troca a partir de servidores e desktops. Quando você não tem memória suficiente, você pode pegar alguma da memória ativa que está atualmente na RAM e escrevê-la em um disco rígido. Dessa forma, você libera esse bloco/página de memória. Mais tarde, se essa página for novamente necessária, você pode recuperá-la do disco rígido. No entanto, o Android funciona um pouco diferente e não armazena a memória em um disco rígido.
Android usa ZRAM (‘Z’ em termos Unix é um símbolo para RAM comprimido). ZRAM swap pode aumentar a quantidade de memória disponível no sistema ao comprimir páginas de memória e colocá-las na área de swap de memória alocada dinamicamente. Uma vez que algo é escrito nessa memória comprimida, você não pode acessá-la e ela se torna um pouco como um arquivo ZIP. Se você quiser usá-lo, você precisa descomprimi-lo e gravá-lo de volta na memória principal. Este processo está a ser trocado e a voltar a entrar. Este ciclo de troca para sempre é chamado de ‘thrashing’. O Android não tem nenhum problema com thrashing, pois quando está saturado, ou seja, fica sem espaço para swapping, ele apenas começa a matar processos.
Ele irá escolher um aplicativo que você não usa há algum tempo da lista e o mata. Ele libera o espaço que o aplicativo estava usando e agora há espaço disponível para que um novo aplicativo ou um aplicativo existente se expanda. Todos os aplicativos são projetados de forma que quando um aplicativo entra em segundo plano, há sempre uma chance de que ele nunca mais abra. Então, seu estado atual é salvo.
Se você abrir o aplicativo novamente, ele é recarregado. Às vezes, este processo não é perfeito. Por exemplo, se você estava jogando um jogo, ele não começa de onde você parou, mas pode começar do mesmo nível. O quão bem o aplicativo lida com esta situação depende do aplicativo e da pessoa que escreveu o aplicativo. Se você precisar de uma memória maior, vários processos podem ser mortos.
O recarregamento freqüente leva a uma experiência amarga para o usuário. É por isso que ter mais RAM é preferível do ponto de vista de um usuário. Embora todas as nuances da troca e quando ela é trocada sejam um pouco mais complicadas. Mas quando o seu telefone está sobrecarregado, é provável que mate alguns aplicativos para manter seu telefone funcionando e evitar que ele congele. Matar é basicamente um mal necessário, que é adotado pelo sistema Android. Fique atento a mais artigos desse tipo que vêm no seu caminho. Boa leitura!