„Skia“, „Google“ atvirojo kodo grafikos variklis, turi Vulkan Graphics API užpakalinę programą. Šią užpakalinę programą galima naudoti norint pateikti vartotojo sąsają „Android Q“ ar naujesnėje versijoje.
Kita pagrindinė „Android“ versija „Android 9“ bus išleista kitą mėnesį keliems įrenginiams. Skirtingai nei „Android Oreo“, kur pagrindiniai patobulinimai dažniausiai buvo po gaubtu, „Android P“ siūlo daugiau naudotojams skirtų funkcijų. pvz., atnaujinta vartotojo sąsaja, naršymo gestai ir skaitmeninė gerovė, taip pat tęsiant darbą su projektu Treble. Tačiau užkulisiuose „Google“ atnaujino, kaip grafikos atvaizdavimas veikia „Android“. „Android Oreo“ sistemoje „Google“ pradėjo bandyti „OpenGL“ aparatinės įrangos pagreitintą „Skia“ grafikos variklio užpakalinę programą, kuri buvo baigta „Android P“. Tačiau „Google“ tuo nesustoja, nes bendrovė planuoja įgyvendinti Vulkan backend „Skia“ grafikos variklio, kuris bus paleistas „Android Q“ arba vėlesnėje versijoje.
Tai patvirtina a komentarą pateikė „Google“ inžinierius apie atvirojo kodo „Chromium Gerrit“. Komentaras susijęs su klaidų ataskaita apie būsimą „Vulkan Graphics“ API diegimą „Google Chrome“ naršyklei „Android“. Komentaruose teigiama, kad kada nors ateityje „bus reikalavimas“ turėti Vulkan API „Android WebView“ palaikymas, kai „[Android]“ sistema bus pradėta naudoti „Vulkan for HWUI“.
Grafikos atvaizdavimas Android
Norint gauti pagrindines žinias, „Skia“ yra atvirojo kodo 2D grafikos variklis, naudojamas „Google Chrome“, „Chrome“ OS, „Android“, „Flutter“ ir kituose svarbiuose projektuose. „Skia“ yra grafikos atvaizdavimo variklis, naudojamas ankstesnėse „Android“ versijose pateikti Žiūrėti ir Drobė (klasės, naudojamos daugumos programų NS kūrimui ir piešimui.) „Android 3.0 Honeycomb“ iš dalies pakeitė „Skia“ į HWUI – biblioteką, kuri konvertuoja Drobės komandos į aparatinės įrangos pagreitintas OpenGL komandas, nors 2D Skia grafikos biblioteka vis dar buvo naudojama kai kuriose srityse, pvz., kelio rastravimas. Tuo pačiu metu „Google“ taip pat sukūrė „Skia“ skirtą „OpenGL“ pagrindinę programą. Rezultatas yra tai, kad kai kurie grafiniai skambučiai bus atliekami į Skia biblioteką, o kiti - į OpenGL vidinę programą. Siekdama išvalyti grafikos architektūrą, „Google“ nusprendė, kad HWUI dabar susisieks su „Skia“, kuri pati bendrauja su savo aparatinės įrangos pagreitintu „OpenGL“ pagrindu, kad atliktų vartotojo sąsajos atvaizdavimą. Rezultatas yra tai, kad grafiniai vartotojo sąsajos iškvietimai vyks vienu keliu, o ne dviem.
Kai kurie iš jūsų gali prisiminti kūrėjo parinktį, pavadintą „Nustatyti GPU atvaizdavimo priemonę“, pateiktą ankstyvose „Android 8.0 Oreo“ kūrėjų peržiūrose. Ši kūrėjo parinktis leido priversti HWUI naudoti „Skia“ ir jos aparatinės įrangos pagreitintą „OpenGL“ užpakalinę programą kaip UI sistemos GPU atvaizdavimo priemonę. Kūrėjo parinktis buvo pašalinta, nes dabar ši funkcija yra numatytoji.
Kitas „Google“ žingsnis, siekiant pagerinti grafikos atvaizdavimą, yra pereiti nuo „OpenGL“ aparatinės įrangos pagreitintos užpakalinės programos prie „Vulkan“ aparatinės įrangos pagreitintos užpakalinės sistemos. Tai visai ne netikėtas žingsnis ir logiška pažanga, tačiau malonu matyti, kad dirbama tobulinant grafikos atvaizdavimą „Android“. Nors šis žingsnis nepašalins visų „Android“ vėlavimo šaltinių, jis turėtų sutrumpinti kadrų pateikimo laiką, sumažinant procesoriaus atliekamą apdorojimą. Atsižvelgiant į tai, kad tai yra labai nebaigtas darbas (jis nebaigtas „Android P“), tikimės, kad jis bus paleistas naudojant „Android Q“ arba kitą būsimą „Android“ leidimą.
„Vulkan Graphics“ API naudojimo vartotojo sąsajai pateikti peržiūra
Iš tikrųjų dabar galima išbandyti „Skia“ skirtą „Vulkan“ užpakalinę programą „Android P“. Yra derinimo parametras, kurį galite nustatyti, kad „Android“ naudotų „Skia Vulkan“ dujotiekį. Tiesiog paleiskite iš naujo, pridėję šią eilutę prie /system/build.prop:
debug.hwui.renderer=skiavk
Pridėjus šią eilutę įrenginyje, kuriame veikia „Android Oreo“, įvyks strigtis, todėl to nerekomenduojame. Nors jūsų įrenginys bus paleistas su šia vėliava „Android P“, šiuo metu jis yra gana klaidingas. „Google Pixel Launcher“ dažniausiai nesugeba pateikti jokių fonų, animuoti vaizdo įrašai nustatymuose neįkeliami ir yra keletas grafinių trikdžių, susijusių su būsenos juosta ir pranešimais. Išskyrus tai, dauguma programų, net „YouTube“ vaizdo įrašai ir žaidimai, pvz., „Doodle Jump“, įkeliami puikiai.
Labai ačiū XDA pripažintam kūrėjui luca020400 už pagalbą rašant šį straipsnį, už ekrano kopijas, kuriose rodomas išardytas libhwui.so kodas, ir už tai, kad pateikė derinimo vėliavėlę, kad išbandytų „Vulkan“ pagrindinę programą.
1 šaltinis: Talkin’ Treble: kaip Android inžinieriai laimi karą dėl susiskaidymo [ArsTechnica]
2 šaltinis: Android Graphics Pipeline: From Button to Framebuffer [inovex tinklaraštis]
3 šaltinis: Skia tinklalapis [Google]
4 šaltinis: Romain Guy, Android Graphics ir Kotlin komentarai @ Google [Reddit]