Implementar transições de app sincronizadas

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.

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.