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