Android 11-ga on arendaja valikutes kaasas DSU Loader, mis võimaldab ühilduvad GSI-d automaatselt alla laadida ja installida! Loe edasi!
Hea rakenduste ökosüsteem on operatsioonisüsteemi edu üks olulisemaid alustalasid. Nii Google kui ka Apple mõistavad heade rakenduste olemasolu nende platvormidel ja seetõttu püüavad mõlemad ettevõtted oma kasutajate ja rakenduste arendajate vajadusi tasakaalustada. Kasutajad nõuavad pidevalt OS-ide muutmist ja kuigi enamik inimesi hindab üldiselt uusi funktsioone, siis need muudatused ei ole rakenduste arendajatele alati lõbusad, kuna need võivad muuta paljusid põhifunktsioone ja käitumine. Arendajate jaoks, kes töötavad pidevalt oma rakenduste asjakohasena hoidmise nimel, lisab nende muudatustega tegelemine nende kasvavale töönimekirjale. Isegi kui need muudatused nende rakendusi otseselt ei mõjuta, peavad arendajad siiski veenduma, et nende rakendused töötavad uue OS-i värskendusega. Google on aastate jooksul teinud palju muudatusi, et muuta see protsess Androidi rakenduste arendajatele lihtsamaks, ja nüüd uus Android 11 funktsioon nimega DSU Loader muudab rakenduste arendajatel oma rakenduste testimise uues Androidis veelgi lihtsamaks versioonid.
See algab projektiga Treble
Android 8.0-s kasutusele võetud projekt Treble on oluline Android OS-i uuesti arhitektuur. Projekti Treble eesmärk oli jagada Android OS kaheks suureks osaks: raamistik ja müüja rakendus ("müüja" viitab siin seadmes leiduva mis tahes patenteeritud riistvarakomponendi tootjale, viidates tavaliselt räni). Android OS-i raamistik on operatsioonisüsteem ise, sealhulgas kõik süsteemirakendused, kasutajaliides ja selle komponendid ning API-d, mis on jagatud Android-seadmete vahel. Tarnija rakendus sisaldab hankija HAL-e (riistvaraabstraktsioonikihte) ning Linuxi tuuma ja Linuxi tuumamooduleid.
Kuna originaalseadmete tootjad tarnivad nutitelefone paljude erinevate riistvarakomponentidega paljudelt erinevatelt müüjatelt, peavad nad tegema palju tööd, et riistvara ühe Android OS-i versiooniga tööle saada. Seejärel peavad nad iga uue Android OS-i värskendusega tegema veelgi rohkem tööd, et tagada nende riistvara uue versiooniga töötamine. Kuid kuna Project Treble standardib Android OS-i raamistiku ja HAL-ide vahelise ABI (Application Binary Interface) teatud Androidi versiooni jaoks, Androidi originaalseadmete tootjad saavad alustada oma seadmete värskenduste testimist, ilma et nad peaksid ootama, kuni ränitootjad ja muud komponentide tootjad värskendavad kood. See muutus kiirenes märgatavalt Androidi värskenduste käsitlemise viis.
See on sisu, mida Project Treble on Androidi värskenduste jaoks teinud, kuid mis on veelgi olulisem rakenduste jaoks arendajad siin on see, et Treble on võimaldanud ühilduvuse tagamiseks kasutada GSI-sid (Generic System Images) testimine.
GSI tekkimine
Selleks, et originaalseadmete tootjad saaksid testida, kas nad on Project Treble'i õigesti rakendanud, nõuab Google, et originaalseadmete valmistaja peaks saama seadmes AOSP-st Androidi puhta järgu käivitada. Seda Androidi puhast versiooni nimetatakse üldiseks süsteemipildiks või GSI-ks. Kui GSI käivitub ja enamik elementaarseid riistvara töötab korralikult, siis OEM teab, et nende seade vastab Project Treble'i nõuetele. GSI-de esialgne eesmärk oli seega Treble'i ühilduvuse testimine, kuid nagu oleme siin XDA-Developersi arenduskogukonnaga näinud, saab neid kasutada ka muudel eesmärkidel. Nägime, kuidas GSI-d võib sisuliselt võimaldada raskete Android UX-iga seadmetel nautida Androidi uusimat versiooni koos tööfunktsioonidega mõne päeva jooksul pärast uut väljalaset. Kuid Google näeb GSI taga teist eesmärki: anda rakenduste arendajatele võimalus testida oma rakendusi uues Androidi versioonis füüsilises seadmes, mis neile juba kuulub.
Android 10-ga andis Google välja oma GSI järgud arendajatele. Google kinnitas ideed, et rakenduste arendajad peaksid kasutama GSI-d, et käivitada oma riistvaras puhas Androidi versioon, mis muudab rakenduse käitumise testimise varasema Androidi suhtes lihtsamaks. See meetod lisas seega olemasolevatele Android-seadmetes rakenduste ühilduvuse testimise võimalustele ilma OEM-i käitumist muutmata, teised on kasutades Pixeli nutitelefoni, kasutades Android Studio ametlikku Androidi emulaatorit või juurutades rakenduse järge pilves olevale seadme eksemplarile.
Vaatamata kogu GSI-de pakutavale mugavusele oli nende paigaldamine siiski tülikas protsess. Rakenduste arendajatele ei pruugi Android-seadmes süsteemipildi käsitsi vilkumine meeldida, kuna seda tunnevad tavaliselt ainult harrastajad või Android OS-i arendajad. GSI installimine eeldas süsteemipildi vilkumist kiirkäivituse kaudu, mis nõuab Android Verified Boot keelamist ja alglaaduri avamist. Alglaaduri avamine nõuab omakorda täielikku kasutajaandmete kustutamist. Ja nagu me kõik teame, pole iga Android-seadme alglaaduri avamiseks täpselt ühte protsessi ega juhendit, seega pole järjepidevust leida. Näiteks Samsungi seadmetel pole kiirkäivitust, samas kui Xiaomi seadmed panevad alglaaduri avamiseks mõne ringi hüppama. See on mugav jama, mis võib millekski lihtsamaks lahti harutada.
Siin tulevad kasutusele dünaamilised süsteemivärskendused.
Dünaamilised süsteemivärskendused lihtsalt GSI-de installimisega
Google mõistis, et praegune GSI-de paigaldamise meetod ei olnud ideaalne lahendus, mistõttu nad hakkasid töötama parema lahenduse kallal. Android 10-s Google alustas dünaamiliste süsteemivärskenduste testimistvõi DSU. DSU on uus viis GSI ajutiseks installimiseks, ilma et oleks vaja kasutada kiirkäivituskäske süsteemi kujutise vilkumiseks, kirjutades algse installi üle. DSU-ga saate algkäivitada GSI-sse, testida oma rakendust ja seejärel mugavalt taaskäivitada oma algsesse installatsiooni, mis on jäänud puutumata.
Põhjus, miks DSU saab installida GSI ilma algset installi puudutamata, on see, et see loob uued süsteemi- ja andmepartitsiooni kujutised, mis salvestatakse ajutiselt /data/gsi. Need pildid paigaldatakse alglaadimise ajal, mitte algsete süsteemi- ja andmepartitsioonidega. Kuna telefon vajab nende uute ajutiste piltide jaoks täiendavat salvestusruumi, peavad teie telefonil olema "loogilised vaheseinad", mis on dünaamiliselt muudetavate suurustega partitsioonid. Loogilised partitsioonid on Androidi uus kasutajaruumi jaotussüsteem, mis on Android 10-ga käivituvate seadmete jaoks kohustuslik. Kui teie seade käivitati operatsioonisüsteemiga Android 10, peaks see toetama GSI-de installimist DSU kaudu.
Android 10 puhul on kõik, mida peate tegema installige GSI DSU kaudu on muuta süsteemi atribuuti ja seejärel käivitada DynamicSystemUpdatesInstallationService saates kavatsuse lisana GSI-le tee.
Kuigi see protsess võib tunduda võõras, on see kasutamisega võrreldes palju lihtsam ja vähem pealetükkiv kiirkäivituskäskude ja kõigega, sealhulgas algse installimisega seotud probleemidega tegelemine pühitud. DSU kasutamiseks on teil vaja mõningaid teadmisi ADB-st ja kavatsustest, kuid see ei tohiks olla probleem enamiku rakenduste arendajate jaoks. Siiski pole põhjust, miks protsessi ei saaks veelgi lihtsamaks muuta. Lisaks on tõsiasi, et GSI installimine DSU kaudu nõuab siiski alglaaduri avamist, pühkides protsessi käigus kõik kasutajaandmed. Sel eesmärgil on Google rakendanud muudatusi, et parandada GSI installimise mõlemat aspekti. Android 11-s on nad kõrvaldanud vajaduse GSI installimiseks kasutada käsurida. Eraldi on need võimaldanud ka GSI installimise ilma alglaadurit avamata.
DSU laadija Android 11-s
DSU Loader on Android 11 arendaja valikutes olev uus tööriist, mis võimaldab teil seda teha lae alla ja installida Google'i uusim GSI, ilma et oleks vaja sisestada kiirkäivitus- või ADB-käske. Lihtsalt puudutage seadetes valikut DSU laadija ja kuvatakse dialoogiboks toetatud GSI-de loendiga otse Google'ilt. Need toetatud GSI-d põhinevad teie praegusel OS-il ja arhitektuuril, nii et saate installida ainult GSI-sid, mis on uuemad kui teie OS-i versioon ja mis vastavad teie SoC-arhitektuurile. Valige lihtsalt GSI, mida soovite installida, ja see laaditakse Google'i serveritest alla ja installitakse automaatselt taustale.
DSU Loaderiga ei pea arendajad kunagi GSI installimiseks puudutama käsurida. Vähemalt see on unistus, sest üks probleem on veel lahendada.
Edasine tee
Praegu vajate GSI installimiseks DSU-laaduri kaudu lukustamata alglaadurit. Kuigi see võib lüüa kogu katsumuse eesmärgi, ei peaks see nii olema ja meile öeldakse, et see lahendatakse. Google on kavandanud, et kasutajad saavad DSU kaudu Google'i allkirjastatud GSI-sid käivitada ilma alglaadurit avamata. Tegelikult nõuab Google seda kõik Android 10 käivitusseadmed sisaldavad Android Verified Boot avalikke võtmeid Google'i allkirjastatud Android 10, Android 11 ja Android 12 GSI-dest. AVB avalike võtmete lisamine seadme mälukettale tagab, et AVB ei lükka tagasi GSI-d, mida proovite käivitada. Seetõttu hõlmab praegune meetod alglaaduri avamist – tühja vbmeta kujutise vilkumisega vbmeta partitsioonile keelate AVB, et see ei lükkaks tagasi GSI-d, mida kavatsete vilkuma hakata. AVB keelamine on siiski suur turvarisk, kuna see tähendab, et kõik muudetakse süsteemi/käivituse/toote/müüja partitsiooni saab seadmesse laadida, mistõttu Google soovib seda teha sellest nõudest loobuda.
Niisiis, millal võite oodata GSI käivitamist DSU kaudu, ilma et peaksite alglaadurit avama või käsureatööriistu kasutama? Loodetavasti peagi, kuna Google meile mainis, et neil tuli Android 11 esialgsete arendaja eelvaadetega mõned nipid lahendada, enne kui nad saavad selle kõik korralikult tööle panna. Edaspidi võib eeldada, et tulevased arendaja eelvaate GSI-d installitakse DSU kaudu, ilma et oleks vaja alglaadurit avada. Võimalik, et kui Android 12 arendaja eelvaated on kättesaadavaks tehtud, saate selle isegi täielikult käivitada, kasutades DSU laadijat Android 11 arendaja valikutes. Rakenduste arendajate jaoks tähendab see, et teil on veel üks võimalus testida oma rakendusi füüsilisel riistvaral, mis käitab uut Androidi versiooni.