Synchronized App Transitions est une fonctionnalité d'Android 9 qui améliore l'architecture de transition d'application existante. Lorsqu'un utilisateur ouvre, ferme ou bascule entre des applications, le processus SystemUI ou Launcher (é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 animée qui détermine la composition de l'application à l'écran, et marque la requête, une transaction de surface, pour qu'elle soit synchronisée avec le frame qu'il dessine actuellement.
Cela permet d'ajouter de nouvelles animations de transition d'application qui ne sont pas possibles sur Android 8.x ou version antérieure. Par exemple, l'animation de lancement de l'application peut transformer les icônes de l'écran d'accueil de manière fluide sur la surface de l'application, tandis que l'animation de lancement des notifications peut transformer les notifications en surface de l'application.
Exemples et source
Pour en savoir plus sur cette fonctionnalité, consultez les références suivantes.
ActivityOptions.makeRemoteAnimation
RemoteAnimationAdapter
RemoteAnimationRunner
Activity.registerRemoteAnimations
Pour 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 le lanceur/l'UI système si nécessaire, 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 la section Tester les performances de l'UI.