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

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

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

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

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

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

Выполнение

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

Проверка

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