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