Índice:
Ei pessoal! Jerry de volta com outro truque que você pode fazer no seu telefone Android. Este ajuda a manter as coisas funcionando sem problemas e nos dá algum controle sobre o assassino de tarefas interno do Android. Como a maioria das coisas que afetam a operação de baixo nível do Android, esta requer raiz, mas é uma boa leitura, mesmo para as pessoas que não sentem necessidade de fazer root (e quebram sua garantia!) Porque você pode ter um entendimento melhor do que está acontecendo nos bastidores. Abra algumas guias extras no seu navegador, prepare seu telefone (e talvez até seu cabo USB) e siga as instruções.
Ah, e um aviso: são coisas de baixo nível. Não é difícil de fazer, mas o que faz é um pouco avançado. Não diga que não avisamos.
Você ouve repetidas vezes que o Android roda no kernel do Linux. O maior benefício disso é que o Linux é estável, de código aberto e extremamente hackável. Isso significa que muitos desses benefícios também são transferidos para o Android. Ser capaz de ajustar o assassino com pouca memória é um deles. Isso é algo com o qual tenho experiência pessoal, tanto da maneira mais difícil quanto da maneira mais fácil. Embora isso beneficie todos os gostos do Android, os telefones com o HTC Sense mostrarão o maior aprimoramento.
Como o assassino com pouca memória funciona
Quando o telefone é inicializado, um arquivo dentro da imagem de inicialização (init.rc) define os parâmetros do sistema. Coisas como o caminho para estruturar arquivos, configurar suas redes e definir os limites nos quais os programas são eliminados para liberar RAM são executados por esse arquivo. Agora, um super geek do Android pode cavar dentro do arquivo init.rc e personalizar completamente o killer com pouca memória, mas você não precisa fazer isso para obter bons resultados. O init.rc configura seis "níveis" diferentes de aplicativos abertos. Vamos dar uma olhada neles:
- FOREGROUND_APP: Este é o aplicativo atualmente na tela e em execução
- VISIBLE_APP: Este é um aplicativo aberto e executando em segundo plano porque ainda está fazendo algo
- SECONDARY_SERVER: este é um processo (um serviço que um aplicativo precisa) que está ativo e pronto, caso seja necessário fazer algo
- HIDDEN_APP: Este é novamente um processo que fica ocioso (mas ainda está vivo), caso seja necessário por um aplicativo que esteja vivo e em execução
Na maioria das vezes, nunca queremos ajustar quando esses aplicativos e processos são eliminados. São as coisas que os programas que usamos precisam para funcionar corretamente. Para usuários mais ousados e avançados, é possível alterar as configurações das configurações de HIDDEN_APP, embora com muitas tentativas e erros. Existem mais duas configurações, e estas são as mais interessantes para nós hoje:
- CONTENT_PROVIDER: são aplicativos que fornecem dados (conteúdo) ao sistema. HTC Facebook Sync? Esse é um CONTENT_PROVIDER. Então, são coisas como o Android Market, ou Fring. Se estiverem ativos, eles podem atualizar e fornecer o conteúdo que devem no intervalo definido. Se você matá-los, eles não podem, é claro.
- EMPTY_APP: Eu chamo esses "fantasmas". Eles são aplicativos que você abriu, mas são feitos com eles. O Android usa um estilo único de manipulação do gerenciamento de memória. Quando uma atividade é encerrada, em vez de eliminá-la, o Android mantém o aplicativo na memória, para abri-los novamente é um processo mais rápido. Esses aplicativos "fantasmas" não usam bateria ou tempo de CPU, apenas preenchem a RAM que estaria vazia. Quando essa memória é necessária para um aplicativo ou processo diferente, a RAM é liberada e disponibilizada para o novo aplicativo. Para satisfazer as pessoas mais geeks (como eu), o Android faz isso mantendo uma lista de aplicativos usados recentemente, com os aplicativos mais antigos da lista com a menor prioridade - eles são mortos primeiro se a RAM for necessária em outro lugar. Esta é uma maneira perfeita de lidar com processos 'fantasmas', portanto não há necessidade de tocar nessa parte;)
O nível EMTY_APP é onde podemos jogar Robin Hood e obter algum desempenho da interface do usuário. Nós roubamos os ricos (RAM usada pelos aplicativos que acabamos de usar) e damos aos pobres (nosso pool de RAM grátis). Dessa forma, decidimos quando o Android fecha aplicativos antigos e não utilizados, em vez de deixar o sistema decidir por nós. Coisas como esta são as razões pelas quais torcemos.
Como manipulamos tudo isso?
Lembra-se de que eu disse que não era necessário cavar arquivos de inicialização enigmáticos para alterar essas configurações? Bem, você vai amar isso. Você pode mudar as coisas com um aplicativo do Market! Existem vários que funcionam, mas eu prefiro o MinFreeManager porque é leve e não compartilha nenhuma informação pessoal, como alguns outros. Vamos dar uma olhada em como configurar esse bad boy.
Etapa 1 - exclua qualquer gerenciador de tarefas que você esteja executando. Eles só vão interferir no que estamos fazendo hoje. Caso contrário, todos nós vamos apontar e rir enquanto nossos telefones funcionam sem problemas:)
Etapa 2 - baixar e instalar o MinFreeManager
Etapa três - abra o aplicativo. Pressione o botão Voltar para se livrar do teclado (falaremos sobre editar os números que você vê daqui a pouco) e clique em menu> predefinições.
Escolha "Agressivo". Não faz sentido instalar e executar um aplicativo como esse sem executá-lo em seu potencial máximo. Se depois de um dia ou dois você achar que está tendo problemas com a execução nessas configurações, tente "moderadamente" ou ajuste os números manualmente. Em seguida, clique em "Aplicar" para definir os parâmetros. Se você deseja que as configurações sejam aplicadas a cada reinicialização, o menu >> Aplicar na inicialização cuidará de você. Para quase todo mundo, é isso. Desfrute de ter entre 75 e 100 MB de RAM grátis o tempo todo.
Se você deseja ajustar os números, cada entrada é o nível de RAM livre que aplicativos e processos em cada categoria em particular começarão a ser eliminados. Abaixo estão as configurações padrão para o Android.
Observe que nada é apagado da RAM até que a quantidade de RAM livre atinja 32 MB. (Se você me ouviu enquanto eu estava na minha caixa de sabão, você sabe que, na minha opinião, o SenseUI simplesmente não funciona bem com menos de ~ 40 MB de RAM livre). Com 32 MB ou menos, o sistema irá comece a matar os 'fantasmas'. Podemos avançar na lista e ver se, se chegarmos a 14 MB ou menos de graça, o sistema pode (e irá) matar o aplicativo que você está executando em primeiro plano.
Se você decidir jogar com esses números, tenha muito cuidado com os quatro primeiros. O maneio com eles pode tornar as coisas muito instáveis e muito feias. O provedor de conteúdo (leia novamente acima) é menos sensível, mas defini-lo muito alto tornará coisas como a sincronização do Facebook ainda mais complicadas do que já é. A seção Aplicativo vazio é gratuita para todos. Ter esse valor definido como algo menor que 96 MB (IMO) anula o objetivo de usar um aplicativo como este. Ajustar as coisas, dar algumas horas para resolver e decidir se precisa de mais ajustes.
LowMemKiller Geek Edition
Como o Android é executado em um kernel Linux, isso significa que os parâmetros são armazenados como arquivos de texto sem formatação. eles podem ser editados rapidamente - é exatamente o que aplicativos como o MinFreeManager estão fazendo. Se você preferir não usar um aplicativo de terceiros para fazer essas alterações, poderá alterar facilmente os valores na linha de comando. Ligue o seu cliente de terminal favorito e siga-o.
Para verificar os parâmetros atuais da configuração MinFree:
su
cat / sys / module / lowmemorykiller / parameters / minfree
Isso retornará uma sequência de números, algo como isto:
1536, 2048, 4096, 5120, 5632, 6144
Esses números são páginas. Para o Android, uma página é igual a 4 kb. Portanto, no exemplo acima, as configurações EMPTY_APP (última na lista - 6144) são 24 MB. 6144 páginas = 24576 kb = 24 MB. A fórmula seria:
Portanto, uma configuração de 25000 seria igual a ~ 97 MB (você disse que era a Geek Edition!).
Para um bom ponto de partida e um exemplo de como alterar os números, tente o seguinte:
su
eco "1536, 2048, 4096, 5120, 15360, 23040"> / sys / module / lowmemorykiller / parameters / minfree
Isso configura tudo para que, sempre que a RAM livre caia abaixo de 90 MB, os 'fantasmas' sejam eliminados em ordem e, se a RAM cair abaixo de 60 MB, CONTENT_PROVIDERS seja eliminado. Tudo o resto é deixado sem ser molestado pelo kernel.
Pense nisso por um segundo - não precisa mais se preocupar em manter coisas como o clock e o gmail vivos e na lista de desbloqueio dos executores de tarefas, porque especificamos quais tipos de aplicativos e processos podem ser eliminados para liberar memória.
Depois de ter um conjunto de números que funcionam bem para você, é fácil otimizar o processo de aplicação quando você reinicia. Sim, essas alterações desaparecem a cada reinicialização à medida que são armazenadas em um disco virtual (o Ramdisk) que apaga quando o telefone é desligado. Você precisará de um editor de texto que possa salvar arquivos em um formato legível pelo Unix. Nada feito pela Microsoft vai funcionar. Eu sempre recomendo o Notepad ++ para usuários do Windows com a necessidade de editar arquivos Unix. Agarre-o e instale-o.
Abra um arquivo em branco e cole o seguinte:
eco "1536, 2048, 4096, 5120, 15360, 23040"> / sys / module / lowmemorykiller / parameters / minfree
é claro, altere as configurações padrão para as configurações desejadas. Salve o arquivo como freeram sem extensão.
Conecte o telefone ao computador e empurre o arquivo freeram para / system / bin. Em seguida, no prompt da linha de comando:
su
cd / sistema / bin
chmod 744 freeram
Saída
Saída
Agora reinicie o telefone e, uma vez carregado, abra o terminal e digite:
su
freeram
Saída
Para definir SEUS parâmetros em vez dos parâmetros padrão do Android. Você precisará fazer isso a cada reinicialização ou editá-lo no arquivo init.rc, que é muito nerd para cobrir aqui. Temos um fórum para isso.:)
Se você gosta do jeito mais fácil ou prefere o mais hardcore, experimente. É fácil reverter e é 100% gratuito.
Até a próxima,
Jerry