Android Go je Googlova skrajšana različica Androida Oreo 8.1 za nove naprave z malo RAM-a. Izkazalo se je, da lahko pomaga pri razvoju ROM-a po meri tudi na starejših napravah.
Android Go je Googlova skrajšana različica Androida, ki temelji na Androidu 8.1 Oreo, in želi biti optimizirana različica Androida za naprave nižjega cenovnega razreda z 1 GB RAM-a ali manj. Najavljeno je bilo lani maja na konferenci Google I/O Developer in sčasoma je bilo decembra pozneje istega leta razkritih več podrobnosti. Narejen naj bi bil za naslednjo generacijo osnovnih naprav, da bi zagotovil, da tisti v države v razvoju lahko še vedno uporabljajo delujoče pametne telefone za dostop do interneta in uporabljajte aplikacije.
Go ima široko paleto optimizacij delovanja in izboljšav, vključno s tem, da zavzame 50 odstotkov manj prostora za shranjevanje kot povprečna namestitev Android Oreo. Zahvaljujoč Android Runtime (ART) in optimizacijam jedra bo naprava, ki uporablja Android Go, v povprečju delovala 15 odstotkov hitreje kot pri običajni namestitvi Android Oreo na isti napravi. Te optimizacije so narejene s številnimi specializiranimi konfiguracijami gradnje, ki jih je izdelal Google, kar bomo razložili pozneje.
Android Go ima koristi tudi od posebnih »Go« aplikacij, kot je npr Datoteke Go, YouTube Go in Google Maps Go. To so lahke različice aplikacij, ki jih je izdelal Google, ki imajo zmanjšane zahteve za učinkovitejše delovanje. To pomeni, da lahko tisti z napravami Android Go uživajo večino enakih ugodnosti, kot jih lahko uživajo tudi običajni uporabniki Android Oreo uporaba Googlovega nabora aplikacij, ne da bi morali porabiti veliko denarja za vodilni ali celo nekoliko dražji proračun napravo.
Vse je v tem, da Google širi svoj trg. Vendar se postavlja vprašanje, če je Android Go sestavljen večinoma iz konfiguracije gradnje in nabora optimiziranih Googlovih aplikacij, ali lahko razvijalci naredijo lastne različice Android Go? V kratkem, ja lahko.
Nekaj razvijalcev LineageOS že gradi ROM-e po meri, optimizirane za Android Go
Nekateri razvijalci ROM-a po meri, na primer XDA Recognized Developer, že opažajo, da so Android Go nekoliko razširili. AdrianDC, s svojim delom na LineageOS 15.1 s konfiguracijami gradnje Android Go za več starih telefonov Sony. Zadevne naprave so Sony Xperia SP, Sony Xperia T, Sony Xperia V in Sony Xperia TX. Vse te naprave izvirajo iz let 2012 in 2013, vendar bodo prejele LineageOS 15.1, ki temelji na Androidu 8.1 Oreo z uporabo Androida. Konfiguracija Go build, ki lahko napravam omogoča tekoče izvajanje aplikacij Google Go, če bo nabor Gapps za Android Go sčasoma izpuščen.
Vsak posamezen vzdrževalec LOS bi moral imeti možnost predstaviti konfigurirano gradnjo Android Go, pri čemer je to niz konfiguracij gradnje in drugih optimizacij. To pomeni, da bodo tisti, ki so morda kupili na primer Sony Xperia T, napravo s sistemom Android 4.0.4 Ice Cream Sandwich ob predstavitvi, lahko uporabljali bolje optimizirana zgradba Android 8.1 Oreo v napravi, ki uporablja aplikacije, kot sta YouTube Go in Google Maps Go. Ne bo deloval na vodilnih ravneh zmogljivosti, ampak bi moralo biti uporaben—še posebej za napravo iz leta 2012.
Kako lahko Android Go pomaga starejšim telefonom Android, da poganjajo Android Oreo
Konfiguracije gradnje v sistemu Android so nabor parametrov, ki se nanašajo na različne vidike sistema Android in se uporabljajo pri prevajanju sistemske slike za utripanje v napravo. Običajno ti spremenijo obnašanje sistema, od koder izvirajo glavne optimizacije Android Go te konfiguracije gradnje.
Govoril sem s priznanim razvijalcem XDA joshuous, ki mi je zelo pomagal razumeti spremembe, ki so se dogajale – zakaj Android Go resnično deluje. Nekaterih teh konfiguracij gradnje ni mogoče spremeniti brez ponovnega prevajanja in so del načrta samega ROM-a. To so zastave s polno veliko začetnico.
Vse te zastavice pa se nanašajo na veliko različnih vidikov Androida v zvezi s shranjevanjem in uporabo pomnilnika. Tej vključujejo samodejno upravljanje shranjevanja, Androidov ubijalec pomnilnika, dex (dalvik nprIzvršljive datoteke) optimizator in omejitve RAM-a za izvajanje aplikacij. Datoteke APK so sestavljene iz teh datotek DEX, tako da si lahko na nek način predstavljate datoteko APK preprosto kot Datoteka ZIP, ki vsebuje veliko datotek .dex, kar Android pravzaprav zažene, ko izvede aplikacija. Samodejno upravljanje shranjevanja bo namesto tega nadzirala aplikacija Files Go in ne sistem Android.
Pripomočki Android Go Androidov način nizke količine RAM-a
V Androidu 4.4 KitKat je Google predstavil novo zastavico, imenovano "nizko-ram", ki je bil namenjen podpori naprav s 512 MB RAM-a. Omogoča številne optimizacije sistema. Te spremembe so zelo koristne za naprave z nižjo porabo RAM-a.
Izboljšano upravljanje pomnilnika
- Preverjene konfiguracije jedra za varčevanje s pomnilnikom: Zamenjaj v ZRAM.
- Ubijte predpomnjene procese, če bodo predpomnjeni in preveliki.
- Ne dovolite velikim storitvam, da se vrnejo v storitve A (tako da ne morejo povzročiti uničenja zaganjalnika).
- Ubijte procese (tudi tiste, ki jih običajno ni mogoče uničiti, kot je trenutni IME), ki postanejo preveliki med vzdrževanjem v mirovanju.
- Serializirajte zagon storitev v ozadju.
- Prilagojena uporaba pomnilnika naprav z nizko porabo RAM-a: strožja raven prilagajanja pomanjkanja pomnilnika (OOM), manjši grafični predpomnilniki itd.
Te zgornje spremembe v bistvu zagotavljajo, da sistem poskrbi za uporabo stisnjenega RAM-a, kjer je to mogoče, z uporabo ZRAM-a. ZRAM je v bistvu RAMdisk (medij za shranjevanje, ki uporablja RAM, veliko hitreje kot uporaba običajnega pomnilnika v napravi) kot izmenjalna datoteka. Izmenjalna datoteka se uporabi, ko je uporaba RAM-a visoka in aplikacije še vedno potrebujejo pomnilnik. To je veliko, veliko počasnejše od RAM-a in se mu je treba izogibati, kjer je to mogoče. V bistvu preprosto stisne vsebino pomnilnika.
Zmanjšan sistemski pomnilnik
- Obrezana procesa system_server in SystemUI (prihranjenih več MB).
- Prednaloži predpomnilnike dex v Dalvik (prihranjenih več MB).
- Preverjena možnost izklopa JIT (prihrani do 1,5 MB na proces).
- Zmanjšana obremenitev predpomnilnika pisave na proces.
- Predstavljen ArrayMap/ArraySet in se obširno uporablja v ogrodju kot lažja zamenjava za HashMap/HashSet.
Kar se tukaj večinoma dogaja, je le zmanjšana poraba pomnilnika zaradi različnih procesov, ki se izvajajo v napravi, da bi bili čim bolj konzervativni. Bistvene sistemske storitve so bile odstranjene, da bi v ozadju uporabljale čim manj pomnilnika, saj je vsak megabajt RAM-a pomemben.
Android Go uporablja spremenjen program za uničevanje nizke količine pomnilnika in optimizacije dex
Glede na to, da je Android Go namenjen predvsem napravam z 1 GB RAM-a ali manj, bo potrebno bolj agresivno upravljanje pomnilnika. Android Go spremeni Low Memory Killer (LMK) na nekaj različnih načinov. Prvič, ko je porabljena velika količina RAM-a, preide ubijalec nizkega pomnilnika na "kritični pritisk" država. To je zato, ker ko je poraba pomnilnika visoka, bo sistem postal počasen zaradi nenehnih poskusov dostopa do izmenjalne datoteke v pomnilniku naprave. Ohranjanje praznega pomnilnika RAM bo preprečilo, da bi sistem moral uporabiti to izmenjalno datoteko, in preprečilo razbijanje pomnilnika. Izguba pomnilnika se pojavi, ko je pomnilnik naprave poln, in mora nenehno stran s swap datoteko v pomnilniku naprave, kar močno poslabša zmogljivost.
Storitve in storitve WiFi so nastavljene na "hitrostni profil,« kar pomeni, da so izbrane metode v teh storitvah prevedene vnaprej (AOT). (Metoda se nanaša na niz kode, ki jo je mogoče kadar koli priklicati po imenu.) To zmanjša uporabo RAM-a in shranjevanje, saj sistemu Android ne bo treba nenehno znova prevajati bistvenih storitev, ki se izvajajo na napravo. Medtem so APK-ji v skupni rabi nastavljeni na »hitro«, kar je zasnovano tako, da zagotavlja dodatno življenjsko dobo baterije in dodatne cikle procesorja z optimizacijo navodil dex za boljšo zmogljivost.
Kar zadeva optimizacije dex, Android Go naredi precej. Za začetek po 10 dneh bo znižati aplikacijo če se ne uporablja za prihranek prostora. Vrnitev na prejšnjo različico se tukaj ne nanaša na zmanjšanje dejanske številke različice aplikacije, temveč pomeni, da bo dalvik_cache za aplikacijo izbrisan. Predpomnilnik Dalvik se uporablja tako, da napravi ni treba znova prevajati aplikacij, namesto tega prevaja samo najbolj potrebne dele in jih predpomni. Ostalo se prevede s prevajalnikom Just in Time (JIT), ko se aplikacija izvaja. Če aplikacije ne uporabljate 10 dni, se odstranijo tudi bistveni deli aplikacije, ki so vnaprej prevedeni. To se naredi, da se sprosti čim več prostora. Druga preprosta sprememba je, da uporaba RAM-a aplikacije ne sme preseči 256 MB, tako da aplikacija ne more uporabiti vsega RAM-a v napravi.
Ali je Android Go prihodnost razvoja ROM-a po meri na napravah nižjega cenovnega razreda?
Trenutno ne poznamo odgovora na to, vendar je prihodnost za razvoj ROM-a po meri na starejših napravah videti svetla. Morda obstajajo druge težave pri uvajanju novejše različice Androida v napravi, vendar v teoriji nadgradnja na bolj optimiziran Android Go, ki temelji na Android Oreo naj izboljšati delovanje starejše naprave nižjega cenovnega razreda.