Implémenter des transitions d'application synchronisées

La fonctionnalité de transitions d'applications synchronisées est une fonctionnalité d'Android 9 qui améliore l'architecture de transition d'applications existante. Lorsqu'un utilisateur ouvre, ferme ou bascule entre des applications, le processus SystemUI ou Lanceur (écran d'accueil) envoie une requête pour contrôler l'animation image par image avec une synchronisation garantie entre les animations de vue et les animations de fenêtre. Lorsque SystemUI ou le lanceur d'applications dessine un nouveau frame dans le cadre d'une animation, il demande une transformation différente sur la surface de l'application en cours d'animation, qui détermine la façon dont l'application est composée sur l'écran, et marque la requête, une transaction de surface, pour qu'elle soit synchronisée avec le frame qu'elle est en train de dessiner.

Cela permet de créer de nouvelles animations de transition d'application qui ne sont pas possibles sur Android 8.x et versions antérieures. Par exemple, l'animation de lancement d'application peut transformer de manière fluide les icônes de l'écran d'accueil en surface d'application, et l'animation de lancement de notification peut transformer les notifications en surface d'application.

Exemples et source

Consultez les références suivantes pour cette fonctionnalité.

Pour obtenir une implémentation de référence de l'animation de lancement de la notification, consultez ActivityLaunchAnimator.kt.

Implémentation

Vous pouvez implémenter cette fonctionnalité sur l'UI du lanceur/système selon vos besoins ou utiliser l'implémentation AOSP dans SystemUI/Launcher3.

Validation

Pour valider les performances des animations, mesurez les performances de l'application de contrôle, c'est-à-dire SystemUI ou Launcher, pendant les animations, comme décrit dans Tester les performances de l'UI.