Transições de aplicativo sincronizadas é um recurso do Android 9 que aprimora a arquitetura de transição de aplicativo existente. Quando um usuário abre, fecha ou alterna entre aplicativos, o processo SystemUI ou Launcher (tela inicial) envia uma solicitação para controlar a animação quadro a quadro com sincronização garantida entre animações de exibição e animações de janela. Quando o SystemUI ou Launcher desenha um novo quadro como parte de uma animação, ele solicita uma transformação diferente na superfície do aplicativo de animação que determina como o aplicativo é composto na tela e marca a solicitação, uma transação de superfície, a ser sincronizada com o quadro que está desenhando no momento.
Isso permite novas animações de transição de aplicativos que não são possíveis no Android 8.xe inferior. Por exemplo, a animação de inicialização do aplicativo pode transformar ícones da tela inicial perfeitamente na superfície do aplicativo e a animação de inicialização da notificação pode transformar notificações na superfície do aplicativo.
Exemplos e fonte
Consulte as seguintes referências para este recurso.
-
ActivityOptions.makeRemoteAnimation
-
RemoteAnimationAdapter
-
RemoteAnimationRunner
-
Activity.registerRemoteAnimations
Para uma implementação de referência para a animação de inicialização de notificação, consulte ActivityLaunchAnimator.kt
.
Implementação
Você pode implementar esse recurso no Launcher/System UI conforme necessário ou pode usar a implementação AOSP no SystemUI/Launcher3.
Validação
Para validar o desempenho das animações, meça o desempenho do aplicativo de controle, ou seja, SystemUI ou Launcher, durante as animações, conforme descrito em Testar desempenho da interface do usuário .