Синхронизированные переходы приложений — это функция в 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, во время анимации, как описано в разделе Тестирование производительности пользовательского интерфейса .