Синхронизированные переходы приложений — это функция Android 9, которая улучшает существующую архитектуру переходов приложений. Когда пользователь открывает, закрывает или переключается между приложениями, процесс SystemUI или Launcher (главный экран) отправляет запрос на покадровое управление анимацией с гарантированной синхронизацией между анимацией видов и анимацией окон. Когда SystemUI или Launcher отрисовывает новый кадр в рамках анимации, он запрашивает другое преобразование на поверхности анимируемого приложения, которое определяет компоновку приложения на экране, и помечает запрос (транзакцию поверхности) для синхронизации с текущим отрисовываемым кадром.
Это позволяет использовать новые анимации перехода между приложениями, недоступные в Android 8.x и более ранних версиях. Например, анимация запуска приложения может плавно преобразовать значки рабочего стола в поверхность приложения, а анимация запуска уведомлений — преобразовать уведомления в поверхность приложения.
Примеры и источники
Информацию по этой функции смотрите в следующих ссылках.
-
ActivityOptions.makeRemoteAnimation
-
RemoteAnimationAdapter
-
RemoteAnimationRunner
-
Activity.registerRemoteAnimations
Для эталонной реализации анимации запуска уведомления см. ActivityLaunchAnimator.kt
.
Выполнение
При необходимости вы можете реализовать эту функцию в Launcher/System UI или использовать реализацию AOSP в SystemUI/Launcher3.
Проверка
Для проверки производительности анимации измерьте производительность управляющего приложения, т. е. SystemUI или Launcher, во время анимации, как описано в разделе Тестирование производительности UI .