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