Монтируем swap-файл

Натолкнул меня на эту мысль пост одного из наших участников по поводу использования на ГУ программы ® SWAPit RAM EXPANDER

Я попробовал эту программу (пришлось для этого ее честно купить, т.к. "вылеченная" версия постоянно барахлит) и обнаружил, что она работает.
Но... зачем тратить деньги ради красивого интерфейса, если всё то же самое можно сделать, используя свойства операционной системы.
Будем создавать виртуальную память в дополнение к нашей урезанной оперативной. А именно: swap-файл.
К сожалению, оперативной памяти на наших "балалайках" маловато - всего 1 ГБ. Поэтому размер виртуальной памяти тоже не имеет смысла делать слишком большим. Сделаем его такого же размера - то есть 1 ГБ.
А теперь по порядку.
1) Выбираем место для хранения swap-файла. Не буду рассуждать на тему "за и против", а скажу прямо - на FUSE-прошивках размещаем swap-файл в папке /data, на не-FUSE - в папке /mnt/internal_sd. Все дальнейшие инструкции будут соответствовать размещению своп-файла в папке /data. При необходимости скорректируйте путь.
2) Создаем swap-файл. Для этого запускаем "Терминал" (или другое средство для работы с командной строкой), переходим в режим root командой

su

...и переходим в нужную папку:

cd /data/span>

Затем сначала создаем пустой файл заданного размера командой

dd if=/dev/zero of=swpfile bs=2048 count=524288

а затем преобразуем его в swap-формат командой

mkswap swpfile

3) Файл создан. Но чтобы он "заработал", нужно дать поочередно следующие две команды:

swapon /data/swpfile

echo "60" > /proc/sys/vm/swappiness

4) Как проверить, включился ли своп. Для этого даем команду

free

...которая должна вернуть что-то вроде этого:

0 total used free shared buffers
Mem: 885172 862444 22728 0 11076
-/+buffers:   851368 33804    
Swap: 1048572 14984 1033588    

То есть, показать и сам факт наличия работающего свопа, и степень его использования. В данном примере мы видим, что за счет свопа мы "сэкономили" почти 15 МБ оперативной памяти. Чем больше будет запущено "тяжелых" приложений, тем такая "экономия" будет больше.

5) Понятное дело, что после каждой перезагрузки заходить в "Терминал" и вручную включать своп - это большая глупость. Поэтому имеет смысл эти две команды включить (дописать в конец) в какой-нибудь автозагрузочный скрипт. Какой именно - решать вам, ибо у всех стоят разные прошивки. В качестве примера могу предложить скрипт /system/etc/install-recovery.sh, используемый во многих прошивках, или файл /system/bin/preinstall.sh (если у вас прошивка моего выпуска). Если ни одного подходящего файла-скрипта у вас нет, то можете его создать. Его первая строчка должна быть такой:

#!/system/bin/sh

...а остальные строчки - упомянутые выше две команды. Не забывайте о том, что в этом файле перенос строк должен быть "Unix'овым", а сам файл должен иметь возможность исполнения, т.е., атрибуты 755. Если ваша прошивка имеет поддержку "init.d" (в частности, мои прошивки поддерживают), то можете создать скрипт с произвольным именем и положить его в папку /system/etc/init.d, так же присвоив ему соответствующие атрибуты.