O Wear OS melhora a duração da bateria monitorando o uso da memória. Os mostradores do relógio que usam o Formato do mostrador do relógio têm limites de memória, de acordo com as Diretrizes de qualidade de apps para Wear OS:
- Modo ambiente: uso máximo de 10 MB de memória.
- Modo interativo: uso máximo de 100 MB de memória.
Cálculo do uso da memória
Para calcular o uso de memória de uma imagem ou fonte de bitmap em um mostrador de relógio usando o Formato do mostrador do relógio, o sistema faz o seguinte:
- Descompacte a imagem ou a fonte.
- Verifique se as otimizações a seguir se aplicam:
- Redimensionar para ajustar melhor à tela
- Cortar pixels transparentes
- Redução de amostragem para RGB565, sem perda de fidelidade
Com base na caixa delimitadora resultante, o tamanho é calculado da seguinte maneira:
- Para imagens e fontes que usam RGBA8888: 4 x largura x altura
- Para imagens e fontes que usam RGB565: 2 x largura x altura
- Para imagens e fontes que usam a configuração de bitmap ALPHA_8: largura x altura
Modo interativo
Para calcular o uso da memória no modo interativo, o sistema soma os seguintes valores:
- O tamanho não processado de qualquer fonte vetorial
- O uso estimado da fonte padrão do sistema
- O tamanho total das imagens e fontes de bitmap após o corte, o redimensionamento e a reformatação ser aplicado
Configurações
Para mostradores de relógio com configurações, o sistema tenta calcular o tamanho total dos recursos do mostrador de relógio em diferentes configurações. Se o número de combinações for muito grande, o sistema poderá superestimar quantos recursos são usados simultaneamente.
Modo ambiente e camadas
O sistema assume que o modo ambiente usa até três camadas de tela cheia, duas delas estáticas. As camadas incluem:
- O plano de fundo do mostrador do relógio. O sistema trata isso como uma imagem, independentemente de quantas imagens o plano de fundo contém.
- Partes móveis, como mãos, telas digitais ou elementos dinâmicos.
- Elementos restantes do arquivo XML de origem.
Fontes de bitmap grandes geralmente usam mais memória no modo ambiente.
Métodos para reduzir o uso de memória
Use as otimizações abaixo para reduzir o uso de memória.
Cortar e redimensionar fontes de bitmap
Corte as imagens e os objetos BitmapFont
para que correspondam ao tamanho de exibição.
O Wear OS renderiza mostradores do relógio com todas as imagens descompactadas. Uma imagem em tela cheia quase em branco pode consumir 3 KB no disco, mas 750 KB ou mais em uma tela de 450 x 450 pixels.
Usar alturas consistentes de fontes de bitmap
Ao usar uma BitmapFont
, verifique se todas as imagens de um caractere têm a mesma
altura. Da mesma forma, verifique se todas as imagens de palavras têm a mesma altura.
Usar tamanhos de frame consistentes em animações
Em vez de mover uma imagem em um mostrador do relógio, atualize os elementos na imagem e mantenha a posição da caixa delimitadora fixa. Por exemplo, para animar um círculo no mostrador do relógio, mude a cor dele em vez de girá-lo.
Essa técnica reduz o tamanho da caixa delimitadora calculada da animação.
Eliminar a duplicação de imagens
Para mostrar uma imagem várias vezes, inclua apenas um recurso de imagem e faça referência a ele várias vezes.
Mostrar progresso usando arcos
Para simular uma barra de progresso que termina após um minuto ou uma hora, não use 60
imagens. Use um objeto Arc
com uma expressão que controle o comprimento dele, conforme
mostrado aqui:
<PartDraw angle="0" width="400" height="400" name="ProgressBar" pivotX="0.5" pivotY="0.5 x="40" y="40"> <Arc centerX="200" centerY="200" width="400" height="400" startAngle="0" endAngle="360"> <!-- Completes a "progress loop" every minute. --> <Transform target="endAngle" value="0 + (clamp([SECOND], 0, 60) - 0) * 6" /> <Stroke cap="ROUND" color="#123456" thickness="10" /> </Arc> </PartDraw>
Para mostrar uma linha não contínua, por exemplo, para criar uma aparência retrô no estilo
de relógio digital, use uma propriedade de traço para um objeto Stroke
ou uma
máscara semitransparente de sobreposição de imagem.
Coloque as ponteiros e complicações do relógio no final do arquivo de origem
Os nós XML são desenhados na ordem listada no XML de origem. Ao colocar os ponteiros e as complicações do relógio no final, você permite que o sistema elimine uma camada inteira do cálculo de memória do modo ambiente.
Avaliar o uso da memória do mostrador do relógio
Para medir o uso de memória do mostrador do relógio, use o avaliador de consumo de memória, disponível no repositório watchface
(link em inglês) no GitHub.