Slideshow

[Hacking][slideshow]

O que é Swap Memory

Usada para aumentar a memória interna e a RAM do dispositivo, a técnica de Swap memory é conhecida por poucos e pode melhorar a usabilidade de muitos usuários de Android.




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'.

Reprodução: Slideplayer


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.
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)

*Caso já queira baixar o arquivo com o Swap pronto, procure no Google.

*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. Como esse post foi criado apenas para explicar o que é a troca da memória

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.

Post original:Android HyperUser

*Cópia permitida apenas citando a fonte

Dúvidas nos comentários

2 comentários:

  1. 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.

    ResponderExcluir
    Respostas
    1. Não, isso não é possível, vou te dar algumas dicas sobre isso que podem facilitar seu trabalho.

      1. 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.

      Excluir

Todos os comentários são monitorados. Comentários ofensivos serão removidos e os respectivos usuários banidos.