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:
- Gehen Sie auf einem Wear OS-Gerät zu Einstellungen > Entwickleroptionen.
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.
Navigieren Sie auf dem Gerät zurück zum Zifferblatt.
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:
- Gewünschtes Zifferblatt auf einem Wear OS-Gerät auswählen zu testen.
- Lassen Sie das Zifferblatt einige Sekunden im interaktiven Modus laufen.
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.
Empfehlungen für dich
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- dumpsys
- Langsames Rendering
- Gerätekompatibilitätsmodus