Ситуация:
есть телефон с 850 мб оперативной памяти, из которых после обновления до Android 4.3 мне доступно ~350 мб.
Когда я открываю, например, 3 страницы хабра в firefox'е, закрываются все прочие приложения, включая аську и плеер, что не слишком приятно.
Я хочу заставить андроид сохранять данные, не помещающиеся в оперативной памяти, в swap-файл на флешке.
Я знаю, что это связано с тормозами и "убийством флэши", как любят писать на форумах, но, на мой взгляд, постоянная потеря данных (именно так я рассматриваю закрытие браузера со вкладками, загруженными до входа в метро, где нет связи) гораздо хуже этого.
Повторю специально для тех, кто сейчас будет меня отговаривать: меня совершенно не устраивает текущая ситуация, я уже потратил кучу времени, я пойду до конца.
Что сделано:
Установлен Cyanogenmod 10.2, сделан полный бэкап. Скачаны исходники, собрано работающее (хе-хе) ядро с поддержкой свопа. Создан файл на 1 гб (чтобы 2 раза не бегать:) на съёмной SD карте. Обнаружен странный баг: mkswap, запущенный из эмулятора терминала, всегда задаёт размер области не более 1020 байт. Через ADB всё работает нормально. Типичная ситуация при активации:
Запускаем наглую рыжую морду:
Запускаем прожорливую игрушку:
Закрываем её и видим, что Firefox был закрыт.
Что я делаю не так?
В каком примерно месте исходников я могу найти механизм, управляющий распределением памяти, если это не ошибка конфигурации?
Есть ли какие-то глобальные ограничения на объём виртуальной памяти, которые я мог пропустить, собирая цианоген?