Инженеры Google опубликовали техническое описание одного из ключевых, но незаметных на первый взгляд изменений в грядущей Android 17. Похоже, в компании решили всерьез взяться за проблему, которая бесит даже владельцев флагманов — микрофризы интерфейса, когда просто листаешь ленту или открываешь папку, а картинка едва заметно дергается.
В свежей версии ОС переписали один из базовых компонентов под названием MessageQueue. Если совсем просто, это диспетчер, который общается с процессами, кому и когда обращаться к памяти для отрисовки картинки на экране. Раньше этот диспетчер работал по принципу монопольного доступа: однопоточная блокировка всего массива данных. Если фоновый процесс (например, проверка использования приложений) захватывал этот «замок», а потом операционная система переключала внимание на другие задачи, поток интерфейса вставал в ожидание. Результат — пропущенные кадры и ощущение, что система «тупит».
В Android 17 от этого подхода отказались и вместо единой блокировки внедрили механизм DeliQueue. Название выбрано не случайно — инженеры проводят аналогию с электронной очередью. В классической очереди (как было раньше) следующий участник не может начать движение, пока предыдущий не завершит операцию у окошка. В новой схеме каждый новый процесс получает «талон» и уходит заниматься своими делами, не блокируя остальных. Основной поток (поток интерфейса) потом сам решает, в каком порядке обрабатывать поступившие задачи, но уже без состояния и ожидания.
Чтобы дополнительно ускорить процесс, инженеры отказались от условных переходов в коде сравнения сообщений. В классическом коде процессор угадывает, пойти по ветке «да» или «нет»; если прогноз неверен, тратится время на очистку конвейера. В новой реализации это
