Um die Akkulaufzeit von Wear OS-Geräten zu optimieren, die Arbeitsspeichernutzung berechnet. Im Rahmen der Qualitätsrichtlinien für Wear OS-Apps Richtlinien einhalten, gibt es bei Zifferblättern, die das Watch Face-Format verwenden, Arbeitsspeichermenge, die sie je nach aktuellem Status der Uhr verbrauchen können:
- Im Inaktivmodus kann das Zifferblatt nicht mehr als 10 MB an Daten abrufen. zu speichern.
- Im interaktiven Modus kann das Zifferblatt nicht mehr als 100 MB an Daten zu speichern.
Das System berechnet die Arbeitsspeichernutzung eines Zifferblatts
Um die Größe eines Bildes oder einer Bitmapschriftart auf einem Zifferblatt zu berechnen, das Watch Face-Format verwendet, führt das System die folgenden Schritte aus:
- Dekomprimiert das Bild oder die Bitmapschriftart
- Prüft das Bild oder die Bitmapschriftart, um festzustellen, ob sie in einer der folgenden
auf folgende Arten:
- Größe an die Anzeigegröße angepasst.
- Zugeschnitten, um vollständig transparente Pixel zu entfernen.
- Downsampling auf RGB565, falls dies auch ohne und die Darstellungsqualität.
Anhand des resultierenden Begrenzungsrahmens wird die Größe des Bildes berechnet. Bitmapschriftart in Byte als eine der folgenden Optionen:
- Für Bilder und Schriftarten mit RGBA8888: \( 4 \times width \times height \)
- Für Bilder und Schriftarten im RGB-565-Format: \( 2 \times width \times height \)
- Für Bilder und Schriftarten, die die Bitmapkonfiguration ALPHA_8 verwenden: \( width \times height \)
Interaktiver Modus
Bei der Berechnung der Arbeitsspeichernutzung für den interaktiven Modus berechnet das System den Summe von Folgendem:
- Die unverarbeitete Größe aller Vektorschriftarten.
- Die geschätzte Nutzung der Standardschriftart des Systems.
- Die Gesamtgröße der Bilder und Bitmapschriftarten nach dem Zuschneiden, Ändern der Größe oder eine Neuformatierung angewendet wurde.
Konfigurationen
Bei Zifferblättern, die Konfigurationen enthalten, versucht das System, die Gesamtgröße der in den verschiedenen Konfigurationen verwendeten Ressourcen. Bei sehr vielen Kombinationen kann das System wie viele Ressourcen gleichzeitig im gesamten mit unterschiedlichen Konfigurationen.
Ambient-Modus und Ebenen
Im Inaktivmodus nimmt das System an, dass die Uhr mit bis zu drei Vollbild-Layers, von denen zwei vollständig statisch sind:
- Alles unter den Uhrenelementen. Der größte Teil des Zifferblattes ist in diese Ebene eingefügt. Dabei spielt es keine Rolle, wie viele Bilder diese Ebene zeichnen; zählt das System sie als Vollbild.
- Alle Uhrenhände, Digitaldisplays oder Zusatzfunktionen mit Plattformbindung die dynamisch gerendert werden.
- Alle Elemente, die nach den Zeigern und Zusatzfunktionen der Uhr in der XML-Quelldatei
Die meiste Arbeitsspeichernutzung im Inaktivmodus beruht auf Bitmapschriften, die sehr groß sind.
Methoden zur Reduzierung der Arbeitsspeichernutzung
Wenn Sie die Vorschläge in diesen Abschnitten umsetzen, ist es wahrscheinlicher, dass Sie ein Zifferblatt, dessen Arbeitsspeicherverbrauch innerhalb dieser Limits bleibt.
Bitmapschriftarten zuschneiden und ihre Größe anpassen
Schneiden Sie Bilder und Objekte vom Typ BitmapFont
zu und passen Sie die Größe an ihre
Anzeigegröße.
Wenn Wear OS ein Zifferblatt zeichnet, werden alle Bilder dekomprimiert. Vollbild ein weitgehend leeres Image verbraucht unter Umständen 3 KB auf dem Laufwerk, aber wenn es angezeigt wird, Auf einem Bildschirm mit 450 x 450 Pixeln dekomprimiert das System das Bild, sodass das Bild auf mindestens 750 KB groß ist.
Einheitliche Bitmapschrifthöhen verwenden
Wenn du ein BitmapFont
verwendest, sollten alle Bilder für ein Zeichen dasselbe haben
Höhe. Ebenso sollten alle Bilder für Wörter dieselbe Höhe haben.
Einheitliche Frame-Größen in Animationen verwenden
Anstatt ein Bild über ein Zifferblatt zu verschieben, aktualisieren Sie die Elemente in der Bild und halten den Begrenzungsrahmen relativ zum Zifferblatt an derselben Position. Wenn Sie beispielsweise einen Kreis auf Ihrem Zifferblatt Ändern der Farbe eines Kreises, anstatt den Kreis über die Uhr zu drehen Gesicht.
Mit diesem Verfahren wird die Größe des vom System berechneten Begrenzungsrahmens reduziert. für die Animation.
Bilder deduplizieren
Wenn auf dem Zifferblatt mehrere Kopien desselben Bildes angezeigt werden, füge nur eine davon ein Kopie dieses Bildes in Ihrem Ressourcenverzeichnis und verweisen Sie mehrfach darauf Mal.
Fortschritt mithilfe von Bögen anzeigen
Um eine Fortschrittsanzeige zu emulieren, die nach einer Minute oder nach einer Stunde abgeschlossen wird,
60 separate Bilder verwenden. Erstellen Sie stattdessen ein Arc
-Objekt, das ein
Ausdruck, der seine Länge steuert, wie im folgenden Code-Snippet gezeigt:
<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>
Zur Darstellung einer durchgehenden Linie, z. B. für eine digitale Retro-Uhr
Stildesign verwenden, verwenden Sie entweder eine Bindestrich-Eigenschaft für ein Stroke
-Objekt oder
Bild-Overlay mit halbtransparenter Maske
Uhrzeiger und Zusatzfunktionen am Ende der Quelldatei platzieren
XML-Knoten werden in der Reihenfolge gezeichnet, in der sie in der XML-Quelldatei aufgeführt sind. Von die Zeiger und Zusatzfunktionen an das Ende der Datei, entfernt eine ganze Ebene aus der Berechnung des Inaktivmodus-Speichers.
Arbeitsspeichernutzung deines Zifferblatts bewerten
Anhand des Arbeitsspeicher-Fußabdrucks kannst du die Arbeitsspeichernutzung deines Zifferblatts messen
Evaluator-Tool, verfügbar im watchface
-Repository auf GitHub.