В бета-версии Android 17 Google тестирует новый механизм DeliQueue, который должен сделать интерфейс системы и приложений заметно более плавным. Разработчики переработали один из ключевых системных компонентов — подсистему MessageQueue, отвечающую за обработку очереди сообщений при отрисовке пользовательского интерфейса.
Сейчас многие пользователи Android-смартфонов сталкиваются с тем, что прокрутка и анимации периодически «подвисают»: система вынуждена пропускать кадры, чтобы успеть выполнить приоритетные задачи. Причина в том, что при высокой нагрузке разные потоки кода выстраиваются в очередь за доступом к MessageQueue. Как только один поток блокирует очередь, остальные простаивают, а часть операций не укладывается во временные рамки кадра, что приводит к dropped frames.
В Android 17 Google намерена отказаться от такой глобальной блокировки и перейти к DeliQueue — структуре данных без общих блокировок. Вместо принципа «один поток обслуживается за раз» система точечно ограничивает доступ только к конкретным участкам памяти, позволяя потокам параллельно разбирать задачи. В компании сравнивают это с работой гастронома: полученный номер в очереди фиксирует время прибытия, но фактический порядок обслуживания определяется текущей загрузкой и доступностью ресурсов.
По данным внутреннего тестирования Google, внедрение DeliQueue уже позволило снизить частоту потери кадров примерно на 4% в сторонних приложениях и на 7,7% в системном интерфейсе и лаунчере. Ожидается также небольшое ускорение запуска программ. Нововведение пока проходит внутренние проверки безопасности, разработчики уже сообщили как минимум о двух исправленных уязвимостях.
Разработчики сторонних приложений могут протестировать свои программы на совместимость с новой подсистемой, установив бета-версию Android 17 на поддерживаемые смартфоны Pixel через программу предварительного доступа. Окончательный релиз операционной системы с DeliQueue ожидается позже, после завершения цикла тестирования и оптимизации.