Le transizioni app sincronizzate sono una funzionalità di Android 9 che migliora l'architettura di transizione app esistente. Quando un utente apre, chiude o passa da un'app all'altra, il processo SystemUI o Avvio (schermata Home) invia una richiesta per controllare l'animazione fotogramma per fotogramma con sincronizzazione garantita tra le animazioni delle visualizzazioni e quelle delle finestre. Quando SystemUI o Avvio disegna un nuovo frame nell'ambito di un'animazione, richiede una trasformazione diversa sulla superficie dell'app in animazione che determina la composizione dell'app sullo schermo e contrassegna la richiesta, una transazione della superficie, da sincronizzare con il frame attualmente in fase di disegno.
In questo modo è possibile creare nuove animazioni di transizione delle app che non sono possibili su Android 8.x e versioni precedenti. Ad esempio, l'animazione di avvio dell'app può trasformare le icone della schermata Home nell'area dell'app e l'animazione di avvio della notifica può trasformare le notifiche nell'area dell'app.
Esempi e origine
Per questa funzionalità, consulta i seguenti riferimenti.
ActivityOptions.makeRemoteAnimation
RemoteAnimationAdapter
RemoteAnimationRunner
Activity.registerRemoteAnimations
Per un'implementazione di riferimento per l'animazione di lancio della notifica, consulta
ActivityLaunchAnimator.kt
.
Implementazione
Puoi implementare questa funzionalità in Avvio app/interfaccia utente di sistema in base alle tue esigenze oppure puoi utilizzare l'implementazione AOSP in SystemUI/Launcher3.
Convalida
Per convalidare il rendimento delle animazioni, misura il rendimento dell'app di controllo, ovvero SystemUI o Avvio, durante le animazioni come descritto in Testare il rendimento dell'UI.