Google News – Android Q+ könnte die Vulkan Graphics API verwenden, um die UI zu rendern.

Die nächste große Version von Android, Android 9 P, wird aller Voraussicht nach bereits im nächsten Monat für mehrere Geräte veröffentlicht. Im Gegensatz zu Android 8 Oreo, wo die Hauptverbesserungen in der Tat hauptsächlich unter der Haube stattfanden, bietet Android 9 P mehr benutzerorientierte Funktionen, wie eine überarbeitete Benutzeroberfläche, Navigationsgesten, während gleichzeitig die Arbeit an Project Treble fortgesetzt wird. Aber hinter den Kulissen hat Google die Funktionsweise des Grafik-Renderings unter Android ebenfalls überarbeitet. In Android 8 Oreo begann Google damit, ein OpenGL-Hardware-beschleunigtes Backend für die Skia-Grafik-Engine zu testen, das in Android 9 P fertiggestellt wurde.

Vulkan-Feature-Image

Google hält dort jedoch nicht an, da das Unternehmen plant, das Vulkan-Backend der Skia-Grafik-Engine zu implementieren, welches vermutlich in Android Q oder einem späteren Release landen wird. Den Beweis dafür liefert ein Kommentar eines Google-Ingenieurs zum Open-Source-Projekt Chromium Gerrit. Der Kommentar bezieht sich auf einen Fehlerbericht über die bevorstehende Implementierung der Vulkan Graphics API für den Google Chrome Browser auf Android. Der Kommentar besagt, dass es irgendwann in der Zukunft „eine Anforderung“ geben wird, die Vulkan API Unterstützung für den Android WebView zu haben, wenn das „[Android] Framework beginnt, Vulkan für HWUI zu verwenden“.

Android-Q-Vulkan-Graphics-UI-Rendering.png
Android Q Vulkan Grafik UI Rendering

Grafik-Rendering in Android

Für Hintergrundwissen ist Skia eine Open Source 2D-Grafik-Engine, die in Google Chrome, Chrome OS, Android, Flutter und anderen großen Projekten verwendet wird. Skia ist eine Grafik-Rendering-Engine, die in frühen Versionen von Android verwendet wurde, um View und Canvas zu rendern (die Klassen, mit denen die Benutzeroberfläche in den meisten Anwendungen erstellt und gezeichnet wurde). Android 3.0 Honeycomb ersetzte Skia teilweise durch HWUI, eine Bibliothek, die Canvas-Befehle in hardwarebeschleunigte OpenGL-Befehle umwandelt, obwohl die 2D Skia-Grafikbibliothek noch in einigen Bereichen wie der Pfadrasterung verwendet wurde. Parallel dazu hat Google auch ein OpenGL-Backend für Skia erstellt. Das Ergebnis ist, dass einige Grafikaufrufe an die Skia-Bibliothek gemacht werden, während andere an das OpenGL-Backend gehen. Um die Grafikarchitektur zu bereinigen, hat Google entschieden, dass HWUI nun mit Skia, das selbst mit seinem hardware-beschleunigten OpenGL-Backend spricht, das UI-Rendering durchführt. Das Ergebnis ist, dass Grafikaufrufe für das UI-Framework einem Pfad folgen und nicht zwei.

Einige von Ihnen erinnern sich vielleicht an eine Entwickleroption namens „Set GPU Renderer“ in den frühen Developer Previews von Android 8.0 Oreo. Mit dieser Entwickleroption konnten Sie HWUI zwingen, Skia und sein hardwarebeschleunigtes OpenGL-Backend als GPU-Renderer für das UI-Framework zu verwenden. Die Entwickleroption wurde entfernt, da dieses Verhalten nun der Standard ist.

Android-O-OpenGL-Skia-1024x450.png
„Set GPU Renderer“ Entwickler-Option in Android O Developer-Preview

Der nächste Schritt von Google zur Verbesserung des Grafik-Renderings ist der Wechsel von einem OpenGL-Hardware-beschleunigten Backend zu einem Vulkan-Hardware-beschleunigten Backend. Es ist keineswegs ein unerwarteter Schritt und eine logische Weiterentwicklung, aber es ist schön zu sehen, dass an der Verbesserung des Grafik-Renderings auf Android gearbeitet wird. Auch wenn der Umzug nicht jede Verzögerung auf Android beheben wird, sollte er die Frame-Renderzeiten reduzieren, indem er die Verarbeitung durch die CPU reduziert. Da es sich hierbei um ein Work-in-Progress handelt, der in Android P noch nicht fertig ist, erwarte ich eher, dass es mit Android Q oder einem anderen zukünftigen Android-Release umgesetzt wird.

Vorschau auf Verwendung der Vulkan API zum Rendern der UI

Es ist aber bereits möglich, das Vulkan-Backend für Skia auf Android P zu testen. Es gibt bereits einen Debug-Parameter, mit dem Ihr Android dazu zwingen könnt, die Skia Vulkan-Pipeline zu verwenden. Startet hierzu Euer Smartphone einfach neu, nachdem Ihr die folgende Zeile zu /system/build.prop hinzugefügt habt:

debug.hwui.renderer=skiavk

WARNUNG! Das Hinzufügen dieser Zeile auf einem Gerät mit Android Oreo führt zu einem Absturz, daher empfehlen wir es nicht.


Während Euer Gerät mit diesem Flag auf Android P booten wird, ist es im Moment ziemlich fehlerhaft. Der Google Pixel Launcher kann meist keine Hintergründe darstellen, animierte Videos in den Einstellungen können nicht geladen werden, und es gibt mehrere grafische Probleme mit der Statusleiste und Benachrichtigungen. Ansonsten scheinen die meisten Apps, sogar YouTube-Videos und Spiele wie Doodle Jump, sehr gut zu laden.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Create a website or blog at WordPress.com

Nach oben ↑

%d Bloggern gefällt das: