O sistema de temas Material You do Android 12 foi recriado por um desenvolvedor

kdrag0n, desenvolvedor do ProtonAOSP ROM, lançou sua própria versão de “monet”, o novo sistema de temas baseado em papel de parede do Android 12.

O sistema de temas baseado em papel de parede do Material You, codinome “monet”, finalmente foi lançado Android 12 Beta 2. O sistema de temas cria paletas de cores com base no esquema de cores dominante do seu papel de parede e as aplica aos blocos de configurações rápidas, tela de bloqueio, configurações, pop-ups e aplicativos. No entanto, na sua implementação actual, apenas temas fazem parte da IU do sistema e selecione aplicativos do sistema. A maioria dos aplicativos de terceiros não oferece suporte a esse tema dinâmico, pois o Google ainda não publicou a documentação do Material You. Embora não saibamos quando o Google publicará recursos e bibliotecas no Material You, Danny Lin (kdrag0n), o desenvolvedor do ProtonAOSP ROM, lançou seu próprio mecanismo de tema baseado em “monet”.

Mecanismo de tema do kdrag0n funciona exatamente como “monet” e abre o tema dinâmico exclusivo do Pixel para todos os dispositivos que executam o Android 12 e algumas versões mais antigas do Android. kdrag0n foi o desenvolvedor que fez com que “monet” funcionasse nas primeiras compilações de visualização para desenvolvedores do Android 12. Desde então, ele fez engenharia reversa na implementação do Google e até deu feedback aos membros da equipe SystemUI do Google, principalmente

James O'Leary (que parece fazer parte da equipe que desenvolveu “monet” no Google).

De acordo com kdrag0n, sua implementação não usa nenhum código ou APIs do Google ou Android 12, portanto não há dependência de dispositivos rodando Android 12 para que seu modelo seja usado. O mecanismo de tema do kdrag0n segue os alvos de cores do Material You. Estas metas são então “recolorido ajustando o colorido e o matiz no espaço de cores perceptual Oklab de @bjornornorn. As cores resultantes são mapeadas em gama para sRGB usando interseção de gama no espaço Oklab.” Os usuários também podem alterar o colorido e priorizar o colorido em vez de tons precisos.

O mecanismo de tema do kdrag0n é de código aberto sob a licença MIT, permitindo que desenvolvedores de ROM personalizados (e até mesmo OEMs) o implementem se desejarem. Na verdade, o próprio desenvolvedor ProtonAOSP A ROM será uma das primeiras a implementá-lo quando o código-fonte do Android 12 for publicado. Se você é um desenvolvedor de ROM personalizado, você pode escolher esses commits e mescle-os em sua construção.

O desenvolvedor também está trabalhando nas bibliotecas Jetpack Compose e Flutter, que permitirão que até mesmo aplicativos desenvolvidos para Android 11 suportem cores dinâmicas. Os aplicativos destinados a versões mais antigas do Android podem registrar um ouvinte para ser notificado quando as cores do papel de parede mudarem - o código do kdrag0n serve mais para gerar temas com base na nova cor do papel de parede.

Como exemplo de seu modelo funcionando para aplicativos direcionados ao Android 11, o desenvolvedor compartilhou conosco um vídeo demonstrando um aplicativo mudando seu tema a cada quadro a 90fps. Observe que esta demonstração é apenas um exemplo do que pode ser feito e não é recomendado ser recriado exatamente como mostrado.

Este pode ter um grande impacto no desempenho e na bateria, embora o Pixel 4 do desenvolvedor possa renderizar alterações de tema a 90fps para visualizações mais simples. De acordo com o desenvolvedor, o Jetpack Compose não foi muito otimizado para desempenho e a biblioteca Flutter pode ser melhor. De qualquer forma, leva apenas 0,05 ms para seu mecanismo gerar um tema, mas alterar o tema da interface do usuário em cada quadro prejudica o desempenho.


Mishaal Rahman contribuiu para este artigo.