Kuidas Android Go võib aidata vanematel Android-telefonidel käitada operatsioonisüsteemi Android 8.1 Oreo

Android Go on Google'i vähendatud versioon Android Oreo 8.1-st uutele vähese RAM-i seadmetele. Nagu selgub, võib see aidata kohandatud ROM-i arendamist ka vanemates seadmetes.

Android Go on Google'i vähendatud versioon Androidist, mis põhineb Android 8.1 Oreol ja selle eesmärk on olla Androidi optimeeritud versioon madalama hinnaga seadmetele, millel on 1 GB või vähem RAM-i. Sellest teatati eelmise aasta mais Google I/O Developer konverentsil ja lõpuks selgus rohkem üksikasju sama aasta detsembris. Väidetavalt on see mõeldud järgmise põlvkonna algtaseme seadmete jaoks, et tagada, et need on arengumaad saavad endiselt kasutada toimivaid nutitelefone, et pääseda juurde Internetile ja kasutada rakendusi.

Go pakub laias valikus jõudluse optimeerimisi ja täiustusi, sealhulgas 50 protsenti vähem salvestusruumi kui keskmine Android Oreo installimine. Tänu Android Runtime'ile (ART) ja ka tuuma optimeerimisele töötab Android Go'd kasutav seade keskmiselt 15 protsenti kiiremini kui tavaline Android Oreo installimine samasse seadmesse. Need optimeerimised tehakse mitmete Google'i tehtud spetsiaalsete ehituskonfiguratsioonide kaudu, mida selgitame hiljem.

Android Go kasu on ka spetsiaalsetest "Go" rakendustest, nagu Failid lähevad, YouTube Go ja Google Maps Go. Need on Google'i loodud rakenduste kerged versioonid, mille tõhusamaks töötamiseks on väiksemad nõuded. See tähendab, et need, kellel on Android Go seadmed, saavad nautida enamikku samu eeliseid, mida saavad ka tavalised Android Oreo kasutajad Google'i rakenduste komplekti kasutamine, ilma et peaksite lipulaeva või isegi veidi kallima eelarve jaoks palju raha kulutama seade.

See kõik seisneb selles, et Google laiendab oma turgu. Siiski tekitab küsimus, et kui Android Go koosneb peamiselt järgu konfiguratsioonist ja optimeeritud Google'i rakenduste komplektist, kas arendajad saavad siis ise Android Go järge teha? Lühidalt, jah me saame.

Mõned LineageOS-i arendajad loovad juba Android Go jaoks optimeeritud kohandatud ROM-e

Me näeme juba Android Go mõningast kasutuselevõttu mõne kohandatud ROM-i arendajalt, näiteks XDA tunnustatud arendajalt AdrianDC, oma tööga LineageOS 15.1 koos Android Go ehituskonfiguratsioonidega mitu vana Sony telefoni. Kõne all olevad seadmed on Sony Xperia SP, Sony Xperia T, Sony Xperia V ja Sony Xperia TX. Kõik need seadmed pärinevad aastast 2012 ja 2013, kuid need saavad Android 8.1 Oreol põhineva LineageOS 15.1, kasutades Androidi Go buildi konfiguratsioon, mis võib lubada seadmetel Google'i Go rakendusi sujuvalt käitada, kui Android Go Gappsi komplekt peaks lõpuks olema vabastatud.

Iga üksik LOS-i hooldaja peaks saama kasutusele võtta Android Go konfigureeritud järgu, mis on järgu konfiguratsioonide ja muude optimeerimiste komplekt. See tähendab, et need, kes on ostnud näiteks Sony Xperia T – seadme, mille käivitamisel töötab Android 4.0.4 Ice Cream Sandwich, saavad kasutada Android 8.1 Oreo paremini optimeeritud versioon seadmes, kasutades selliseid rakendusi nagu YouTube Go ja Google Maps Go. See ei tööta tipptasemel jõudlusel, aga peaks olema kasutatav—eriti seadme puhul, mis pärineb aastast 2012.


Kuidas Android Go võib aidata vanematel Android-telefonidel käitada Android Oreot

Ehitamise konfiguratsioonid Androidis on parameetrite kogum, mis on seotud Androidi süsteemi erinevate aspektidega, mida rakendatakse süsteemipildi koostamisel seadmesse vilkumiseks. Tavaliselt muudavad need süsteemi käitumist ja Android Go peamised optimeerimised tulenevad need ehituskonfiguratsioonid.

Järgukonfiguratsioonid, mida kasutatakse Android Go kompileerimiseks.

Rääkisin XDA tunnustatud arendajaga joshuus, kes aitas mul oluliselt mõista toimuvaid muudatusi – mis paneb Android Go tegelikult tööle. Mõnda neist ehituskonfiguratsioonidest ei saa ilma ümberkompileerimiseta muuta ja need on osa ROM-i enda plaanist. Need on täistähtedega lipud.

Kõik need lipud puudutavad aga Androidi paljusid erinevaid aspekte, mis on seotud salvestusruumi ja mälukasutusega. Need sisaldavad automaatne salvestushaldus, Androidi vähese mälu tapja, dex (dalvik ntkäivitatavad failid) optimeerija ja RAM-i piirangud rakenduste käitamiseks. APK-failid koosnevad nendest DEX-failidest, nii et teatud mõttes on võimalik APK-faili pidada lihtsalt ZIP-fail, mis sisaldab palju .dex-faile, mis on tegelikult see, mida Android käivitab, kui ta käivitab rakendus. Automaatset salvestushaldust juhib selle asemel rakendus Files Go, mitte Android-süsteem.

Android Go Utilities Androidi vähese RAM-i režiim

Android 4.4 KitKatis tutvustas Google uut lippu nimega "madala rammuga", mille eesmärk oli toetada seadmeid 512 MB RAM-iga. See teeb süsteemis mitmeid optimeerimisi. Need muudatused on väiksema RAM-i seadmetele väga kasulikud.

Täiustatud mäluhaldus

  • Valideeritud mälu säästvad kerneli konfiguratsioonid: vaheta ZRAM-ile.
  • Lõpetage vahemällu salvestatud protsessid, kui need on puhverdatud ja liiga suured.
  • Ärge lubage suurtel teenustel end uuesti A-teenuste alla seada (et need ei saaks käivitaja surma põhjustada).
  • Lõpetage protsessid (isegi tavaliselt tapmatud, nagu praegune IME), mis muutuvad tühikäigul hoolduses liiga suureks.
  • Sarjastage taustteenuste käivitamine.
  • Vähese RAM-iga seadmete häälestatud mälukasutus: rangemad out-of-memory (OOM) reguleerimistasemed, väiksemad graafika vahemälud jne.

Need ülaltoodud muudatused tagavad põhimõtteliselt selle, et süsteem kasutab ZRAM-i abil võimaluse korral tihendatud RAM-i. ZRAM on põhimõtteliselt RAM-ketas (salvestusmeedium, mis kasutab RAM-i palju kiiremini kui seadme tavamälu kasutamine) vahetusfailina. Vahetusfaili kasutatakse siis, kui RAM-i kasutus on suur ja rakendused vajavad endiselt mälu. See on palju-palju aeglasem kui RAM ja seda tuleks võimalusel vältida. Sisuliselt tihendab see lihtsalt mälu sisu.

Vähendatud süsteemimälu

  • Kärbitud system_server ja SystemUI protsessid (salvestatud mitu MB).
  • Eellaadige Dalvikis dexi vahemälud (salvestati mitu MB).
  • Valideeritud JIT-off valik (säästab kuni 1,5 MB protsessi kohta).
  • Vähendatud protsessipõhise fondi vahemälu üldkulud.
  • Kasutusele võeti ArrayMap/ArraySet ja seda kasutatakse laialdaselt raamistikus HashMap/HashSeti kergema jalajälje asendajana.

See, mis siin enamasti toimub, on lihtsalt erinevate seadmes töötavate protsesside mälukulu vähendamine, et olla võimalikult konservatiivne. Olulised süsteemiteenused on eemaldatud, et kasutada taustal võimalikult vähe mälu, kuna iga RAM-i megabait on oluline.

Android Go kasutab modifitseeritud vähese mälu tapja ja dex-optimeerimisi

Arvestades, et Android Go on mõeldud peamiselt 1 GB või vähema RAM-iga seadmetele, on vaja agressiivsemat mäluhaldust. Android Go muudab funktsiooni Low Memory Killer (LMK) mitmel erineval viisil. Esiteks, kui suur hulk RAM-i on ära kasutatud, läheb vähese mälu hävitaja "kriitiline surve" olek. Selle põhjuseks on asjaolu, et kui mälukasutus on suur, muutub süsteem loiuks, kuna üritab pidevalt pääseda juurde seadme mälus olevale vahetusfailile. RAM-i vabana hoidmine takistab süsteemil seda vahetusfaili kasutamast ja väldib mälu peksmist. Mälu tühjenemine toimub siis, kui seadme mälu on täis ja peab pidevalt vahetusfaili seadme salvestusruumis lehitsema, mis halvendab oluliselt jõudlust.

Teenused ja WiFi-teenused on seatud väärtusele "kiirus-profiil”, mis tähendab, et nende teenuste valitud meetodid koostatakse ennetähtaegselt (AOT). (Meetod viitab koodikomplektile, mida saab igal hetkel nime järgi kutsuda.) See vähendab RAM-i kasutamist ja salvestusruumi, kuna Android-süsteem ei pea pidevalt ümber kompileerima olulisi teenuseid, mis töötavad seade. Samal ajal on jagatud APK-d seatud olekusse "kiire", mis on loodud aku pikemaks tööeaks ja protsessori töötsükli pikendamiseks, optimeerides parema jõudluse saavutamiseks dexi juhiseid.

Deksi optimeerimise osas teeb Android Go üsna palju ära. Alustuseks on see 10 päeva pärast rakenduse madalamale versioonile üleminek kui seda ruumi säästmiseks ei kasutata. Siin alandamine ei viita rakenduse tegelikule versiooninumbrile, vaid see tähendab, et rakenduse dalvik_cache kustutatakse. Dalviki vahemälu kasutatakse selleks, et seade ei pea äppe ümber kompileerima, vaid kompileerib sellest vaid kõige vajalikumad osad ja salvestab selle vahemällu. Ülejäänud osa kompileeritakse rakenduse käivitamisel just in Time (JIT) kompilaatori abil. Kui aga taotlust 10 päeva jooksul ei kasutata, siis eemaldatakse ka taotluse olulised osad, mis on eelnevalt koostatud. Seda tehakse selleks, et vabastada võimalikult palju ruumi. Veel üks lihtne muudatus on see, et rakenduse RAM-i kasutusel ei lubata ületada 256 MB, nii et rakendus ei saa kasutada kogu seadme RAM-i.


Kas Android on kohandatud ROM-i arenduse tulevik madalama hinnaga seadmetes?

Praegu me sellele vastust ei tea, kuid tulevik näeb vanemate seadmete kohandatud ROM-i arendamiseks helge. Seadmes Androidi uuema versiooni käivitamisel võib esineda muid probleeme, kuid teoreetiliselt on tegemist Android Oreol põhineva optimeeritud Android Go versiooni uuendamisega. peaks panna vanem ja odav seade paremini töötama.