O Material You do Google não é tão complicado de entender, embora não haja muitas informações em um só lugar. Confira aqui!
Links Rápidos
- Como funciona o mecanismo de tema monet
- O que aconteceu com as sobreposições de recursos de tempo de execução (RROs)?
- Material Você ainda está melhorando
- Mudanças no Android 13
De longe a maior mudança Andróide 12 é Material você, a versão mais recente da linguagem Material Design do Google. Material You, como o Google descreve, “procura criar designs que sejam pessoais para cada estilo, acessíveis para cada necessidade, vivos e adaptáveis a cada tela.”Ao desenvolver o Android 12, o Google criou um novo mecanismo de tema com o codinome “monet” que gera uma rica paleta de cores pastel derivado do papel de parede do usuário. Essas cores são então aplicadas a diversas partes do sistema e seus valores são disponibilizados através de um API que os aplicativos do usuário podem chamar, permitindo assim que os aplicativos decidam se também desejam recolorir seus IU. O Google está apostando tudo no Material You e a empresa atualizou a maioria de seus aplicativos para incorporar cores dinâmicas.
Para um curso intensivo sobre a história do Material Design, ele foi lançado pela primeira vez com Android 5 Lollipop, com foco inerente na experiência do usuário. Como Google coloca isso, "Material é um sistema adaptável de diretrizes, componentes e ferramentas que apoiam as melhores práticas de design de interface do usuário." Apresentava paletas de cores pastéis planas, profundidade, iluminação suave e detalhes realistas. física. O Android 9 Pie viu o advento do Material Design 2, embora não tenha sido uma revisão visual tão grande quanto a primeira iteração do Material Design. O Android 12 viu o lançamento de Projeto de Materiais 3, que é uma revisão mais significativa.
No entanto, retire o mecanismo de tema de cores e o Material You não é realmente que diferente. Na verdade, o elemento pessoal denotado pelo “Você” desaparece mais ou menos completamente.
Como funciona o mecanismo de tema monet
O mecanismo de tema “monet” é onde a mágica acontece quando se trata de Material You, e é o algoritmo que decide quais cores são selecionadas em um papel de parede. “Monet” foi adicionado ao AOSP no Android 12L. Os desenvolvedores de ROM personalizada também podem implementar isso implementação de código aberto de “monet”. Desenvolvedores de aplicativos de terceiros são gratuitos para adicionar suporte para cores dinâmicas agora, mesmo que funcione apenas em um número limitado de dispositivos atualmente.
A primeira pergunta que tenho certeza que a maioria das pessoas tem sobre o Material You é como ele consegue selecionar cores que funcionam juntas e contrastam bem juntas todas as vezes. Tentei inúmeros papéis de parede com a intenção de quebrar o algoritmo de seleção de cores, mas nenhum deles conseguiu fazer isso. Ele ainda escolhe cores que sempre funcionam juntas, o que é um feito impressionante, para dizer o mínimo. Para ter uma ideia de como funciona o algoritmo de seleção de cores do Android 12, um dos dois ovos de páscoa vem na forma de um widget que você pode adicionar à sua área de trabalho. O widget mostra todas as cores selecionadas pelo monet e você pode tocar nele para exibi-lo em tela inteira. Quando estiver em tela cheia, você pode tocar em uma cor para compartilhá-la. Quando você compartilha, a saída é semelhante a esta:
A1-600 (@android:color/system_accent1_600)
currently: #626200
Quando um usuário altera o papel de parede em um dispositivo Android 12, a imagem é analisada para selecionar uma cor e escolha algoritmicamente as cores primária, secundária, terciária e de erro usando uma semente inicial cor. Também são escolhidas duas cores neutras que dão ao Material You sua tonalidade geral. Ao mesmo tempo, aplica a teoria das cores e regras de acessibilidade. A partir dessas cores, o algoritmo cria paletas tonais que variam de 0% de luminância (PRETO) a 100% (BRANCO). Os temas dinâmicos ou personalizados usam valores nessas paletas de tons para definir os atributos do tema para essa faixa de cores. Ele extrai até 128 cores do papel de parede para o espaço de cores CIELAB como intermediário, então essas cores são mapeado para CAM16. O CAM16 color aaparência eumodelo é usado para classificar e filtrar as cores para determinar a cor original real e, em seguida, as paletas são geradas usando essa cor original. Posteriormente, essas cores são mapeadas de volta para RGB para definir as cores em todo o sistema.
CIELAB às vezes também é referido como "L*a*b*". L* para brilho/luminosidade percebidos e a* e b* para as quatro cores exclusivas da visão humana – vermelho, verde, azul e amarelo. A luminosidade é utilizada para calcular a relação de contraste, garantindo legibilidade. Depois de aplicado, você obtém todas as lindas cores de todo o sistema que podem ser implementadas na interface do sistema, nos aplicativos e muito mais.
O que aconteceu com as sobreposições de recursos de tempo de execução (RROs)?
Os RROs não foram a lugar nenhum e o Material You funciona por meio da API Fabricated Overlays. No passado, falamos sobre como as sobreposições fabricadas podem ser usadas para trazer de volta temas sem raízes. As sobreposições fabricadas são uma nova adição ao Android 12 e funcionam de maneira um pouco diferente dos RROs. Por um lado, os RROs funcionam por meio de um APK de sobreposição instalado em um dispositivo, enquanto uma sobreposição fabricada simplesmente informa ao aplicativo quais cores devem ser usadas. usar.
As sobreposições fabricadas também são um pouco mais limitadas que os RROs. Antes do Android 11, os RROs podiam substituir praticamente qualquer recurso: booleanos, inteiros, dimensões, atributos, layouts e até mesmo brutos arquivos de dados. O Android 11 fez algumas mudanças na forma como os RROs funcionam, tornando a substituição de layouts não mais viável. As sobreposições fabricadas, por outro lado, só podem substituir valores que podem ser representados como números inteiros. Isso inclui números inteiros, dimensões, booleanos e cores. Você não pode usá-los para substituir recursos de dados brutos, layouts, strings ou arrays – pelo menos não facilmente.
Ainda assim, essas limitações realmente não importam quando se trata de Material You e monet. As sobreposições fabricadas tornam mais fácil para o sistema aplicar sobreposições de cores e dimensões dinamicamente, sem esperar a compilação de um APK ou a reinicialização do sistema para aplicá-las.
Material Você ainda está melhorando
As cores dinâmicas do Material You certamente apresentam seus problemas e não é tão difícil quebrá-las fundamentalmente. Se você alterar seu papel de parede rapidamente, por exemplo, poderá efetivamente instituir um ataque de negação de serviço. Mishaal Rahman confirmou que esse ataque de negação de serviço foi corrigido no Android 12L. Espero sinceramente que o Material You seja melhorado em versões futuras, pois embora eu ame ele e seu conceito, ele precisa de muito trabalho. Pela minha experiência pessoal, sinto que seus bugs são parcialmente o motivo pelo qual não foi adicionado ao AOSP... isso, e o fato de que o Google efetivamente o tornou um exclusivo cronometrado para a série Pixel. Até tive um problema recentemente depois de atualizar para o patch de dezembro do Android 13 no meu Google Pixel 7 Pro, que mais tarde localizei no logcat como sendo causado pelo Material You e pelo Google Pixel lançador.
Irritantemente, O Android 12 removeu fontes personalizadas e opções de ícones personalizados em favor do tema dinâmico do Material You. O sistema de temas foi introduzido pela primeira vez com o aplicativo Pixel Themes e era baseado na estrutura de temas baseada em sobreposição do Android. Embora o sistema de temas Material You do Android 12 seja mais personalizável, ele não apresenta os estilos personalizados que o Google introduziu no Android 10. Em um Comente no Google Issue Tracker, um Googler deu o seguinte raciocínio para sua remoção:
“Os recursos de estilo personalizado (fonte, formato do ícone, pacote de ícones e cor de destaque) no R estão sendo substituídos pelo novo recurso de tema dinâmico que estamos introduzindo no S. Vemos o novo recurso de tema dinâmico como mais moderno e inteligente. Uma experiência simples e agradável que esperamos que todos os usuários possam desfrutar.”
Parece improvável que o Google reintroduza fontes e opções de ícones personalizados no futuro. Muitos usuários expressaram seu desapontamento com as alterações do Material You do Google e, considerando o quão quebrado ele pode ser, entendo perfeitamente o porquê. Esperamos que o Google melhore sua implementação ou que outros OEMs não caem nas mesmas armadilhas em suas implementações que o Google possui.
Mudanças no Android 13
Google melhorou o Material You para a liberação de Andróide 13, e uma das primeiras melhorias foi a adição de cinco estilos de cores extras. Esses novos estilos de cores são chamados TONAL_SPOT, VIBRANT, EXPRESSIVE, SPRITZ, RAINBOW e FRUIT_SALAD. Tiramos capturas de tela e as mostramos abaixo.
- TONAL_SPOT: Material padrão em suas cores
- VIBRANTE: Gera uma paleta mais tonal com tonalidades levemente variadas e cores secundárias e de fundo mais coloridas
- EXPRESSIVO: Gera uma paleta com vários tons proeminentes que são mais coloridos que VIBRANTES
- SPRITZ: Gera uma paleta de cores mais baixas
O Android 13 também introduziu a capacidade de os desenvolvedores terem ícones de aplicativos temáticos, para que possam assumir o tema do sistema. Os desenvolvedores podem oferecer suporte a isso fornecendo um ícone adaptável e um ícone de aplicativo monocromático em seus aplicativos. O iniciador ainda precisa oferecer suporte a ícones temáticos, como o iniciador do Google Pixel.
Agradecimentos ao membro sênior do XDA kdrag0n, desenvolvedor do ProtonAOSP e uma recriação do sistema de temas Material You, por sua ajuda neste artigo!