Android 17 начнёт жёстко ограничивать память для приложений

Дмитрий Новиков

В Android 17 появятся лимиты памяти для каждого приложения.

Google объявила о новом механизме управления памятью в Android 17. Начиная с этой версии система будет устанавливать для каждого приложения отдельный лимит использования RAM, зависящий от общего объёма оперативной памяти устройства. Если приложение превысит установленную границу, Android завершит его процесс без стандартного crash-отчёта и привычной информации о стеке ошибки.

Изменение должно повысить стабильность системы и снизить влияние плохо оптимизированных приложений на многозадачность. Раньше Android в основном полагался на Low Memory Killer: когда памяти становилось мало, система постепенно закрывала фоновые и кэшированные процессы. Но если приложение с высоким приоритетом начинало раздуваться из-за утечки памяти, система могла долго не трогать его и вместо этого закрывать множество нормально работающих фоновых приложений.

В Android 17 Google хочет остановить такие сценарии раньше. Жёсткие границы памяти должны не позволять одному приложению доводить устройство до массового закрытия фоновых процессов, перегрева, повышенной нагрузки на CPU и медленных холодных запусков уже открывавшихся программ. По сути, система начнёт быстрее наказывать приложения, которые чрезмерно расходуют RAM или страдают от утечек.

Для разработчиков это означает необходимость серьёзнее относиться к оптимизации. Google рекомендует активнее использовать R8 для сжатия и удаления неиспользуемого кода, внимательнее работать с изображениями и Bitmap, применять библиотеки вроде Glide и Coil, а там, где не нужна прозрачность, использовать формат RGB_565, занимающий вдвое меньше памяти, чем ARGB_8888. Компания также советует искать утечки через инструменты вроде LeakCanary и корректно освобождать ссылки на Activity, Fragment, View и broadcast receiver после завершения их жизненного цикла.

Android 17 также расширит инструменты диагностики. Обновлённый ProfilingManager API сможет автоматически создавать heap dump при OOM-ошибках или приближении к системному лимиту памяти, чтобы разработчики быстрее находили проблемные объекты и ресурсы. Механизм лимитов уже тестировался в Android 17 Beta 4, а с выходом стабильной версии должен стать стандартным поведением системы. Для пользователей это может означать более стабильную работу смартфона, а для разработчиков — меньше пространства для плохо оптимизированных приложений.

Фото: © RusPhotoBank
Эта страница может использовать файлы cookie в аналитических целях.