O Wear OS melhora a duração da bateria monitorando o uso da memória. Os mostradores de 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 memória de 10 MB.
- Modo interativo: uso máximo de memória de 100 MB.
Cálculo do uso de memória
Para calcular o uso de memória de uma imagem ou fonte 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 seguintes otimizações se aplicam:
- Redimensionamento para melhor ajuste à tela
- Cortar pixels transparentes
- Subamostragem para RGB565, sem perda de fidelidade
Com base na caixa delimitadora resultante, o tamanho é calculado da seguinte maneira:
- Para imagens e fontes usando RGBA8888: 4 x largura x altura
- Para imagens e fontes usando 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 de 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, redimensionamento e reformatação
Configurações
Para mostradores de relógio com configurações, o sistema tenta calcular o tamanho total dos recursos do mostrador 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 pressupõe 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, independente de quantas imagens o plano de fundo tem.
- Partes móveis, como mãos, telas digitais ou elementos dinâmicos.
- Elementos restantes do arquivo XML de origem.
Fontes bitmap grandes geralmente usam mais memória no modo ambiente.
Métodos para reduzir o uso de memória
Use as otimizações a seguir para reduzir o uso da memória.
Cortar e redimensionar fontes de bitmap
Corte e redimensione 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, todas as imagens de um personagem precisam ter a mesma
altura. Da mesma forma, todas as imagens de palavras precisam ter 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 rolar.
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 1 minuto ou 1 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="25" y="25"> <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="#654456" 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 os ponteiros do relógio e as complicações 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.