Android Go je odstránená verzia systému Android Oreo 8.1 od spoločnosti Google pre nové zariadenia s nízkou pamäťou RAM. Ako sa ukázalo, môže to pomôcť pri vývoji vlastnej pamäte ROM aj na starších zariadeniach.
Android Go je skrátená verzia systému Android od spoločnosti Google založená na systéme Android 8.1 Oreo a jeho cieľom je byť optimalizovanou verziou systému Android pre zariadenia nižšej kategórie s 1 GB RAM alebo menej. Bolo to oznámené vlani v máji na konferencii Google I/O Developer a nakoniec sa v decembri neskôr toho roku odhalili ďalšie podrobnosti. Bolo povedané, že bol vyrobený pre ďalšiu generáciu zariadení základnej úrovne, aby sa zabezpečilo, že tie v rozvojové krajiny môžu na prístup na internet stále využívať fungujúce smartfóny používať aplikácie.
Go má širokú škálu optimalizácií výkonu a vylepšení vrátane toho, že zaberá o 50 percent menej úložného priestoru ako priemerná inštalácia Android Oreo. Vďaka Android Runtime (ART) a optimalizácii jadra bude zariadenie so systémom Android Go fungovať v priemere o 15 percent rýchlejšie ako pri bežnej inštalácii Android Oreo na rovnakom zariadení. Tieto optimalizácie sa vykonávajú prostredníctvom množstva špecializovaných konfigurácií zostavy od spoločnosti Google, ktoré si vysvetlíme neskôr.
Android Go ťaží aj zo špeciálnych „Go“ aplikácií, ako napr Files Go, YouTube Go a Google Maps Go. Ide o odľahčené verzie aplikácií od spoločnosti Google, ktoré majú znížené požiadavky na efektívnejšie fungovanie. To znamená, že používatelia so zariadeniami Android Go môžu využívať väčšinu rovnakých výhod, aké môžu využívať aj bežní používatelia systému Android Oreo používanie balíka aplikácií Google bez toho, aby ste museli míňať veľa peňazí na vlajkovú loď alebo dokonca mierne drahší rozpočet zariadenie.
Všetko je to o tom, že Google rozširuje svoj trh. Napriek tomu vyvstáva otázka, že ak Android Go pozostáva väčšinou z konfigurácie zostavy a sady optimalizovaných aplikácií Google, môžu vývojári vytvárať svoje vlastné zostavy Android Go? V skratke, Áno, môžme.
Niekoľko vývojárov LineageOS už vytvára vlastné ROM optimalizované pre Android Go
Už sme svedkami toho, že niektorí vývojári prispôsobených ROM, ako napríklad XDA Recognized Developer, do určitej miery prebrali Android Go. AdrianDC, s jeho prácou na LineageOS 15.1 s konfiguráciami zostavenia Android Go pre niekoľko starých telefónov Sony. Ide o zariadenia Sony Xperia SP, Sony Xperia T, Sony Xperia V a Sony Xperia TX. Všetky tieto zariadenia pochádzajú z rokov 2012 a 2013, no dostanú LineageOS 15.1 založený na Androide 8.1 Oreo s Androidom. Konfigurácia zostavy Go, ktorá môže zariadeniam umožniť plynulé spúšťanie aplikácií Google „Go“, ak by mala byť sada Gapps pre Android Go prepustený.
Každý jednotlivý správca LOS by mal byť schopný predstaviť zostavenie nakonfigurované pre Android Go, pričom ide o súbor konfigurácií zostavy a iných optimalizácií. To znamená, že tí, ktorí si kúpili napríklad Sony Xperia T, zariadenie so systémom Android 4.0.4 Ice Cream Sandwich pri uvedení na trh, budú môcť používať lepšie optimalizované zostavenie systému Android 8.1 Oreo na zariadení s využitím aplikácií, ako sú YouTube Go a Google Maps Go. Nebude bežať na úrovni vlajkovej lode výkonu, ale malo by byť použiteľné—najmä pre zariadenie z roku 2012.
Ako môže Android Go pomôcť starším telefónom s Androidom so systémom Android Oreo
Konfigurácie zostavy v systéme Android sú množinou parametrov, ktoré sa týkajú rôznych aspektov systému Android, ktoré sa používajú pri kompilácii obrazu systému na flashovanie do zariadenia. Tieto zmeny zvyčajne menia spôsob, akým sa systém správa, a z toho pochádzajú hlavné optimalizácie Android Go tieto konfigurácie zostavy.
Hovoril som s XDA Recognized Developer joshuous, ktorý mi veľmi pomohol pochopiť zmeny, ku ktorým dochádzalo – vďaka čomu Android Go skutočne funguje. Niektoré z týchto konfigurácií zostavenia nemožno zmeniť bez rekompilácie a sú súčasťou návrhu samotnej ROM. Toto sú vlajky s veľkými písmenami.
Všetky tieto príznaky sa však týkajú mnohých rôznych aspektov systému Android týkajúcich sa úložiska a využitia pamäte. Tie obsahujú automatická správa úložiska, zabijak nízkej pamäte Androidu, dex (dalvik naprspustiteľné súbory) optimalizátor a limity RAM pre spustené aplikácie. Súbory APK pozostávajú z týchto súborov DEX, takže určitým spôsobom je možné súbor APK považovať za ZIP, ktorý obsahuje veľa súborov .dex, čo je vlastne to, čo Android spúšťa pri spustení aplikácie. Automatickú správu úložiska bude namiesto toho ovládať aplikácia Files Go, nie systém Android.
Android Go Utilities Režim Android s nízkou RAM
V systéme Android 4.4 KitKat spoločnosť Google predstavila nový príznak s názvom „nízky baran“, ktorý bol zameraný na podporu zariadení s 512 MB RAM. Vykonáva množstvo optimalizácií systému. Tieto zmeny sú veľmi prospešné pre zariadenia s nižšou RAM.
Vylepšená správa pamäte
- Overené konfigurácie jadra šetriace pamäť: Vymeňte za ZRAM.
- Zabite procesy uložené vo vyrovnávacej pamäti, ak sa majú uvoľniť z vyrovnávacej pamäte a sú príliš veľké.
- Nedovoľte, aby sa veľké služby vrátili späť do služieb A (takže nemôžu spôsobiť zabitie spúšťača).
- Zabíjajte procesy (dokonca aj obyčajne nezničiteľné, ako je súčasný editor IME), ktoré sa pri nečinnosti príliš zväčšia.
- Serializujte spustenie služieb na pozadí.
- Vyladené využitie pamäte zariadeniami s nízkou RAM: prísnejšie úrovne úprav pri nedostatku pamäte (OOM), menšie grafické vyrovnávacie pamäte atď.
Vyššie uvedené zmeny v podstate zabezpečujú, že systém zaisťuje používanie komprimovanej pamäte RAM tam, kde je to možné, pomocou ZRAM. ZRAM je v podstate RAMdisk (pamäťové médium, ktoré používa RAM oveľa rýchlejšie ako bežné úložisko v zariadení) ako odkladací súbor. Odkladací súbor sa používa, keď je využitie RAM vysoké a aplikácie stále vyžadujú pamäť. Toto je oveľa, oveľa pomalšie ako RAM a treba sa mu vyhnúť, ak je to možné. V podstate jednoducho komprimuje obsah pamäte.
Znížená systémová pamäť
- Orezané procesy system_server a SystemUI (ušetrené niekoľko MB).
- Predbežné načítanie vyrovnávacej pamäte dex v Dalviku (ušetrilo sa niekoľko MB).
- Overená možnosť vypnutia JIT (ušetrí až 1,5 MB na proces).
- Znížená réžia vyrovnávacej pamäte fontov pre jednotlivé procesy.
- Predstavil ArrayMap/ArraySet a vo veľkej miere sa používa v rámci ako ľahšia náhrada za HashMap/HashSet.
To, čo sa tu väčšinou deje, je len znížená spotreba pamäte z rôznych procesov bežiacich na zariadení, aby sme boli čo najkonzervatívnejší. Základné systémové služby boli odstránené, aby využívali čo najmenej pamäte na pozadí, pretože každý megabajt pamäte RAM je dôležitý.
Android Go používa upravený nástroj Low Memory Killer a optimalizácie dex
Vzhľadom na to, že Android Go je určený hlavne pre zariadenia s 1 GB RAM alebo menej, bude potrebné agresívnejšie spravovanie pamäte. Android Go upravuje funkciu Low Memory Killer (LMK) niekoľkými rôznymi spôsobmi. Po prvé, keď sa spotrebuje veľké množstvo pamäte RAM, zabiják nízkej pamäte sa zmení na "kritický tlak" štát. Je to preto, že keď je využitie pamäte vysoké, systém bude pomalý kvôli neustálemu pokusu o prístup k odkladaciemu súboru v úložisku zariadenia. Udržiavaním voľnej pamäte RAM predídete tomu, že systém bude musieť použiť tento odkladací súbor a zabráni vybitiu pamäte. K prebíjaniu pamäte dochádza, keď je pamäť zariadenia plná a neustále sa musí stránkovať odkladací súbor v úložisku zariadenia, čím sa výrazne znižuje výkon.
Služby a WiFi služby sú nastavené na "rýchlostný profil“, čo znamená, že vybrané metódy v týchto službách sú kompilované vopred (AOT). (Metóda sa vzťahuje na sadu kódov, ktoré možno kedykoľvek volať podľa mena.) To znižuje využitie pamäte RAM a úložisko, pretože systém Android nebude musieť neustále prekompilovať základné služby, ktoré bežia na zariadenie. Medzitým sú zdieľané súbory APK nastavené na „rýchle“, čo je navrhnuté tak, aby predĺžilo výdrž batérie a extra cykly CPU optimalizáciou pokynov dex na dosiahnutie lepšieho výkonu.
Čo sa týka optimalizácií dex, Android Go robí pomerne veľa. Na začiatok to bude po 10 dňoch downgrade aplikácie ak sa nepoužíva na úsporu miesta. Prechod na staršiu verziu sa tu netýka zníženia skutočného čísla verzie aplikácie, ale skôr to znamená, že dalvik_cache pre aplikáciu bude vymazaná. Cache Dalvik sa používa na to, aby zariadenie nemuselo prekompilovať aplikácie, namiesto toho kompiluje len jej najnutnejšie časti a ukladá ich do vyrovnávacej pamäte. Zvyšok sa skompiluje pomocou kompilátora Just in Time (JIT) pri spustení aplikácie. Ak sa však aplikácia 10 dní nepoužíva, odstránia sa aj podstatné časti aplikácie, ktoré sú predkompilované. To sa robí, aby sa uvoľnilo čo najviac miesta. Ďalšou jednoduchou zmenou je, že využitie pamäte RAM aplikáciou nepresiahne 256 MB, takže aplikácia nemôže využiť celú pamäť RAM v zariadení.
Je Android Go budúcnosťou vlastného vývoja ROM na zariadeniach nižšej kategórie?
V súčasnosti na to nepoznáme odpoveď, ale budúcnosť vyzerá jasne pre vlastný vývoj ROM na starších zariadeniach. Pri spustení novšej verzie systému Android na zariadení sa môžu vyskytnúť ďalšie problémy, ale teoreticky ide o inováciu na optimalizovanejšiu verziu systému Android Go založenú na systéme Android Oreo. by mal zlepšiť fungovanie staršieho zariadenia nižšej kategórie.