Android Q+ lahko za upodabljanje uporabniškega vmesnika uporablja API Vulkan Graphics

Skia, Googlov odprtokodni grafični mehanizem, ima zaledje Vulkan Graphics API. To zaledje se lahko uporabi za upodabljanje uporabniškega vmesnika v sistemu Android Q ali novejšem.

Naslednja večja različica Androida, Android 9, naj bi izšla naslednji mesec za več naprav. Za razliko od Androida Oreo, kjer so bile glavne izboljšave večinoma skrite, Android P ponuja več uporabniško usmerjenih funkcij kot so prenovljeni uporabniški vmesnik, navigacijske kretnje in digitalno dobro počutje, hkrati pa nadaljuje delo na projektu Visoki toni. Toda v zakulisju je Google prenovil delovanje upodabljanja grafike v sistemu Android. V sistemu Android Oreo je Google začel preizkušati strojno pospešeno zaledje OpenGL za grafični mehanizem Skia, ki je bilo dokončano v sistemu Android P. Vendar se Google tu ne ustavi, saj namerava podjetje uvesti Zaledje Vulkan grafičnega motorja Skia, ki bo pristal v Androidu Q ali kasnejši izdaji.

Dokaz za to prihaja iz a komentar predložil Googlov inženir za odprtokodni Chromium Gerrit. Komentar se nanaša na poročilo o napaki pri prihajajoči implementaciji API-ja Vulkan Graphics za brskalnik Google Chrome v sistemu Android. Komentar navaja, da bo nekoč v prihodnosti "obstajala zahteva" po API-ju Vulkan podpora za Android WebView, ko bo ogrodje [Android] začelo uporabljati Vulkan za HWUI."


Upodabljanje grafike v sistemu Android

Za osnovno znanje je Skia odprtokodni 2D grafični mehanizem, ki se uporablja v Google Chromu, Chrome OS, Androidu, Flutterju in drugih večjih projektih. Skia je mehanizem za upodabljanje grafike, ki se uporablja v zgodnjih različicah Androida za upodabljanje Pogled in Platno (razredi, ki se uporabljajo za izdelavo in risanje uporabniškega vmesnika v večini aplikacij.) Android 3.0 Honeycomb je delno nadomestil Skia s HWUI, knjižnico, ki pretvarja Ukaze Canvas v strojno pospešene ukaze OpenGL, čeprav je bila 2D grafična knjižnica Skia še vedno uporabljena na nekaterih področjih, kot je pot rastrizacija. Vzporedno je Google ustvaril tudi zaledje OpenGL za Skia. Rezultat tega je, da bi bili nekateri grafični klici opravljeni v knjižnico Skia, medtem ko bi drugi šli v zaledje OpenGL. Da bi očistil grafično arhitekturo, se je Google odločil, da se bo HWUI zdaj pogovarjal s Skio, ki se sama pogovarja s svojim strojno pospešenim zaledjem OpenGL, da izvede upodabljanje uporabniškega vmesnika. Rezultat je, da bodo grafični klici za ogrodje uporabniškega vmesnika sledili eni poti in ne dvema.

Nekateri se morda spomnite možnosti za razvijalce, imenovane »Nastavi upodabljalnik GPU« v zgodnjih predogledih za razvijalce za Android 8.0 Oreo. Ta možnost za razvijalce vam je omogočila, da prisilite HWUI, da uporablja Skia in njegovo strojno pospešeno zaledje OpenGL kot upodabljalnik GPU za ogrodje uporabniškega vmesnika. Možnost razvijalca je bila odstranjena, saj je to vedenje zdaj privzeto.

Možnost razvijalca »Nastavi upodabljalnik GPU« v predogledih za razvijalce za Android O

Naslednja poteza Googla za izboljšanje upodabljanja grafike je prehod s strojno pospešenega zaledja OpenGL na strojno pospešeno zaledje Vulkan. To sploh ni nepričakovana poteza in je logičen napredek, vendar je lepo videti, da se dela na izboljšanju upodabljanja grafike v sistemu Android. Čeprav ta poteza ne bo odpravila vseh virov zakasnitve v sistemu Android, bi morala skrajšati čas upodabljanja okvirjev z zmanjšanjem obdelave, ki jo izvaja CPE. Glede na to, da je to še v teku (je nedokončano v Androidu P), pričakujemo, da bo predstavljeno z Androidom Q ali drugo prihodnjo izdajo Androida.


Predogled uporabe API-ja Vulkan Graphics za upodabljanje uporabniškega vmesnika

Zdaj je dejansko mogoče preizkusiti zaledje Vulkan za Skia v sistemu Android P. Obstaja parameter za odpravljanje napak, ki ga lahko nastavite, da Android prisili k uporabi cevovoda Skia Vulkan. Preprosto znova zaženite, ko dodate naslednjo vrstico v /system/build.prop:

debug.hwui.renderer=skiavk

Če dodate to vrstico v napravi s sistemom Android Oreo, bo prišlo do zrušitve, zato tega ne priporočamo. Medtem ko se bo vaša naprava zagnala s to zastavico v sistemu Android P, je trenutno precej hrošč. Zaganjalnik Google Pixel večinoma ne upodablja nobenega ozadja, animirani videoposnetki v nastavitvah se ne naložijo in obstaja več grafičnih napak v vrstici stanja in obvestilih. Razen tega se zdi, da se večina aplikacij, celo videoposnetki v YouTubu in igre, kot je Doodle Jump, dobro nalagajo.

Najlepša hvala XDA Recognized Developer luca020400 za njihovo pomoč pri pisanju tega članka, za zagotavljanje posnetkov zaslona, ​​ki prikazujejo razstavljeno kodo libhwui.so, in za zagotavljanje zastavice za odpravljanje napak za testiranje ozadja Vulkan.


Vir 1: Talkin’ Treble: Kako inženirji Androida zmagujejo v vojni proti razdrobljenosti [ArsTechnica]

Vir 2: Android Graphics Pipeline: From Button to Framebuffer [blog inovex]

Vir 3: Spletna stran Skia [Google]

Vir 4: Komentarji Romain Guy, Android Graphics & Kotlin @ Google [Reddit]