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

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

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

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

См. следующие ссылки для этой функции.

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

Реализация

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

Проверка

Чтобы проверить производительность анимации, измерьте производительность управляющего приложения, т. е. SystemUI или Launcher, во время анимации, как описано в разделе Проверка производительности пользовательского интерфейса .