As transições sincronizadas de apps são um recurso do Android 9 que melhora a arquitetura de transição de apps existente. Quando um usuário abre, fecha ou alterna entre apps, o processo SystemUI ou Launcher (tela inicial) envia uma solicitação para controlar a animação quadro por quadro com sincronização garantida entre animações de visualização e de janela. Quando o SystemUI ou o Launcher renderiza 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 renderizado.
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 os ícones da tela inicial na superfície do app, e a animação de inicialização da notificação pode transformar notificações na superfície do app.
Exemplos e origem
Consulte as seguintes referências para este recurso.
ActivityOptions.makeRemoteAnimation
RemoteAnimationAdapter
RemoteAnimationRunner
Activity.registerRemoteAnimations
Para conferir uma implementação de referência da animação de inicialização de notificação, consulte
ActivityLaunchAnimator.kt
.
Implementação
É possível implementar esse recurso na interface do sistema/início conforme necessário ou usar a implementação do AOSP no SystemUI/Launcher3.
Validação
Para validar o desempenho 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.