Leistung des Zifferblatts durch Hardwarebeschleunigung verbessern

Wear OS-Apps, die Standardansichten verwenden, profitieren von der automatischen hardwarebeschleunigten Grafik-Rendering. Zifferblätter werden jedoch in der Regel Canvases, damit sie nicht automatisch hardwarebeschleunigt werden.

Warum sollte ich ein hardwarebeschleunigtes Canvas für dein Zifferblatt verwenden?

In den meisten Fällen wird Ihr Zifferblatt mit einer höheren Framerate gerendert, wenn ein hardwarebeschleunigtes Canvas Bei höheren Frame-Rates, Animationen und Übergängen werden für das Auge weicher dargestellt, was eine bessere User Experience bietet.

Wenn Sie ein hardwarebeschleunigtes Canvas verwenden, können Sie auch auf weitere UI-Elemente zugreifen, Leistungsdaten zu Ihrem Zifferblatt. Beispielsweise können Sie nur auf die detaillierte Frame-Informationen wie unter Mess-UI beschrieben Leistung wenn Sie einen hardwarebeschleunigten Canvas verwenden.

Verwendet mein Zifferblatt die Hardwarebeschleunigung?

Sie können prüfen, ob Ihr Zifferblatt die Hardwarebeschleunigung verwendet entweder mit den Entwickleroptionen oder mit adb.

Mit Entwickleroptionen prüfen

So prüfen Sie mithilfe der Entwickleroptionen, ob Ihr Zifferblatt die Hardwarebeschleunigung verwendet: führen Sie folgende Schritte aus:

  1. Gehen Sie auf einem Wear OS-Gerät zu Einstellungen > Entwickleroptionen.
  2. Aktivieren Sie die Fehlerbehebung für GPU-Profilerstellung.

    Mit dieser Option wird ein Overlay auf sichtbaren Oberflächen gezeichnet, die in den einzelnen Phasen des GPU-Renderings aufgewendete Zeit Oberfläche.

  3. Navigieren Sie auf dem Gerät zurück zum Zifferblatt.

  4. Wenn für das Zifferblatt ein hardwarebeschleunigter Canvas verwendet wird, wird ein neuer Balken der sich für jeden gerenderten Frame Ihres Zifferblatts von rechts nach links bewegt.

Mit ADB prüfen

So kannst du mit adb prüfen, ob dein Zifferblatt die Hardwarebeschleunigung nutzt: führen Sie folgende Schritte aus:

  1. Gewünschtes Zifferblatt auf einem Wear OS-Gerät auswählen zu testen.
  2. Lassen Sie das Zifferblatt einige Sekunden im interaktiven Modus laufen.
  3. Prüfen Sie mit dem folgenden adb-Befehl, ob auf Ihrem Zifferblatt Hardwarebeschleunigung:

    adb shell dumpsys gfxinfo [package-name]

Nachdem Sie den Befehl ausgeführt haben, sieht die Ausgabe in etwa so aus: Beispiel:

Applications Graphics Acceleration Info:
Uptime: 2239933 Realtime: 13568751

** Graphics info for pid 1100 [package-name] **

Stats since: 59875589194ns
Total frames rendered: 1213
Janky frames: 0 (0.00%)
50th percentile: 7ms
90th percentile: 18ms
95th percentile: 25ms
99th percentile: 150ms
Number Missed Vsync: 0
Number High input latency: 0
Number Slow UI thread: 0
Number Slow bitmap uploads: 0
Number Slow issue draw commands: 0
Number Frame deadline missed: 0

...

Beachten Sie in dieser Beispielausgabe die Zeile Total frames rendered. Wenn Ihre Ausgabe insgesamt Frames enthält, die größer als 0 gerendert wurden, Zifferblatt verwendet einen beschleunigten Canvas. Andernfalls wird die Gesamtzahl der gerenderten Frames Frame-Daten im Bericht normalerweise 0 sind.

Da die gfxinfo jedoch für das gesamte Paket Ihrer Anwendung ausgegeben wird, könnten Sie die Frame Time von etwas anderem als einer hardwarebeschleunigten Canvas, z. B. ein Activity, das Ihre App für einen Konfigurationsbildschirm verwendet. Bis um den Unterschied zu erkennen, achten Sie darauf, dass das Zifferblatt die einzige Oberfläche ist, und führen Sie dann den Befehl adb shell dumpsys gfxinfo noch einmal aus, um zu prüfen, steigt der Wert für Total frames rendered an.

Best Practices

Mit diesen Best Practices können Sie Nutzenden.

Akkulaufzeit maximieren

Wenn auf deinem Zifferblatt Animationen mit langer Ausführungszeit angezeigt werden, kann die Hardwarebeschleunigung die Akkulaufzeit eines Geräts erheblich verkürzt. Dieses Problem kann sich verschlimmern, wenn versucht, in jedem Frame zu zeichnen. Um negative Auswirkungen auf Ihr verwenden, verwenden Sie keine lang andauernden Animationen auf Ihrem Zifferblatt. Dieses nicht spezifisch für die Hardwarebeschleunigung ist, Die Hardwarebeschleunigung erhöht die Anzahl der Frames, die Sie zeichnen können. noch wichtiger ist, diese zu befolgen. Weitere Informationen finden Sie unter Best Practices für Animationen.

Unterstützte Zeichenvorgänge verwenden

Einige Zeichenvorgänge werden bei Verwendung der Hardwarebeschleunigung nicht unterstützt. Informationen darüber, was unterstützt wird, finden Sie unter Hardware beschleunigen. Wenn Sie einen kleinen Codepfad haben, der einen nicht unterstützten Vorgang verwendet, können Sie Canvas mit Bitmap und zeichnen diese Bitmap dann in den Canvas des Zifferblatts. mit canvas.drawBitmap()

Aufrechterhaltung der Kompatibilität bei Nutzung der Hardwarebeschleunigung

Die Hardwarebeschleunigung ist auf Wear OS-Geräten mit Android 9 (API) verfügbar Level 28) oder höher. Wenn Sie einen bestimmten Zeichenvorgang auf älteren Geräte, auf denen keine Hardwarebeschleunigung verfügbar ist, oder eine nicht unterstützte Grafik auf einem hardwarebeschleunigten Canvas ausführen, klicken Sie auf Canvas.isHardwareAccelerated(), und stellen Sie dann die alternative Funktionalität bereit.