Kako Android Go može pomoći starijim Android telefonima da pokreću Android 8.1 Oreo

click fraud protection

Android Go je Googleova skraćena verzija Androida Oreo 8.1 za nove uređaje s malo RAM-a. Kako se ispostavilo, to bi moglo pomoći u razvoju prilagođenog ROM-a i na starijim uređajima.

Android Go je Googleova skraćena verzija Androida temeljena na Androidu 8.1 Oreo, a cilj mu je biti optimizirana verzija Androida za uređaje niske klase s 1 GB RAM-a ili manje. Najavljeno je prošlog svibnja na konferenciji Google I/O Developer, i na kraju je više detalja otkriveno u prosincu kasnije te godine. Rečeno je da je napravljen za sljedeću generaciju uređaja početne razine, kako bi se osiguralo da oni u zemlje u razvoju još uvijek mogu koristiti funkcionalne pametne telefone za pristup internetu i koristiti aplikacije.

Go ima širok izbor optimizacija i poboljšanja performansi, uključujući zauzimanje 50 posto manje prostora za pohranu od prosječne instalacije Android Oreo. Zahvaljujući Android Runtimeu (ART) i optimizaciji kernela, uređaj koji koristi Android Go će u prosjeku raditi 15 posto brže nego na redovnoj instalaciji Android Oreo na istom uređaju. Te se optimizacije provode putem brojnih specijaliziranih konfiguracija izrade koje je napravio Google, a koje ćemo objasniti kasnije.

Android Go također ima koristi od posebnih "Go" aplikacija, kao što su Files Go, YouTube Go i Google Maps Go. Ovo su lagane verzije aplikacija koje je napravio Google, a koje imaju smanjene zahtjeve za učinkovitiji rad. To znači da oni s Android Go uređajima mogu uživati ​​u većini istih pogodnosti koje mogu i obični korisnici Androida Oreo korištenje Googleovog paketa aplikacija bez potrebe za trošenjem puno novca na vodeći ili čak malo skuplji proračun uređaj.

Sve je u tome da Google širi svoje tržište. Ipak, postavlja se pitanje ako se Android Go sastoji uglavnom od konfiguracije međugradnje i paketa optimiziranih Googleovih aplikacija, mogu li programeri izraditi vlastite verzije Android Go-a? Ukratko, da mi možemo.

Nekoliko LineageOS programera već izrađuje prilagođene ROM-ove optimizirane za Android Go

Već vidimo donekle prihvaćanje Android Go-a od strane nekih prilagođenih programera ROM-a, kao što je XDA Recognized Developer AdrianDC, sa svojim radom na LineageOS 15.1 s Android Go konfiguracijama izgradnje za nekoliko starih Sony telefona. U pitanju su uređaji Sony Xperia SP, Sony Xperia T, Sony Xperia V i Sony Xperia TX. Svi ovi uređaji potječu iz 2012. i 2013. godine, no ipak će dobiti LineageOS 15.1 temeljen na Androidu 8.1 Oreo koristeći Android Konfiguracija Go builda, koja može omogućiti uređajima da glatko pokreću Google 'Go' aplikacije, ako se Android Go set Gapps pušten na slobodu.

Svaki pojedinačni održavatelj LOS-a trebao bi moći predstaviti konfiguriranu međugradnju za Android Go, koja je skup konfiguracija međugradnje i drugih optimizacija. To znači da će oni koji su možda kupili Sony Xperia T, na primjer, uređaj s Androidom 4.0.4 Ice Cream Sandwich pri lansiranju, moći koristiti bolje optimizirana verzija Androida 8.1 Oreo na uređaju, uz korištenje aplikacija kao što su YouTube Go i Google Maps Go. Neće raditi na vodećim razinama performansi, ali trebalo bi biti iskoristiv—posebno za uređaj koji datira iz 2012.


Kako Android Go može pomoći starijim Android telefonima da pokreću Android Oreo

Konfiguracije izgradnje na Androidu su skup parametara koji se odnose na različite aspekte Android sustava koji se primjenjuju prilikom kompajliranja slike sustava za flashanje na uređaj. To obično mijenja način na koji se sustav ponaša, a glavne optimizacije Android Goa dolaze odatle ove konfiguracije građenja.

Konfiguracije međuverzije koje se koriste za kompajliranje Android Go.

Razgovarao sam s XDA Recognized Developerom joshuous, koji mi je uvelike pomogao da shvatim promjene koje su se događale — što zapravo čini da Android Go funkcionira. Neke od ovih konfiguracija izgradnje ne mogu se promijeniti bez ponovnog kompiliranja i dio su nacrta samog ROM-a. Ovo su zastave ispisane velikim slovima.

Međutim, sve ove oznake odnose se na mnoge različite aspekte Androida koji se odnose na pohranu i korištenje memorije. To uključuje automatsko upravljanje pohranom, Androidov ubojica s malo memorije, dex (dalvik prizvršne datoteke) optimizator i ograničenja RAM-a za pokretanje aplikacija. APK datoteke sastoje se od ovih DEX datoteka, tako da je na neki način moguće zamisliti APK datoteku jednostavno kao ZIP datoteka koja sadrži puno .dex datoteka, što je zapravo ono što Android pokreće kada izvršava primjena. Automatsko upravljanje pohranom umjesto toga kontrolirat će aplikacija Files Go, a ne sustav Android.

Android Go Utilities Androidov način rada s malo RAM-a

U Androidu 4.4 KitKat, Google je predstavio novu zastavu pod nazivom "nisko-ramski", koji je bio usmjeren na podršku uređajima s 512 MB RAM-a. Čini brojne optimizacije sustava. Ove su promjene iznimno korisne za uređaje s manje RAM-a.

Poboljšano upravljanje memorijom

  • Potvrđene konfiguracije kernela za uštedu memorije: Zamijenite na ZRAM.
  • Ukini predmemorirane procese ako će biti bez predmemorije i preveliki.
  • Nemojte dopustiti velikim uslugama da se vrate u A usluge (tako da ne mogu uzrokovati uništavanje pokretača).
  • Ukinite procese (čak i one koji se obično ne mogu uništiti kao što je trenutni IME) koji postanu preveliki tijekom održavanja u mirovanju.
  • Serijalizirajte pokretanje pozadinskih usluga.
  • Podešena upotreba memorije uređaja s malo RAM-a: stroža razina prilagodbe nedostatka memorije (OOM), manje grafičke predmemorije itd.

Ove gore navedene promjene u osnovi osiguravaju da sustav koristi komprimirani RAM gdje je to moguće, kroz korištenje ZRAM-a. ZRAM je u osnovi RAMdisk (medij za pohranu koji koristi RAM, mnogo brže od korištenja obične pohrane na uređaju) kao swap datoteku. Datoteka za razmjenu koristi se kada je upotreba RAM-a velika, a aplikacije i dalje zahtijevaju memoriju. Ovo je puno, puno sporije od RAM-a i treba ga izbjegavati gdje je to moguće. U biti, jednostavno sažima sadržaj memorije.

Smanjena memorija sustava

  • Skraćeni procesi system_server i SystemUI (ušteđeno nekoliko MB).
  • Prethodno učitaj dex predmemorije u Dalviku (ušteđeno nekoliko MB).
  • Potvrđena opcija isključivanja JIT-a (štedi do 1,5 MB po procesu).
  • Smanjena potrošnja predmemorije fonta po procesu.
  • Predstavljen ArrayMap/ArraySet i opsežno korišten u okviru kao lakša zamjena za HashMap/HashSet.

Ono što se ovdje uglavnom događa je samo smanjena potrošnja memorije od raznih procesa koji se izvode na uređaju, kako bi bili što konzervativniji. Osnovne usluge sustava uklonjene su kako bi koristile što manje memorije u pozadini, jer je svaki megabajt RAM-a važan.

Android Go koristi modificirani Low Memory Killer i dex optimizacije

S obzirom da je Android Go uglavnom namijenjen uređajima s 1 GB RAM-a ili manje, bit će potrebno agresivnije upravljanje memorijom. Android Go modificira Low Memory Killer (LMK) na nekoliko različitih načina. Prvo, kada se potroši velika količina RAM-a, ubojica niske memorije odlazi na "kritični pritisak" država. To je zato što kada je upotreba memorije velika, sustav će postati trom zbog stalnog pokušaja pristupa swap datoteci na pohrani uređaja. Održavanje RAM-a čistim spriječit će sustav da mora koristiti ovu swap datoteku i spriječiti gubitak memorije. Gubitak memorije događa se kada je memorija uređaja puna i stalno mora straničiti swap datoteku na pohranu uređaja, što značajno smanjuje performanse.

Usluge i WiFi usluge postavljene su na "profil brzine," što znači da su odabrane metode u ovim uslugama sastavljene unaprijed (AOT). (Metoda se odnosi na skup koda koji se u bilo kojem trenutku može pozvati imenom.) To smanjuje upotrebu RAM-a i pohranjivanje, budući da sustav Android neće morati kontinuirano ponovno kompajlirati bitne usluge koje se izvode na uređaj. U međuvremenu, dijeljeni APK-ovi postavljeni su na "ubrzavanje", što je osmišljeno za produljenje trajanja baterije i dodatne cikluse CPU-a optimiziranjem dex uputa za bolje performanse.

Što se tiče dex optimizacija, Android Go čini dosta toga. Za početak, nakon 10 dana hoće smanjiti aplikaciju ako se ne koristi za uštedu prostora. Vraćanje na stariju verziju ovdje se ne odnosi na stvarni broj verzije aplikacije koji se smanjuje, već znači da će dalvik_cache za aplikaciju biti izbrisan. Dalvik predmemorija se koristi tako da uređaj ne treba ponovno kompajlirati aplikacije, umjesto toga kompajlira samo najpotrebnije dijelove i to predmemorira. Ostatak se kompilira pomoću Just in Time (JIT) prevoditelja kada se aplikacija pokrene. Međutim, ako se aplikacija ne koristi 10 dana, bitni dijelovi aplikacije koji su unaprijed kompajlirani također se uklanjaju. To je učinjeno kako bi se oslobodio što je više moguće prostora. Još jedna jednostavna promjena je ne dopuštanje upotrebe RAM-a aplikacije da premaši 256 MB tako da aplikacija ne može koristiti sav RAM na uređaju.


Je li Android Go budućnost razvoja prilagođenog ROM-a na jeftinijim uređajima?

Trenutačno ne znamo odgovor na ovo, ali budućnost izgleda svijetla za prilagođeni razvoj ROM-a na starijim uređajima. Mogu postojati i drugi problemi u pokretanju novije verzije Androida na uređaju, ali u teoriji, nadogradnja na optimiziraniji Android Go temeljen na Androidu Oreo trebao bi poboljšati rad starijeg, jeftinijeg uređaja.