DSU Loader v sistemu Android 11 razvijalcem pomaga pri testiranju aplikacij v sistemu Android

click fraud protection

Android 11 bo opremljen z DSU Loader v možnostih za razvijalce, ki vam bo omogočil samodejno prenašanje in namestitev združljivih GSI! Berite naprej za več!

Dober ekosistem aplikacij je eden najpomembnejših stebrov uspeha operacijskega sistema. Tako Google kot Apple priznavata vrednost dobrih aplikacij na svojih platformah, zato obe podjetji poskušata uravnotežiti potrebe svojih uporabnikov in razvijalcev aplikacij. Uporabniki si še naprej prizadevajo za spremembe v operacijskih sistemih in čeprav večina ljudi na splošno ceni nove funkcije, te spremembe niso vedno zabavne za razvijalce aplikacij, saj lahko spremenijo veliko osnovnih funkcij in obnašanje. Za razvijalce, ki si nenehno prizadevajo, da bi njihove aplikacije ostale relevantne, se ukvarjanje s temi spremembami dodaja na njihov naraščajoči seznam dela. Tudi če te spremembe ne vplivajo neposredno na njihove aplikacije, morajo razvijalci še vedno zagotoviti, da bodo njihove aplikacije delovale na novi posodobitvi OS. Google je v preteklih letih izvedel veliko sprememb, da bi olajšal ta postopek za razvijalce aplikacij za Android, zdaj pa novo Funkcija v Androidu 11, imenovana DSU Loader, bo razvijalcem aplikacij še olajšala preizkušanje njihovih aplikacij v novem Androidu. različice.

Začne se s projektom Treble

Projekt Treble, predstavljen v sistemu Android 8.0, je pomemben preoblikovanje operacijskega sistema Android. Cilj projekta Treble je bil razdeliti operacijski sistem Android na dva velika dela: ogrodje in izvedbo prodajalca. ("prodajalec" se tukaj nanaša na izdelovalca katere koli lastniške komponente strojne opreme, ki se nahaja v napravi, običajno se nanaša na silicij). Ogrodje OS Android je sam operacijski sistem, vključno z vsemi sistemskimi aplikacijami, uporabniškim vmesnikom in njegovimi komponentami ter API-ji, ki so v skupni rabi med napravami Android. Izvedba proizvajalca vsebuje HAL (plasti abstrakcije strojne opreme) proizvajalca ter jedro Linuxa in module jedra Linuxa.

Ker proizvajalci originalne opreme pošiljajo pametne telefone s številnimi različnimi komponentami strojne opreme različnih proizvajalcev, morajo opraviti veliko dela, da strojno opremo zaženejo in začne delovati v eni izdaji OS Android. Z vsako novo posodobitvijo OS Android morajo opraviti še več dela, da zagotovijo, da njihova strojna oprema deluje z novo različico. Toda s projektom Treble, ki standardizira ABI (Application Binary Interface) med ogrodjem OS Android in HAL za določeno različico Androida, Proizvajalci originalne opreme za Android lahko začnejo preizkušati posodobitve svojih naprav, ne da bi morali čakati, da proizvajalci silicija in drugi izdelovalci komponent posodobijo svojo stran kodo. Ta sprememba se je opazno pospešila način obravnave posodobitev za Android.

To je bistvo tega, kar je Project Treble naredil za posodobitve za Android, toda kaj je bolj pomembno za aplikacijo razvijalci tukaj je, da je Treble omogočil uporabo generičnih sistemskih slik (GSI) za združljivost testiranje.

Pojav GSI

Da bi proizvajalci originalne opreme lahko preizkusili, ali so pravilno implementirali projekt Treble, Google zahteva, da mora proizvajalec originalne opreme imeti možnost zagnati čisto različico Androida iz AOSP v napravi. Ta čista zgradba Androida se imenuje Generic System Image ali GSI. Če se GSI zažene in večina osnovne strojne opreme deluje pravilno, proizvajalec originalne opreme ve, da njegova naprava izpolnjuje zahteve projekta Treble. Prvotni namen GSI je bil torej testiranje združljivosti visokih tonov, a kot smo videli pri razvojni skupnosti tukaj pri XDA-Developers, jih je mogoče uporabiti za druge namene. Videli smo, kako GSI bi lahko v bistvu omogočil napravam s težkimi uporabniškimi vmesniki Android, da uživajo v najnovejši različici Androida z delujočimi funkcijami v nekaj dneh po novi izdaji. Toda Google si za GSI predstavlja še en namen: razvijalcem aplikacij omogočiti, da preizkusijo svoje aplikacije v novi različici Androida na fizični napravi, ki jo že imajo.

Z Androidom 10 je Google izdal lastne različice GSI za razvijalce. Google je utrdil zamisel, da bi morali razvijalci aplikacij uporabiti GSI za zagon čiste zgradbe Androida na lastni strojni opremi, kar bi olajšalo testiranje obnašanja njihove aplikacije v primerjavi z osnovnim Androidom. Ta metoda je tako dodana obstoječim možnostim testiranja združljivosti aplikacij na standardnem Androidu brez sprememb vedenja OEM, druge pa so z uporabo pametnega telefona Pixel, z uporabo uradnega Android Emulatorja v Android Studiu ali uvajanjem gradenj aplikacije v instanco naprave v oblaku.

Kljub vsej ugodnosti, ki so jo prinesli GSI, je bila njihova namestitev še vedno okoren postopek. Razvijalci aplikacij morda ne bodo zadovoljni z ročnim utripanjem sistemske slike na napravi Android, saj je to nekaj, kar običajno poznajo samo ljubitelji ali razvijalci OS Android. Namestitev GSI je zahtevala utripanje sistemske slike prek hitrega zagona, kar zahteva onemogočanje Android Verified Boot in odklepanje zagonskega nalagalnika. Odklepanje zagonskega nalagalnika pa zahteva popolno brisanje uporabniških podatkov. In kot vsi vemo, ne obstaja točno en postopek ali vodnik za odklepanje zagonskega nalagalnika vsake naprave Android, zato ni mogoče najti doslednosti. Naprave Samsung na primer nimajo hitrega zagona, medtem ko naprave Xiaomi poskrbijo, da skočite skozi nekaj obročev, da odklenete zagonski nalagalnik. To je priročna zmešnjava, ki jo je mogoče razplesti v nekaj enostavnejšega.

Tukaj pridejo na vrsto dinamične sistemske posodobitve.

Dinamične posodobitve sistema preprosto namestijo GSI

Google je spoznal, da trenutna metoda namestitve GSI-jev ni popolna rešitev, zato so začeli delati na boljši rešitvi. V Androidu 10, Google je začel testirati dinamične sistemske posodobitve, ali DSU. DSU je nov način za začasno namestitev GSI, ne da bi morali uporabiti ukaze hitrega zagona za bliskavico sistemske slike, ki prepiše prvotno namestitev. Z DSU se lahko zaženete v GSI, preizkusite svojo aplikacijo in nato priročno znova zaženete nazaj v prvotno namestitev, ki je ostala nedotaknjena.

Razlog, da lahko DSU namesti GSI, ne da bi se dotaknil izvirne namestitve, je ta, da ustvari nove slike sistema in podatkovnih particij, ki so začasno shranjene v /data/gsi. Te slike se nato priklopijo med zagonom namesto izvirnega sistema in podatkovnih particij. Ker telefon potrebuje dodaten prostor za shranjevanje teh novih, začasnih slik, mora imeti vaš telefon na krovu "logične particije", ki so particije, ki jim je mogoče dinamično spreminjati velikost. Logične particije so nov sistem particioniranja uporabniškega prostora za Android, ki je obvezen za naprave, ki se zaženejo z Androidom 10. Če je bila vaša naprava zagnana z Androidom 10, bi morala podpirati namestitev GSI prek DSU.

V sistemu Android 10 je vse, kar morate storiti, da namestite GSI prek DSU je spremeniti sistemsko lastnost in nato zagnati DynamicSystemUpdatesInstallationService s pošiljanjem namena s potjo do GSI kot dodatka namena.

Čeprav se ta postopek morda zdi nepoznan, je v primerjavi z uporabo veliko lažji in manj vsiljiv ukaze hitrega zagona in reševanje težav pri vsem, vključno z izvirno namestitvijo obrisan. Potrebujete nekaj znanja o ADB in namere za uporabo DSU, vendar to ne bi smelo biti težava za večino razvijalcev aplikacij. Kljub temu ni razloga, da postopka ne bi bilo mogoče še poenostaviti. Poleg tega obstaja dejstvo, da namestitev GSI prek DSU še vedno zahteva, da odklenete zagonski nalagalnik, pri čemer izbrišete vse uporabniške podatke. V ta namen je Google uvedel spremembe za izboljšanje obeh vidikov namestitve GSI. V Androidu 11 so odpravili potrebo po uporabi ukazne vrstice za namestitev GSI. Ločeno so omogočili tudi namestitev GSI brez odklepanja zagonskega nalagalnika.

DSU Loader v sistemu Android 11

DSU Loader je novo orodje, prisotno v možnostih za razvijalce za Android 11, ki vam omogoča, da Prenesi in namestite najnovejši Googlov GSI, ne da bi morali vnašati ukaze za hitri zagon ali ADB. Preprosto tapnite možnost DSU Loader v nastavitvah in prikazalo se bo pogovorno okno s seznamom podprtih GSI neposredno iz Googla. Ti podprti GSI bodo temeljili na vašem trenutnem operacijskem sistemu in arhitekturi, tako da lahko namestite samo GSI, ki so novejši od vaše različice OS in se ujemajo z vašo arhitekturo SoC. Preprosto izberite GSI, ki ga želite namestiti, in samodejno bo prenesen iz Googlovih strežnikov ter nameščen v ozadju.

DSU Loader v sistemu Android 11

Z DSU Loader se razvijalcem nikoli ni treba dotakniti ukazne vrstice za namestitev GSI. Vsaj to so sanje, ker je treba rešiti še eno težavo.

Pot naprej

Za namestitev GSI prek DSU Loader trenutno potrebujete odklenjen zagonski nalagalnik. Čeprav to morda izniči namen celotne preizkušnje, ne bi smelo biti tako in rečeno nam je, da se bo to popravilo. Google je načrtoval, da bodo uporabniki lahko zagnali GSI-je, ki jih je podpisal Google, prek DSU, ne da bi morali odkleniti zagonski nalagalnik. Pravzaprav Google to zahteva vse naprave za zagon Android 10 vključujejo javne ključe Android Verified Boot Android 10, Android 11 in Android 12 GSI, ki jih je podpisal Google. Vključitev javnih ključev AVB v pomnilniški disk naprave bo zagotovila, da AVB ne bo zavrnil GSI, ki ga poskušate zagnati. Zato trenutna metoda vključuje odklepanje zagonskega nalagalnika - z utripanjem prazne slike vbmeta na particijo vbmeta onemogočite AVB, tako da ne bo zavrnil GSI, ki ga nameravate utripati. Onemogočanje AVB pa je veliko varnostno tveganje, saj pomeni, da bodo vse spremenjene particijo system/boot/product/vendor lahko naložite v napravo, zato Google želi stran od te zahteve.

Zahteve za zagon sistema Android 10 GSI

Torej, kdaj lahko pričakujete zagon GSI prek DSU, ne da bi morali odkleniti zagonski nalagalnik ali uporabiti katero koli orodje ukazne vrstice? Upajmo, da kmalu, saj nam je Google omenil, da so morali z začetnimi predogledi za razvijalce za Android 11 odpraviti nekaj zank, preden lahko vse to pravilno delujejo. V prihodnje lahko pričakujemo namestitev prihodnjih GSI-jev za predogled razvijalcev prek DSU, ne da bi bilo treba odkleniti zagonski nalagalnik. Ko bodo na voljo predogledi za razvijalce za Android 12, ga boste morda celo lahko v celoti zagnali z uporabo DSU Loader v možnostih za razvijalce za Android 11. Za razvijalce aplikacij to pomeni, da boste imeli še en način za preizkušanje svojih aplikacij na fizični strojni opremi z novo različico Androida.