Transizioni app sincronizzate è una funzionalità di Android 9 che migliora l'architettura di transizione delle app esistente. Quando un utente apre, chiude o passa da un'app all'altra, il processo SystemUI o Launcher (schermata iniziale) invia una richiesta per controllare l'animazione fotogramma per fotogramma con sincronizzazione garantita tra le animazioni della vista e le animazioni delle finestre. Quando SystemUI o Launcher disegna un nuovo fotogramma come parte di un'animazione, richiede una trasformazione diversa sulla superficie dell'app animata che determina come è composta l'app sullo schermo e contrassegna la richiesta, una transazione di superficie, da sincronizzare con frame che sta attualmente disegnando.
Ciò consente 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 facilmente le icone della schermata Home nella superficie dell'app e l' animazione di avvio delle notifiche può trasformare le notifiche nella superficie dell'app.
Esempi e fonte
Vedere i seguenti riferimenti per questa funzionalità.
-
ActivityOptions.makeRemoteAnimation
-
RemoteAnimationAdapter
-
RemoteAnimationRunner
-
Activity.registerRemoteAnimations
Per un'implementazione di riferimento per l'animazione di avvio della notifica, vedere ActivityLaunchAnimator.kt
.
Implementazione
È possibile implementare questa funzionalità nell'interfaccia utente di avvio/sistema come richiesto oppure utilizzare l'implementazione AOSP in SystemUI/Launcher3.
Validazione
Per convalidare le prestazioni delle animazioni, misurare le prestazioni dell'app di controllo, ovvero SystemUI o Launcher, durante le animazioni come descritto in Test delle prestazioni dell'interfaccia utente .