Android Q+ var izmantot Vulkan Graphics API, lai renderētu lietotāja interfeisu

Google atvērtā pirmkoda grafikas dzinējam Skia ir Vulkan Graphics API aizmugursistēma. Šo aizmugursistēmu var izmantot, lai renderētu lietotāja interfeisu operētājsistēmā Android Q vai jaunākā versijā.

Nākamā lielākā Android versija Android 9 tiks izlaista nākamajā mēnesī vairākām ierīcēm. Atšķirībā no Android Oreo, kur galvenie uzlabojumi galvenokārt bija zem pārsega, Android P piedāvā vairāk lietotājiem paredzētu funkciju. piemēram, atjauninātais lietotāja interfeiss, navigācijas žesti un digitālā labklājība, vienlaikus turpinot darbu pie projekta Treble. Taču aizkulisēs Google ir mainījis grafikas renderēšanas darbību operētājsistēmā Android. Operētājsistēmā Android Oreo Google sāka testēt ar OpenGL aparatūras paātrinātu aizmugursistēmu Skia grafikas dzinējam, kas tika pabeigts operētājsistēmā Android P. Tomēr Google neapstājas, jo uzņēmums plāno ieviest Vulkan aizmugure Skia grafikas dzinēju, kas tiks ievietots operētājsistēmā Android Q vai jaunākā versijā.

Pierādījumi tam nāk no a komentēt

iesniedza Google inženieris par atvērtā pirmkoda Chromium Gerrit. Komentārs attiecas uz kļūdu ziņojumu par gaidāmo Vulkan Graphics API ieviešanu pārlūkprogrammai Google Chrome operētājsistēmā Android. Komentārā teikts, ka kaut kad nākotnē "būs prasība" izmantot Vulkan API Android WebView atbalsts, kad [Android] sistēma sāks izmantot Vulkan for HWUI."


Grafikas renderēšana operētājsistēmā Android

Lai iegūtu pamatzināšanas, Skia ir atvērtā pirmkoda 2D grafikas programma, kas tiek izmantota pārlūkprogrammās Google Chrome, Chrome OS, Android, Flutter un citos lielos projektos. Skia ir grafikas renderēšanas dzinējs, ko atveidošanai izmanto sākotnējās Android versijās Skatīt un Audekls (klases, ko izmantoja, lai izveidotu un zīmētu lietotāja interfeisu lielākajā daļā lietotņu.) Android 3.0 Honeycomb daļēji aizstāja Skia ar HWUI — bibliotēku, kas pārvērš Canvas komandas aparatūras paātrinātās OpenGL komandās, lai gan 2D Skia grafikas bibliotēka joprojām tika izmantota dažās jomās, piemēram, ceļš rasterizācija. Paralēli Google izveidoja arī OpenGL aizmugursistēmu Skia. Rezultātā daži grafikas zvani tiks veikti uz Skia bibliotēku, bet citi tiks novirzīti uz OpenGL aizmugursistēmu. Lai iztīrītu grafikas arhitektūru, Google nolēma, ka HWUI tagad sazināsies ar Skia, kas pati sazinās ar savu aparatūras paātrināto OpenGL aizmugursistēmu, lai veiktu lietotāja interfeisa renderēšanu. Rezultāts ir tāds, ka lietotāja interfeisa ietvara grafikas izsaukumiem būs viens ceļš, nevis divi.

Daži no jums, iespējams, atceras izstrādātāja opciju “Iestatīt GPU renderētāju” Android 8.0 Oreo agrīnajos izstrādātāju priekšskatījumos. Šī izstrādātāja opcija ļāva piespiest HWUI izmantot Skia un tās aparatūras paātrināto OpenGL aizmugursistēmu kā GPU renderētāju lietotāja interfeisa sistēmai. Izstrādātāja opcija tika noņemta, jo šī darbība tagad ir noklusējuma iestatījums.

Izstrādātāja opcija “Iestatīt GPU renderētāju” Android O izstrādātāju priekšskatījumos

Nākamais Google solis, lai uzlabotu grafikas renderēšanu, ir pārslēgties no OpenGL aparatūras paātrinātas aizmugursistēmas uz Vulkan aparatūras paātrinātu aizmugursistēmu. Tas nepavisam nav negaidīts solis un ir loģisks virziens, taču ir patīkami redzēt, ka tiek veikts darbs pie grafikas renderēšanas uzlabošanas operētājsistēmā Android. Lai gan šī kustība nenovērsīs visus Android aizkaves avotus, tai vajadzētu samazināt kadru renderēšanas laiku, samazinot procesora veikto apstrādi. Ņemot vērā, ka šis ir ļoti nepabeigts darbs (operētājsistēmā Android P tas ir nepabeigts), mēs sagaidām, ka tas tiks palaists ar Android Q vai citu turpmāko Android versiju.


Priekšskatījums par Vulkan Graphics API izmantošanu lietotāja interfeisa renderēšanai

Tagad faktiski ir iespējams pārbaudīt Skia Vulkan aizmugursistēmu operētājsistēmā Android P. Ir atkļūdošanas parametrs, kuru varat iestatīt, lai piespiestu Android izmantot Skia Vulkan konveijeru. Vienkārši atsāknējiet pēc šādas rindas pievienošanas failam /system/build.prop:

debug.hwui.renderer=skiavk

Pievienojot šo rindiņu ierīcē, kurā darbojas Android Oreo, radīsies avārija, tāpēc mēs to neiesakām. Lai gan jūsu ierīce tiks sāknēta ar šo karogu operētājsistēmā Android P, tā pašlaik ir diezgan kļūdaina. Google pikseļu palaišanas programmai lielākoties neizdodas atveidot fonu, neizdodas ielādēt animētos videoklipus sadaļā Iestatījumi, un statusa joslā un paziņojumos ir vairākas grafiskas kļūmes. Izņemot to, šķiet, ka lielākā daļa lietotņu, pat YouTube videoklipi un spēles, piemēram, Doodle Jump, tiek ielādētas lieliski.

Liels paldies XDA Recognized Developer luca020400 par palīdzību šī raksta tapšanā, par ekrānuzņēmumu nodrošināšanu, kas parāda izjaukto libhwui.so kodu, un par atkļūdošanas karoga nodrošināšanu Vulkan aizmugursistēmas testēšanai.


1. avots: Talkin’ Treble: kā Android inženieri uzvar karā pret sadrumstalotību [ArsTechnica]

2. avots: Android Graphics Pipeline: no pogas līdz kadru buferim [inovex emuārs]

3. avots: Skia tīmekļa lapa [Google]

4. avots: Romaina Gaja, Android Graphics un Kotlinas komentāri @ Google [Reddit]