AVD-SLIM - оптимизатор оперативной памяти и процессора для эмулятора Android
AVD-SLIM — это легковесная CLI-утилита, не имеющая внешних зависимостей, она снижает потребление оперативной памяти хост-системы виртуальным устройством Android (AVD) с ~8 ГБ до ~1,5 ГБ и практически сводит к нулю нагрузку на процессор в режиме простоя на системах с Apple Silicon и Linux.
При разработке Android-приложений на macOS или Linux разработчики нередко замечают, что процесс qemu-system-aarch64 потребляет от 5 до 8+ ГБ оперативной памяти в Activity Monitor.
Почему эмулятор потребляет 8 ГБ?
• Ловушка Lavapipe: Android Studio часто по умолчанию использует hw.gpu.mode = auto, из-за чего происходит откат на программную растеризацию Mesa на CPU (lavapipe). В результате около 4 ГБ буферов программного рендеринга выделяются непосредственно в оперативной памяти хоста поверх памяти гостевой ОС.
• Образы с размером страницы 16 КБ: на современных ARM64-образах (google_apis_ps16k) QEMU жёстко задаёт минимальный объём памяти (minRam = 4096MB), молча игнорируя более низкие настройки ОЗУ.
• Лишние системные службы Android: более 35 необязательных фоновых процессов — Google Assistant, System Intelligence, Maps, Photos, YouTube, телеметрия и другие — будят ядра CPU и засоряют память.
• Устаревшие снимки состояния: Android Studio повторно загружает закэшированные снимки (hardware-qemu.ini), в которых сохраняются тяжёлые состояния на 4 ГБ даже после перезапуска.
Решение
Так же как simslim отключает лишнюю активность iOS Simulator через launchctl, avdslim, AVD-SLIM:
• Передаёт QEMU параметр -lowram: снимает внутренний нижний предел в 4 ГБ и запускает ядро Android в режиме малого объёма памяти (hw.ramSize = 1024M или 1536M).
• Принудительно включает аппаратное ускорение GPU на разных платформах: использует -gpu host, чтобы рендеринг выполнялся нативно через драйверы графики хоста, полностью обходя программные растеризаторы на CPU.
• Отключает более 24 лишних фоновых служб: выключает необязательные сервисы Google через pm disable-user --user 0.
• Убирает задержки анимаций: устанавливает масштаб анимации окон, переходов и аниматоров в 0x.
• Снижает фоновую активность: ограничивает background_process_limit = 4, сохраняя работу OAuth и биометрии, а также отключает автосинхронизацию.
• Очищает кэши: сбрасывает страничные кэши Linux и выполняет уплотнение памяти.
qemu-system-aarch64 ██████████████████████████ 8,518 MB
qemu-system-aarch64 █████ 1,560 MB
Reclaimed: ~6.0 GB host RAM (82% reduction)
AVD-SLIM на GitHub: https://github.com/kdbhalala/avdslim
Платформа: Android
⭐️: 31
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
AVD-SLIM — это легковесная CLI-утилита, не имеющая внешних зависимостей, она снижает потребление оперативной памяти хост-системы виртуальным устройством Android (AVD) с ~8 ГБ до ~1,5 ГБ и практически сводит к нулю нагрузку на процессор в режиме простоя на системах с Apple Silicon и Linux.
При разработке Android-приложений на macOS или Linux разработчики нередко замечают, что процесс qemu-system-aarch64 потребляет от 5 до 8+ ГБ оперативной памяти в Activity Monitor.
Почему эмулятор потребляет 8 ГБ?
• Ловушка Lavapipe: Android Studio часто по умолчанию использует hw.gpu.mode = auto, из-за чего происходит откат на программную растеризацию Mesa на CPU (lavapipe). В результате около 4 ГБ буферов программного рендеринга выделяются непосредственно в оперативной памяти хоста поверх памяти гостевой ОС.
• Образы с размером страницы 16 КБ: на современных ARM64-образах (google_apis_ps16k) QEMU жёстко задаёт минимальный объём памяти (minRam = 4096MB), молча игнорируя более низкие настройки ОЗУ.
• Лишние системные службы Android: более 35 необязательных фоновых процессов — Google Assistant, System Intelligence, Maps, Photos, YouTube, телеметрия и другие — будят ядра CPU и засоряют память.
• Устаревшие снимки состояния: Android Studio повторно загружает закэшированные снимки (hardware-qemu.ini), в которых сохраняются тяжёлые состояния на 4 ГБ даже после перезапуска.
Решение
Так же как simslim отключает лишнюю активность iOS Simulator через launchctl, avdslim, AVD-SLIM:
• Передаёт QEMU параметр -lowram: снимает внутренний нижний предел в 4 ГБ и запускает ядро Android в режиме малого объёма памяти (hw.ramSize = 1024M или 1536M).
• Принудительно включает аппаратное ускорение GPU на разных платформах: использует -gpu host, чтобы рендеринг выполнялся нативно через драйверы графики хоста, полностью обходя программные растеризаторы на CPU.
• Отключает более 24 лишних фоновых служб: выключает необязательные сервисы Google через pm disable-user --user 0.
• Убирает задержки анимаций: устанавливает масштаб анимации окон, переходов и аниматоров в 0x.
• Снижает фоновую активность: ограничивает background_process_limit = 4, сохраняя работу OAuth и биометрии, а также отключает автосинхронизацию.
• Очищает кэши: сбрасывает страничные кэши Linux и выполняет уплотнение памяти.
qemu-system-aarch64 ██████████████████████████ 8,518 MB
qemu-system-aarch64 █████ 1,560 MB
Reclaimed: ~6.0 GB host RAM (82% reduction)
AVD-SLIM на GitHub: https://github.com/kdbhalala/avdslim
Платформа: Android
⭐️: 31
👨🦯➡️ AppFiles: код, инструменты, практики, производительность