Реализация синхронизированных переходов приложений

Синхронизированные переходы приложений — это функция Android 9, которая расширяет существующую архитектуру переходов приложений. Когда пользователь открывает, закрывает или переключается между приложениями, процесс SystemUI или средства запуска (начальный экран) отправляет запрос на покадровое управление анимацией с гарантированной синхронизацией между анимацией просмотра и анимацией окон. Когда SystemUI или Launcher рисует новый кадр как часть анимации, он запрашивает другое преобразование на поверхности анимирующего приложения, которое определяет, как приложение компонуется на экране, и отмечает запрос, поверхностную транзакцию, для синхронизации с кадр, который он рисует в данный момент.

Это позволяет использовать новую анимацию перехода приложений, которая невозможна в Android 8.x и более ранних версиях. Например, анимация запуска приложения может плавно преобразовывать значки домашнего экрана в поверхность приложения, а анимация запуска уведомлений может преобразовывать уведомления в поверхность приложения.

Примеры и источник

См. следующие ссылки для этой функции.

Образец реализации анимации запуска уведомлений см. в ActivityLaunchAnimator.kt .

Выполнение

При необходимости вы можете реализовать эту функцию в Launcher/System UI или использовать реализацию AOSP в SystemUI/Launcher3.

Валидация

Чтобы проверить производительность анимации, измерьте производительность управляющего приложения, например SystemUI или средства запуска, во время анимации, как описано в разделе «Тестирование производительности пользовательского интерфейса» .