Bastidores
Por que luzes de notificação não animam no Always On Display
Pela equipe llcloud 5 min de leitura
Resposta rápida
Um Always On Display roda num modo de baixo consumo que redesenha o painel cerca de uma vez por segundo, então nenhum app consegue tocar uma animação fluida ali. O AuraDisplay mostra um brilho firme no AOD e volta a tocar as animações quando você acorda a tela. Como uma luz parada numa tela OLED pode marcar os pixels com o tempo, ele faz a luz derivar devagar, move as formas um passo por hora e nunca desenha o indicador de excedente no AOD.
Uma das perguntas que mais recebemos sobre o AuraDisplay é justa: as animações ficam ótimas com a tela ligada, então por que a luz fica parada no Always On Display? A resposta curta é que a tela não deixa nada se mover de forma fluida nesse modo. A resposta longa vale ser contada, porque ela também explica como protegemos a sua tela contra burn-in.
O que a tela está fazendo de verdade no modo Always On Display?
Quando o celular mostra o Always On Display, o painel muda para um modo de baixo consumo. A maior parte da tela fica preta e, num painel AMOLED, pixels pretos simplesmente estão desligados. As partes acesas, como o relógio e os ícones, são redesenhadas numa taxa bem baixa. Nos celulares com que trabalhamos, isso é cerca de uma vez por segundo.
Uma animação fluida precisa de dezenas de quadros por segundo. Um pulso que aparece e some, uma onda que corre pela borda, uma órbita que circula a câmera: cada um é uma sequência de pequenas mudanças, e o olho só lê isso como movimento quando elas chegam rápido. Com um quadro por segundo, um pulso vira uma luz que às vezes está mais forte e às vezes mais fraca, sem movimento no meio. Uma onda vira uma série de saltos.
Isso é uma propriedade do modo da tela, não de algum app. Um app pode mudar o que desenha, mas a mudança só chega aos seus olhos na próxima atualização do painel. É por isso que nunca vamos prometer animação fluida no AOD. Não é algo que o software consiga entregar.
Então o que o AuraDisplay faz no Always On Display?
Ele para de tentar. Com a tela apagada, todos os estilos de animação descansam, e a luz aparece como um brilho firme na cor do app. No momento em que você acorda a tela, a animação volta na velocidade total.
Ficar parado tem benefícios reais:
- Lê-se com clareza. Um anel ou brilho de borda firme é mais fácil de notar num relance do que um que oscila entre estados uma vez por segundo.
- Poupa bateria. Não se gasta trabalho em quadros que ninguém consegue ver, e as partes pretas da tela continuam desligadas.
- É honesto. Uma luz feita pra ficar parada parece intencional. Uma que tenta animar a um quadro por segundo parece quebrada.
A baixa taxa de atualização tem mais um efeito que você pode notar. Uma luz que chega entre duas atualizações espera pela próxima, então no AOD ela pode levar até cerca de um segundo a mais pra aparecer. Isso é o painel, não um app lento. Nosso guia de notificações no Always On Display cobre as configurações do celular envolvidas, e a prévia da luz de notificação deixa você ver como fica um anel em volta da câmera no seu próprio celular.
Por que uma luz parada levanta a questão do burn-in?
Ficar parado resolve um problema e cria outro. Os pixels OLED envelhecem um pouco toda vez que acendem, e pixels que ficam acesos no mesmo lugar por longos períodos podem envelhecer mais rápido que os vizinhos. Com o tempo, isso pode deixar uma marca fraca. O Always On Display é exatamente onde uma luz fica parada por horas, às vezes a noite toda.
Então, depois de decidir que a luz não deve animar no AOD, tivemos que garantir que ela também não marcasse a tela. Chegamos a três proteções separadas, porque cada uma protege um tipo diferente de elemento e nenhuma cobre as outras.
Como o AuraDisplay protege contra burn-in?
O anel e o brilho de borda derivam devagar
Com a proteção contra burn-in no AOD ligada, o anel se move bem devagar em volta do ponto dele enquanto a tela está apagada. O brilho de borda não pode passar do limite da tela, então ele se afasta devagar para dentro e volta, em vez de se mover. A deriva segue um caminho em laço que leva cerca de 12 horas pra se repetir, então a luz não fica traçando os mesmos pixels a noite toda. É uma deriva, não uma animação. Você dificilmente vai notar, e esse é o ponto. No app, é a configuração Proteção contra burn-in no AOD, e faz parte do Pro.
As formas avançam um passo por hora
O Pro também tem formas, como corações, estrelas e foguetes, que orbitam a câmera ou percorrem a borda. Uma deriva pequena não protege uma forma preenchida, porque a forma é mais larga que qualquer deriva que ainda pareceria calma. Então, no AOD, as formas avançam juntas, tão devagar que se movem o espaçamento de uma forma a cada hora. Nessa hora, cada ponto que uma forma cobria foi passado e descoberto em sequência, e nenhum trecho de pixels fica aceso a noite toda.
O indicador +N nunca aparece no AOD
Quando há mais apps esperando do que cabem em volta da câmera, o AuraDisplay pode mostrar um pequeno indicador "+N". Ele é uma mancha sólida e brilhante, o pior tipo de elemento para burn-in, e não é essencial num relance. Por isso ele nunca é desenhado no Always On Display.
O que mais ajuda a luz a não ficar ligada por tempo demais?
Parte da melhor proteção é simplesmente menos tempo aceso:
- Limpe as notificações que você já viu. A luz apaga assim que você abre ou limpa a notificação.
- O horário de silêncio, parte do Pro, mantém a luz apagada durante uma janela diária, como a noite.
- O descarte automático, também do Pro, apaga uma luz depois de um tempo que você escolhe.
Se você tem um celular OLED mais antigo ou muito usado e deixa o Always On Display ligado por longos períodos, vale ligar isso junto com a proteção contra burn-in.
Por que contar tudo isso?
Porque a alternativa é uma lista de recursos dizendo "animações no AOD" e uma luz que engasga uma vez por segundo na sua tela. Preferimos explicar o que o hardware consegue e construir a melhor luz dentro disso. Se quiser o quadro completo do que uma luz de notificação pode ser num Android moderno, nosso guia de como ter uma luz de notificação no Android compara as opções, e AuraDisplay vs Always On Edge mostra como outra abordagem lida com a mesma tela.
Perguntas
Por que minha luz de notificação para de se mexer quando a tela apaga?
Porque o Always On Display só redesenha cerca de uma vez por segundo. Uma animação fluida precisa de muitos quadros por segundo, e o painel simplesmente não os mostra nesse modo. O AuraDisplay descansa as animações enquanto a tela está apagada, mantém um brilho firme no lugar e volta a animar assim que você acorda o celular.
Algum app consegue animar de forma fluida num Always On Display?
No próprio AOD, até onde sabemos, não, porque o limite é o modo da tela, não o app. Enquanto o celular mostra o Always On Display, o painel atualiza numa taxa bem baixa pra economizar energia. Um app pode mudar o que desenha, mas a mudança só aparece na próxima atualização, mais ou menos uma vez por segundo.
Uma luz de notificação pode causar burn-in numa tela OLED?
Uma luz que fica exatamente no mesmo lugar por muitas horas pode, como qualquer elemento estático num painel OLED. O AuraDisplay Pro inclui a proteção contra burn-in no AOD, que move a luz devagar pra os mesmos pixels não ficarem acesos a noite toda. Limpar notificações, o horário de silêncio e o descarte automático também reduzem o tempo em que a luz fica ligada.
Por que a luz demora um instante pra aparecer no Always On Display?
O painel só redesenha cerca de uma vez por segundo no modo AOD, então uma luz que chega entre duas atualizações espera pela próxima. Isso pode somar até cerca de um segundo ao tempo da própria notificação. Na tela de bloqueio ou com a tela ligada, a luz aparece quase na hora.