O que é Swap Memory
Descrição
Como o tema "Swap memory" tem dois significados, vou explicar cada um deles, pois ambos servem para usuários de Android.
MI = Memória interna
ME = Memória Externa
RAM = Memória Ram
*O termo MI/ME para Ram ou ME para MI não são oficiais e/ou amplamente usados. Utilizei deles apenas para facilitar o entendimento.
Swap Memory no Linux (MI/ME para RAM)
O Swap no Linux tem outro significado.
Swap é, em resumo, uma memória RAM virtual. Com o swap, uma pequena porção do disco rígido é reservado e usado como RAM. O computador irá tentar manter o máximo de informações possível na RAM até que a RAM encha. Nesse ponto, o computador irá começar a mover blocos inativos de memória (chamados de páginas) para o disco rígido, liberando memória RAM para processos ativos. Se uma das páginas no disco rígido precisar ser acessada novamente, ela será transferida de volta para a RAM, e uma página inativa diferente na RAM será movida para o disco rígido ( 'swapped = Trocados').
Você também pode encontrar esse feature com os nomes 'zRAM' ou 'compcache'.
Adendos:
1. A troca da memória
externa ou interna para RAM é um processo mais lento que a RAM nativa,
por isso, o uso exacerbado pode ser PIOR para a performance. Se você ainda usa disco rígido ao invés de SSD, essa técnica é completamente inviável. E mesmo em armazenamentos NVMe a troca não é tão rápida quanto RAM nativa.
2. A troca da memória diminui consideravelmente a vida útil do seu dispositivo.
Essa
troca da memória ROM pela RAM também é possível de ser efetuada no
Android, com o app SWAPPER 2, que vou ensinar a usar em um próximo post. Coloquei como "swap no Linux" pois essa técnica é mais usada em distros de Linux para PC
Swap Memory no Android (ME para MI)
No Android, a técnica de Swap Memory se dá a troca da memória interna pela externa
Simplesmente a memória interna será oculta e a memória externa passará a ser lida como memória interna pelo sistema, permitindo que você instale jogos pesados e os execute.
*A remoção do SD card fará sua partição de memória interna reaparecer
O uso dessa forma de swap não é comum em distros de Linux para PC, pois, é mais fácil refazer a partição no HD, caso não esteja satisfeito com a quantidade de memória o sistema tem
Que fique claro que não será TODA a memória interna que será
substituída. A memória interna varia de sistema para sistema (sim, ainda
falando só de Android). Alguns Androids mantém sua memória interna
dentro da partição data, outros mantém dentro de outra partição própria.
O que isso significa? que seus apps não vão para o cartão de memória,
apenas os dados do jogo iriam para a sua memória interna real. Se você
instalasse o GTA San Andreas por exemplo, ele ocuparia a memória do APK
(partição data) e os dados extras do jogo (cartão de memória, sendo
carregado como memória interna). Logo, se você usar muitos apks, sua
memória de usuário (data) vai acabar, até com SD card de 32gb.
*A técnica só vale a pena se a quantidade de memória do cartão de memória
for maior que a memória interna do celular (exemplo: 4gb interna, 16gb
no cartão de memória).
Como fazer Swap
vold.fstab - Explicando a estrutura
Dentro do diretório /system/etc, você vai encontrar o arquivo vold.fstab (4.2 ou inferior)
Exemplo do arquivo fstab do Motorola Razr D1 (XT918):
dev_mount <label> <mount_point> <partition> <sysfs_path>
Arquivo original:
dev_mount sdcard /storage/sdcard0 emmc@fat /devices/platform/goldfish_mmc.0 /devices/platform/mtk-sd.0/mmc_host
Arquivo com a troca da memória:
dev_mount sdcard /mnt/sdcard2 emmc@fat /devices/platform/goldfish_mmc.0 /devices/platform/mtk-sd.0/mmc_host
label: Nome de exibição para o volume.
mount_point: Caminho do Filesystem onde o volume será montado
partition: Número da partição (1 based), ou 'auto' para a primeira partição utilizável
sysfs_path: Um ou mais caminhos sysfs para dispositivos que podem fornecer este ponto de montagem. Separados por espaços, e cada um deve começar com /.
flags: Lista de flags separadas por vírgula, não podem ter '/'. Os valores possíveis são nonremovable (Não removível) e encryptable (encriptável). *opcional
Para efetuar a troca nesse caso, foi necessário apenas trocar o mount_point. Na primeira memória a ser montada (sdcard0 ou memória interna) substituirmos esse valor para o ponto onde o SD card é montado (/mnt/sdcard2)
*Saiba que os Androids trabalham de forma muito distinta, impossibilitando o uso de um vold.fstab de outro dispositivo. E em alguns casos, até evitando a possibilidade de fazer swap, ou até mesmo, sendo completamente diferente da explicação acima.
*Caso já queira baixar o arquivo com o Swap pronto, procure no Google.
Comando de Build.prop
Em algumas roms como Cyanogenmod ou ParanoidAndroid acima do Android 4.2, o swap foi facilitado e pode ser efetuado com um comando de build.prop
persist.sys.vold.switchexternal=1
Adendos
1.
Da versão Jelly Bean 4.2.2 do sistema Android em diante, o arquivo stab passou a
ser parte do kernel. Logo, para fazer o Swap, você precisa editar o
kernel para conseguir fazer o swap.
*Em raros casos, a fabricante (desenvolvedora do kernel) disponibiliza um comando de build.prop para o usuário, caso o mesmo queira fazer o swap de forma fácil. Casos muito raros MESMO.
2.
Se você estiver usando um sistema atualizado com o kernel antigo, ele
ainda funcionará da mesma forma. Ou seja, o fstab ainda estará no
sistema, não no kernel, permitindo a edição com um simples app de
explorador de arquivos com permissão root
3. A versão 6.0 Marshmallow do sistema vem nativamente com o Swap da memória, permitindo que você use seu cartão de memória como memória interna.
Conclusão
Já executei ambos os procedimentos no meu smartphone. Tanto o ME para MI quanto o ME/MI para RAM, recomendo altamente para celulares com baixa memória interna fazerem o ME para MI. Porém, não tive tanto retorno com ME/MI para RAM em um dispositivo Android.
Link2sd faz milagres aqui. Teria como criar com links uma "pré instalação" de aplicativos? Por exemplo tenho um monte de apks no cartão de memória, queria que essas aplicações aparecessem no Launcher e quando eu abrisse uma começasse a instalação da mesma.
ResponderExcluirNão, isso não é possível, vou te dar algumas dicas sobre isso que podem facilitar seu trabalho.
Excluir1. O Google já sincroniza apps que estavam instalados em seu celular, mas ele sincroniza apenas os apps que estão na playstore.
2. Você pode fazer backup por ADB, assim ele guarda os apks e os dados dos apps, assim você pode transferi-os para outros celulares.
3. Você pode fazer um Aroma Pack
https://www.youtube.com/watch?v=N_3Y6y2WjXE
Ele é um 'instalador inteligente'. Você pode colocar o que quiser dentro dele e depois escolhe o que quer instalar.
3.1 Se não quiser aprender sobre AROMA, você pode fazer um zip flasheável com todos os apps e instala-lo pelo recovery.
http://www.androidhyperuser.com/2016/04/como-fazer-um-updater-script.html
Você também pode usar um app como o Helium
https://www.youtube.com/watch?v=M_phIt1l5b4
Salve todos os seus apks no Helium e depois volte o backup.
abs.