Hvordan Android Go kan hjælpe ældre Android-telefoner med at køre Android 8.1 Oreo

click fraud protection

Android Go er Googles afisolerede version af Android Oreo 8.1 til nye enheder med lav RAM. Som det viser sig, kan det også hjælpe med tilpasset ROM-udvikling på ældre enheder.

Android Go er Googles nedslidte version af Android baseret på Android 8.1 Oreo, og den sigter mod at være en optimeret version af Android til enheder med lavt niveau med 1 GB RAM eller mindre. Det blev annonceret i maj sidste år på Google I/O Developer-konferencen, og til sidst blev flere detaljer afsløret i december senere samme år. Det siges at være lavet til den næste generation af entry-level-enheder for at sikre, at de i udviklingslande kan stadig gøre brug af fungerende smartphones for at få adgang til internettet og bruge apps.

Go har en lang række ydelsesoptimeringer og -forbedringer, herunder optager 50 procent mindre lagerplads end en gennemsnitlig Android Oreo-installation. Takket være Android Runtime (ART) og kerneoptimeringer vil en enhed, der kører Android Go, i gennemsnit køre 15 procent hurtigere end på en almindelig Android Oreo-installation på den samme enhed. Disse optimeringer er lavet gennem en række specialiserede build-konfigurationer lavet af Google, som vi kommer til at forklare senere.

Android Go drager også fordel af specielle "Go"-applikationer, som f.eks Filer gå, YouTube Go og Google Maps Go. Disse er lette versioner af applikationer lavet af Google, som har reducerede krav til at køre mere effektivt. Dette betyder, at dem med Android Go-enheder kan nyde de fleste af de samme fordele, som almindelige Android Oreo-brugere også kan, hvilket gør brug af Googles suite af applikationer uden at skulle bruge mange penge på et flagskib eller endda et mildt dyrere budget enhed.

Det handler om, at Google udvider deres marked. Alligevel rejser det spørgsmålet, at hvis Android Go for det meste består af en build-konfiguration og en suite af optimerede Google-apps, kan udviklere så lave deres egne builds af Android Go? Kort sagt, Ja vi kan.

Nogle få LineageOS-udviklere bygger allerede Android Go-optimerede brugerdefinerede ROM'er

Vi ser allerede noget af en optagelse i Android Go fra nogle tilpassede ROM-udviklere, såsom af XDA Recognized Developer AdrianDC, med sit arbejde på LineageOS 15.1 med Android Go build-konfigurationer til flere gamle Sony-telefoner. De enheder, der er tale om, er Sony Xperia SP, Sony Xperia T, Sony Xperia V og Sony Xperia TX. Disse enheder går alle tilbage til årene 2012 og 2013, men de vil alligevel modtage LineageOS 15.1 baseret på Android 8.1 Oreo ved hjælp af en Android Go build-konfiguration, som kan gøre det muligt for enhederne at køre Google 'Go'-apps flydende, hvis et Android Go-sæt af Gapps til sidst frigivet.

Enhver individuel LOS-vedligeholder bør være i stand til at introducere en Android Go-konfigureret build, idet det er et sæt build-konfigurationer og andre optimeringer. Hvad dette betyder er, at de, der måske har købt Sony Xperia T, for eksempel en enhed, der kører Android 4.0.4 Ice Cream Sandwich ved lanceringen, vil være i stand til at bruge en bedre optimeret opbygning af Android 8.1 Oreo på enheden, der gør brug af applikationer som YouTube Go og Google Maps Go. Det kommer ikke til at køre på flagskibsniveauer af ydeevne, men det burde være brugbar-især for en enhed, der går tilbage til 2012.


Hvordan Android Go kan hjælpe ældre Android-telefoner med at køre Android Oreo

Byg konfigurationer på Android er et sæt parametre, der vedrører forskellige aspekter af Android-systemet, der anvendes ved kompilering af systembilledet til flashing på en enhed. Disse ændrer typisk, hvordan systemet opfører sig, og Android Gos vigtigste optimeringer kommer fra disse byggekonfigurationer.

De build-konfigurationer, der bruges til at kompilere Android Go.

Jeg talte med XDA Recognized Developer joshuous, som hjalp mig meget med at forstå de ændringer, der fandt sted - hvad der virkelig får Android Go til at fungere. Nogle af disse build-konfigurationer kan ikke ændres uden omkompilering, og er en del af planen for selve ROM'en. Dette er flagene med stort bogstav.

Alle disse flag vedrører dog mange forskellige aspekter af Android i forbindelse med lager- og hukommelsesbrug. Disse omfatter automatisk lagerstyring, Androids dræber med lav hukommelse, dex (dalvik eksecutable filer) optimizer og RAM-grænser for at køre apps. APK-filer består af disse DEX-filer, så på en måde er det muligt at tænke på en APK-fil som blot en ZIP-fil, der indeholder masser af .dex-filer, som faktisk er det, Android kører, når den udfører en Ansøgning. Automatisk lagerstyring vil i stedet blive styret af Files Go-applikationen, ikke Android-systemet.

Android Go Utilities Androids lav RAM-tilstand

I Android 4.4 KitKat introducerede Google et nyt flag kaldet "lav ram", som var rettet mod at understøtte enheder med 512 MB RAM. Det foretager en række optimeringer til systemet. Disse ændringer er enormt gavnlige for lavere RAM-enheder.

Forbedret hukommelsesstyring

  • Valideret hukommelsesbesparende kernekonfigurationer: Skift til ZRAM.
  • Dræb cachelagrede processer, hvis de er ved at være uncached og for store.
  • Tillad ikke store tjenester at sætte sig tilbage i A Services (så de ikke kan forårsage, at launcheren bliver dræbt).
  • Dræb processer (selv almindeligt udødelige, såsom den nuværende IME), der bliver for store i inaktiv vedligeholdelse.
  • Serialiser lanceringen af ​​baggrundstjenester.
  • Tunet hukommelsesbrug af enheder med lav RAM: strammere justering af hukommelsen (OOM), mindre grafikcache osv.

Disse ændringer ovenfor sikrer grundlæggende, at systemet sørger for at bruge komprimeret RAM, hvor det er muligt, gennem brug af ZRAM. ZRAM er dybest set en RAMdisk (et lagringsmedie, der bruger RAM, meget hurtigere end at bruge almindelig lagring på enheden) som en swap-fil. En swap-fil bruges, når RAM-forbruget er højt, og applikationer stadig kræver hukommelse. Dette er meget, meget langsommere end RAM og bør undgås, hvor det er muligt. I det væsentlige komprimerer det simpelthen indholdet af hukommelsen.

Reduceret systemhukommelse

  • Trimmet system_server og SystemUI processer (gemte flere MB'er).
  • Forudindlæs dex-cacher i Dalvik (gemte flere MB'er).
  • Valideret JIT-off-mulighed (sparer op til 1,5 MB pr. proces).
  • Reduceret per-proces font cache overhead.
  • Introducerede ArrayMap/ArraySet og brugt flittigt i rammer som en lettere footprint erstatning for HashMap/HashSet.

Det, der for det meste sker her, er blot reduceret hukommelsesforbrug fra forskellige processer, der kører på enheden, for at være så konservativ som muligt. Væsentlige systemtjenester er blevet fjernet for at bruge så lidt hukommelse som muligt i baggrunden, da hver megabyte RAM er vigtig.

Android Go bruger en modificeret dræber med lav hukommelse og dex-optimeringer

I betragtning af at Android Go hovedsageligt er til enheder med 1 GB RAM eller mindre, skal der være mere aggressiv hukommelsesstyring. Android Go ændrer Low Memory Killer (LMK) på et par forskellige måder. For det første, når en stor mængde af RAM er brugt op, går dræberen med lav hukommelse til en "kritisk pres" stat. Dette skyldes, at når hukommelsesforbruget er højt, vil systemet blive trægt på grund af konstant forsøg på at få adgang til en swap-fil på enhedens lager. At holde RAM'en klar vil forhindre, at systemet behøver at bruge denne swap-fil og forhindrer hukommelsessletning. Memory thrashing opstår, når enhedens hukommelse er fuld, og konstant skal bladre i swap-filen på enhedens lager, hvilket forringer ydeevnen kraftigt.

Tjenester og WiFi-tjenester er indstillet til "hastigheds-profil," hvilket betyder, at udvalgte metoder i disse tjenester kompileres forud for tiden (AOT). (En metode refererer til et sæt kode, som kan kaldes på et hvilket som helst tidspunkt ved navn.) Dette reducerer RAM-brug og lagring, da Android-systemet ikke behøver løbende at omkompilere væsentlige tjenester, der kører på enhed. I mellemtiden er delte APK'er indstillet til "hurtig", som er designet til at give ekstra batterilevetid og ekstra CPU-cyklusser ved at optimere dex-instruktioner for at få bedre ydeevne.

Med hensyn til dex-optimeringer gør Android Go ret meget. For det første vil det efter 10 dage nedgradere en applikation hvis det ikke bruges til at spare plads. Nedgradering her refererer ikke til, at det faktiske versionsnummer af applikationen er faldende, men det betyder snarere, at dalvik_cachen for appen vil blive slettet. Dalvik-cachen bruges, så enheden ikke behøver at rekompilere apps, i stedet kompilerer den kun de mest nødvendige dele af den og cacher den. Resten kompileres ved hjælp af Just in Time (JIT) compileren, når applikationen køres. Hvis applikationen dog ikke bruges i 10 dage, fjernes også de væsentlige dele af applikationen, som er prækompileret. Dette gøres for at frigøre så meget plads som muligt. En anden simpel ændring er ikke at tillade en apps RAM-forbrug at overstige 256 MB, så en app ikke kan bruge al RAM på enheden.


Er Android Go fremtiden for Custom ROM-udvikling på low-end-enheder?

I øjeblikket kender vi ikke svaret på dette, men fremtiden ser lys ud for tilpasset ROM-udvikling på ældre enheder. Der kan være andre problemer med at få en nyere version af Android til at køre på en enhed, men i teorien en opgradering til en mere optimeret Android Go baseret på Android Oreo bør få en ældre, low-end enhed til at køre bedre.