Android Q+ võib kasutajaliidese renderdamiseks kasutada Vulkan Graphics API-t

Google'i avatud lähtekoodiga graafikamootoril Skia on Vulkan Graphics API taustaprogramm. Seda taustaprogrammi saab kasutada kasutajaliidese renderdamiseks Android Q või uuemas versioonis.

Androidi järgmine suurem versioon Android 9 peaks ilmuma järgmisel kuul mitme seadme jaoks. Erinevalt Android Oreost, kus peamised täiustused olid enamasti kapoti all, pakub Android P rohkem kasutajale suunatud funktsioone nagu uuendatud kasutajaliides, navigeerimisliides ja digitaalne heaolu, jätkates samal ajal tööd projektiga Kõrged. Kuid kulisside taga on Google muutnud graafika renderdamise toimimist Androidis. Android Oreos alustas Google Skia graafikamootori OpenGL-i riistvarakiirendusega taustaprogrammi testimist, mis valmis Android P-s. Google ei peatu sellega, kuna ettevõte kavatseb selle juurutada Vulkani taustaprogramm Skia graafikamootorist, mis jõuab Android Q-sse või hilisemasse versiooni.

Tõendid selle kohta pärinevad a kommenteerida Google'i insener esitatud avatud lähtekoodiga Chromium Gerritis. Kommentaar viitab veaaruandele Vulkan Graphics API eelseisva juurutamise kohta Google Chrome'i brauseris Androidis. Kommentaaris öeldakse, et millalgi tulevikus "on nõue" omada Vulkan API-d Android WebView tugi, kui raamistik [Android] hakkab Vulkani jaoks kasutama HWUI."


Graafika renderdamine Androidis

Taustateadmiste saamiseks on Skia avatud lähtekoodiga 2D-graafikamootor, mida kasutatakse Google Chrome'is, Chrome OS-is, Androidis, Flutteris ja muudes suuremates projektides. Skia on graafika renderdusmootor, mida kasutati Androidi varasemates versioonides renderdamiseks Vaade ja Lõuend (klassid, mida kasutati enamiku rakenduste kasutajaliidese koostamiseks ja joonistamiseks.) Android 3.0 Honeycomb asendas Skia osaliselt HWUI-ga, teisendava teegiga Canvas käsud riistvarakiirendatud OpenGL-i käskudeks, kuigi 2D Skia graafikateeki kasutati endiselt mõnes valdkonnas, näiteks tee rasterdamine. Paralleelselt lõi Google Skia jaoks ka OpenGL-i taustaprogrammi. Tulemuseks on see, et mõned graafikakõned tehakse Skia teeki, teised aga OpenGL-i taustaprogrammi. Graafikaarhitektuuri puhastamiseks otsustas Google, et HWUI suhtleb nüüd kasutajaliidese renderdamiseks Skiaga, kes ise suhtleb oma riistvarakiirendusega OpenGL-i taustaprogrammiga. Tulemuseks on see, et kasutajaliidese raamistiku graafikakutsed järgivad ühte teed, mitte kahte.

Mõned teist võivad mäletada arendajavalikut nimega "GPU renderdaja määramine" Android 8.0 Oreo varajastes arendaja eelvaadetes. See arendaja valik võimaldas teil sundida HWUI-d kasutama kasutajaliidese raamistiku GPU renderdajana Skiat ja selle riistvarakiirendusega OpenGL-i taustaprogrammi. Arendaja valik eemaldati, kuna see käitumine on nüüd vaikeseade.

Arendaja valik „Määra GPU renderer” Android O arendaja eelvaadetes

Järgmine Google'i samm graafika renderdamise parandamiseks on üleminek OpenGL-i riistvarakiirendusega taustaprogrammilt Vulkani riistvarakiirendusega taustaprogrammile. See pole sugugi ootamatu samm ja on loogiline edasiminek, kuid tore on näha, et Androidis tehakse tööd graafika renderdamise täiustamiseks. Kuigi see liigutus ei paranda kõiki Androidi viivitusallikaid, peaks see vähendama kaadri renderdusaega, vähendades protsessori töötlust. Arvestades, et tegemist on suures osas pooleli oleva tööga (Android P puhul on see lõpetamata), eeldame, et see käivitatakse koos Android Q või mõne muu tulevase Androidi versiooniga.


Eelvaade Vulkan Graphics API kasutamisest kasutajaliidese renderdamiseks

Tegelikult on nüüd võimalik Android P-s Skia jaoks mõeldud Vulkani taustaprogrammi testida. Seal on silumisparameeter, mille saate määrata, et sundida Androidi kasutama Skia Vulkani torujuhet. Pärast järgmise rea lisamist faili /system/build.prop lihtsalt taaskäivitage:

debug.hwui.renderer=skiavk

Selle rea lisamine seadmesse, kus töötab Android Oreo, põhjustab krahhi, seega me seda ei soovita. Kuigi teie seade käivitub selle lipuga Android P-s, on see praegu üsna lollakas. Google Pixel Launcher ei suuda enamasti tausta renderdada, animeeritud videoid seadetes ei õnnestu laadida ning olekuribal ja teatistes on mitmeid graafilisi tõrkeid. Peale selle näib, et enamik rakendusi, isegi YouTube'i videod ja mängud, nagu Doodle Jump, laadivad hästi.

Suur tänu XDA tunnustatud arendajale luca020400 abi eest selle artikli kirjutamisel, lahtivõetud koodi libhwui.so kuvavate ekraanipiltide esitamise ja Vulkani taustaprogrammi testimiseks silumislipu andmise eest.


Allikas 1: Talkin’ Treble: kuidas Androidi insenerid võidavad killustatuse vastases sõjas [ArsTechnica]

Allikas 2: Android Graphics Pipeline: nupust kaadripuhvrini [inovexi blogi]

Allikas 3: Skia veebileht [Google]

Allikas 4: Romain Guy, Android Graphicsi ja Kotlini kommentaarid @ Google [Reddit]