Az Android Q+ a Vulkan Graphics API-t használhatja a felhasználói felület megjelenítéséhez

A Skia, a Google nyílt forráskódú grafikus motorja Vulkan Graphics API háttérrendszerrel rendelkezik. Ez a háttérrendszer használható a felhasználói felület megjelenítésére Android Q vagy újabb verziókban.

Az Android következő nagyobb verziója, az Android 9 a jövő hónapban jelenik meg több eszközön is. Az Android Oreóval ellentétben, ahol a fő fejlesztések többnyire a motorháztető alatt történtek, az Android P több felhasználóbarát funkciót kínál. mint például a megújult felhasználói felület, a navigációs gesztusok és a Digital Wellbeing, miközben a Projecten is folytatjuk a munkát Tripla. De a színfalak mögött a Google megújította a grafikai megjelenítés működését Androidon. Az Android Oreo rendszerben a Google elkezdte tesztelni az OpenGL hardveresen gyorsított hátterét a Skia grafikus motorhoz, amely az Android P verzióban készült el. A Google azonban nem áll meg itt, mivel a vállalat a megvalósítását tervezi Vulkan háttérprogram a Skia grafikus motorja, amely Android Q-ban vagy egy későbbi kiadásban fog landolni.

Ennek bizonyítékai a megjegyzés a Google mérnöke által benyújtott nyílt forráskódú Chromium Gerrit. A megjegyzés egy hibajelentésre vonatkozik, amely a Vulkan Graphics API közelgő megvalósításáról szól a Google Chrome böngészőhöz Androidon. A megjegyzés azt állítja, hogy valamikor a jövőben "követelmény lesz" a Vulkan API használatára az Android WebView támogatása, amikor az „[Android] keretrendszer elkezdi használni a Vulkan for HWUI."


Grafikus renderelés Androidon

A háttérismeretekhez a Skia egy nyílt forráskódú, 2D grafikus motor, amelyet a Google Chrome-ban, a Chrome OS-ben, az Android-ban, a Flutterben és más nagyobb projektekben használnak. A Skia egy grafikus renderelő motor, amelyet az Android korai verzióiban használtak a megjelenítéshez Kilátás és Vászon (a legtöbb alkalmazásban a felhasználói felület felépítéséhez és rajzolásához használt osztályok.) Az Android 3.0 Honeycomb részben a Skiát váltotta fel a HWUI könyvtárra, amely konvertálja Canvas parancsokat hardveresen gyorsított OpenGL-parancsokká alakítanak át, bár a 2D Skia grafikus könyvtárat még mindig használták bizonyos területeken, például az útvonalon raszterezés. Ezzel párhuzamosan a Google OpenGL-háttérrendszert is készített a Skiához. Az eredmény az, hogy egyes grafikus hívások a Skia könyvtárba, míg mások az OpenGL háttérrendszerbe mennek. A grafikus architektúra megtisztítása érdekében a Google úgy döntött, hogy a HWUI mostantól a Skiával, amely maga is a hardvergyorsítású OpenGL-háttérrendszerével kommunikál a felhasználói felület renderelésével kapcsolatban. Az eredmény az, hogy az UI keretrendszer grafikus hívásai egy utat követnek, és nem kettőt.

Néhányan emlékezhetnek az Android 8.0 Oreo korai fejlesztői előnézetében található „GPU renderelő beállítása” nevű fejlesztői opcióra. Ez a fejlesztői beállítás lehetővé tette, hogy a HWUI-t arra kényszerítse, hogy a Skiát és annak hardvergyorsított OpenGL-háttérrendszerét használja GPU-megjelenítőként a felhasználói felület keretrendszeréhez. A fejlesztői beállítást eltávolítottuk, mivel most ez a viselkedés az alapértelmezett.

A „GPU renderelő beállítása” fejlesztői opció az Android O fejlesztői előnézeteiben

A Google következő lépése a grafikai megjelenítés javítására az, hogy egy OpenGL hardvergyorsítású háttérrendszerről Vulkan hardvergyorsítású háttérrendszerre vált. Ez egyáltalán nem váratlan lépés, és logikus előrelépés, de öröm látni, hogy folyik a munka az Android grafikus megjelenítésének javításán. Bár a lépés nem javítja ki az Android minden késleltetési forrását, csökkenti a képkocka renderelési idejét a CPU által végzett feldolgozás csökkentésével. Tekintettel arra, hogy ez egy nagyon folyamatban lévő munka (az Android P-ben még nincs befejezve), várhatóan az Android Q-val vagy egy másik jövőbeli Android-kiadással fog megjelenni.


A Vulkan Graphics API használatának előnézete a felhasználói felület renderelésére

Valójában most már tesztelhető a Skia Vulkan háttérrendszere Android P-n. Van egy hibakeresési paraméter, amelyet beállíthat, hogy az Androidot a Skia Vulkan folyamat használatára kényszerítse. Egyszerűen indítsa újra, miután hozzáadta a következő sort a /system/build.prop fájlhoz:

debug.hwui.renderer=skiavk

Ennek a sornak az Android Oreo-t futtató eszközön történő hozzáadása összeomláshoz vezet, ezért nem javasoljuk. Bár eszköze ezzel a jelzővel fog elindulni Android P-n, jelenleg meglehetősen hibás. A Google Pixel Launcher többnyire nem képes megjeleníteni a háttereket, az animált videók a Beállításokban nem töltődnek be, és számos grafikus hiba van az állapotsoron és az értesítéseken. Ettől eltekintve a legtöbb alkalmazás, még a YouTube-videók és a játékok, például a Doodle Jump is, úgy tűnik, jól betöltődnek.

Köszönöm szépen az XDA Recognized Developer-nek luca020400 a cikk megírásában nyújtott segítségükért, a szétszerelt libhwui.so kódot bemutató képernyőképek készítéséért, valamint a hibakeresési jelző megadásáért a Vulkan háttérrendszer teszteléséhez.


1. forrás: Talkin’ Treble: Hogyan nyerik meg az Android mérnökei a töredezettség elleni háborút [ArsTechnica]

2. forrás: Android Graphics Pipeline: From Button to Framebuffer [inovex blog]

3. forrás: Skia weboldala [Google]

4. forrás: Romain Guy, Android Graphics és Kotlin @ Google megjegyzései [Reddit]