TGViewer
AppFiles - Mobile Development AppFiles - Mobile Development @applib · 2.17K subscribers
Post #4431 313
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: код, инструменты, практики, производительность
More from @applib
  1. Oct 7, 2026Pitch Kit - настройка гитары и распознавание аккордов Современная и удобная в использовани…
  2. Oct 6, 2026Визуализация данных с помощью шестиугольной тепловой карты в Swift Charts При создании гра…
  3. Oct 6, 2026Правда о Coil в Jetpack Compose: измеряем реальный оверхед SubcomposeAsyncImage Взял пять…
  4. Oct 6, 2026Rich Push Notifications в iOS: Notification Service Extension, Notification Content Extens…
  5. Oct 6, 2026SweetPad - xcodebuild для людей и агентов Инструмент командной строки, который собирает, з…
  6. Oct 5, 2026Как бы я спроектировал iOS-приложение с нуля, если бы оно должно было прожить 10 лет Тест,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →