Transições de aplicativos sincronizadas é um recurso do Android 9 que aprimora a arquitetura de transição de aplicativos 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 visualização e animações de janela. Quando o SystemUI ou o Launcher desenha um novo quadro como parte de uma animação, ele solicita uma transformação diferente na superfície do aplicativo animado que determina como o aplicativo é composto na tela e marca a solicitação, uma transação de superfície, para 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.x e versões anteriores. Por exemplo, a animação de inicialização do aplicativo pode transformar perfeitamente os ícones da tela inicial na superfície do aplicativo e a animação de inicialização da notificação pode transformar as notificações na superfície do aplicativo.
Exemplos e fonte
Consulte as referências a seguir para esse recurso.
-
ActivityOptions.makeRemoteAnimation
-
RemoteAnimationAdapter
-
RemoteAnimationRunner
-
Activity.registerRemoteAnimations
Para obter 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 UI .