Реализация синхронизированных переходов приложений

Синхронизированные переходы приложений — это функция Android 9, которая улучшает существующую архитектуру переходов приложений. Когда пользователь открывает, закрывает или переключается между приложениями, процесс SystemUI или Launcher (главный экран) отправляет запрос на покадровое управление анимацией с гарантированной синхронизацией между анимацией видов и анимацией окон. Когда SystemUI или Launcher отрисовывает новый кадр в рамках анимации, он запрашивает другое преобразование на поверхности анимируемого приложения, которое определяет компоновку приложения на экране, и помечает запрос (транзакцию поверхности) для синхронизации с текущим отрисовываемым кадром.

Это позволяет использовать новые анимации перехода между приложениями, недоступные в Android 8.x и более ранних версиях. Например, анимация запуска приложения может плавно преобразовать значки рабочего стола в поверхность приложения, а анимация запуска уведомлений — преобразовать уведомления в поверхность приложения.

Примеры и источники

Информацию по этой функции смотрите в следующих ссылках.

Для эталонной реализации анимации запуска уведомления см. ActivityLaunchAnimator.kt .

Выполнение

При необходимости вы можете реализовать эту функцию в Launcher/System UI или использовать реализацию AOSP в SystemUI/Launcher3.

Проверка

Для проверки производительности анимации измерьте производительность управляющего приложения, т. е. SystemUI или Launcher, во время анимации, как описано в разделе Тестирование производительности UI .