As transições de app sincronizadas são um recurso do Android 9 que aprimora a arquitetura de transição de apps atual. Quando um usuário abre, fecha ou alterna entre apps, o processo SystemUI ou Launcher (tela inicial) envia uma solicitação para controlar o frame da animação com sincronização garantida entre animações de visualização e de janela. Quando o SystemUI ou o Launcher desenha um novo frame como parte de uma animação, ele solicita uma transformação diferente na superfície do app em animação, que determina como o app é composto na tela, e marca a solicitação, uma transação de superfície, para ser sincronizada com o frame que está sendo desenhado.
Isso permite novas animações de transição de apps que não são possíveis no Android 8.x e versões anteriores. Por exemplo, a animação de inicialização do app pode transformar ícones da tela inicial sem problemas na superfície do app, e a animação de inicialização de notificações pode transformar notificações na superfície do app.
Exemplos e origem
Consulte as seguintes referências para esse recurso.
ActivityOptions.makeRemoteAnimation
RemoteAnimationAdapter
RemoteAnimationRunner
Activity.registerRemoteAnimations
Para uma implementação de referência da animação de inicialização de notificações, consulte
ActivityLaunchAnimator.kt
.
Implementação
Você pode implementar esse recurso no Launcher/interface do sistema conforme necessário ou usar a implementação do AOSP em SystemUI/Launcher3.
Validação
Para validar a performance das animações, meça o desempenho do app de controle, ou seja, SystemUI ou Launcher, durante as animações, conforme descrito em Testar a performance da interface.