Optimiser l'utilisation de la mémoire pour votre cadran

Pour fournir la meilleure autonomie de batterie possible sur les appareils Wear OS, le système effectue un calcul de l'utilisation de la mémoire. Dans le cadre des Critères de qualité des applications Wear OS , les cadrans qui utilisent le format de cadran sont soumis à des limites quantité de mémoire qu'ils peuvent consommer, en fonction de l'état actuel de la montre:

  • En mode Veille, le cadran ne peut pas consommer plus de 10 Mo de mémoire.
  • En mode interactif, le cadran ne peut pas consommer plus de 100 Mo de mémoire.

Le système calcule l'utilisation de mémoire d'un cadran

Pour calculer la taille occupée par une police d'image ou bitmap dans un cadran utilise le format de cadran, le système effectue les étapes suivantes:

  1. Décompresse l'image ou la police bitmap.
  2. Il examine l'image ou la police bitmap pour déterminer si elle peut être optimisée dans l'une des de différentes manières: <ph type="x-smartling-placeholder">
      </ph>
    • Redimensionnée pour mieux correspondre à la taille d'affichage.
    • Recadrée de façon à supprimer les pixels totalement transparents.
    • sous-échantillonné à RGB565, si cela est possible sans la perte de fidélité.

En se basant sur le cadre de délimitation obtenu, le système calcule la taille de l'image ou bitmap, en octets, comme suit:

  • Pour les images et les polices utilisant le format RGBA8888: \( 4 \times width \times height \)
  • Pour les images et les polices RVB565: \( 2 \times width \times height \)
  • Pour les images et les polices qui utilisent la configuration bitmap ALPHA_8: \( width \times height \)

Mode interactif

Lors du calcul de l'utilisation de la mémoire pour le mode interactif, le système calcule le la somme des éléments suivants:

  1. Taille non traitée des polices vectorielles.
  2. Utilisation estimée de la police par défaut du système.
  3. La taille totale des images et des polices bitmap après recadrage, redimensionnement ou le reformatage a été appliqué.

Configurations

Pour les cadrans contenant des configurations, le système tente de calculer la taille totale des ressources utilisées dans les différentes configurations. Parfois, lorsqu'il existe un très grand nombre de combinaisons, le système surest légèrement le nombre de ressources utilisées simultanément différentes configurations.

Mode ambiant et calques

Pour le mode Veille, le système suppose que le rendu de la montre Trois calques plein écran, dont deux sont entièrement statiques:

  1. Tout ce qui se trouve sous les éléments de la montre. La majeure partie du "boîtier" du cadran correspond à composées dans cette couche. Peu importe le nombre d'images utilisées pour dessine ce calque. le système la comptabilise comme une image en plein écran.
  2. Aiguilles de montre, écrans numériques ou complications avec des liaisons de plate-forme qui s'affichent de façon dynamique.
  3. Tous les éléments listés après les aiguilles de la montre et les complications dans le fichier XML source.

En général, l'utilisation de la mémoire en mode Veille provient principalement de polices bitmap, les plus volumineux.

Méthodes pour réduire l'utilisation de la mémoire

Suivez les suggestions de ces sections pour créer plus facilement cadran dont la consommation de mémoire ne dépasse pas ces limites.

Recadrer et redimensionner les polices bitmap

Recadrez vos images et vos objets BitmapFont, puis redimensionnez-les pour les adapter à leur taille d'affichage.

Lorsque Wear OS dessine un cadran, toutes les images sont décompressées. Une image en plein écran principalement vierge peut consommer 3 Ko sur le disque, mais si elle est affichée sur un écran de 450 x 450 pixels, le système la décompresse, augmentant ainsi sa taille à 750 Ko ou plus en mémoire.

Utiliser des hauteurs de police bitmap cohérentes

Lorsque vous utilisez un élément BitmapFont, toutes les images d'un personnage doivent avoir la même hauteur. De même, toutes les images contenant des mots doivent avoir la même hauteur.

Utiliser des tailles de cadre cohérentes dans les animations

Au lieu de déplacer une image sur un cadran, mettez à jour les éléments dans le image et conserver son cadre de délimitation au même emplacement que le cadran. Par exemple, si vous souhaitez animer un cercle sur votre cadran, changer la couleur d'un cercle au lieu de faire rouler le cercle sur la montre votre visage.

Cette technique permet de réduire la taille du cadre de délimitation calculé par le système. pour l'animation.

Dédupliquer les images

Si le cadran affiche plusieurs copies de la même image, n'en ajoutez qu'une. de cette image dans votre répertoire de ressources et de la référencer dans plusieurs fois.

Afficher la progression à l'aide d'arcs

Pour émuler une barre de progression qui se termine au bout d'une minute ou après une heure, n'utilisez pas 60 images distinctes. Créez plutôt un objet Arc contenant une expression contrôlant sa longueur, comme indiqué dans l'extrait de code suivant :

<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>

Pour afficher une ligne non continue, par exemple pour obtenir un style de montre numérique rétro, utilisez soit une propriété tiret pour un objet Stroke, soit une superposition d'image de masque semi-transparent.

Placer les aiguilles et les complications à la fin du fichier source

Les nœuds XML sont dessinés dans l'ordre dans lequel ils sont listés dans le fichier XML source. Par en plaçant les aiguilles et les complications à la fin du fichier, élimine une couche entière du calcul de la mémoire en mode Veille.

Évaluer l'utilisation de la mémoire de votre cadran

Pour mesurer l'utilisation de la mémoire de votre cadran, utilisez l'espace mémoire utilisé. d'évaluation, disponible dans le dépôt watchface sur GitHub.

  • Remarque : Le texte du lien s'affiche lorsque JavaScript est désactivé.
  • Arc
  • Line
  • Rectangle