Android Go je odříznutá verze Androidu Oreo 8.1 od Googlu pro nová zařízení s nízkou RAM. Jak se ukázalo, může to pomoci i vlastnímu vývoji ROM na starších zařízeních.
Android Go je zkrácená verze Androidu od Googlu založená na Androidu 8.1 Oreo a jejím cílem je být optimalizovanou verzí Androidu pro zařízení nižší třídy s 1 GB RAM nebo nižší. Bylo oznámeno loni v květnu na konferenci Google I/O Developer a nakonec více podrobností bylo odhaleno v prosinci později téhož roku. Bylo řečeno, že byl vyroben pro příští generaci zařízení základní úrovně, aby bylo zajištěno, že ty v rozvojové země mohou stále využívat funkční chytré telefony pro přístup k internetu a používat aplikace.
Go má širokou škálu optimalizací výkonu a vylepšení, včetně toho, že zabírá o 50 procent méně úložného prostoru než průměrná instalace Android Oreo. Díky Android Runtime (ART) a optimalizacím jádra poběží zařízení se systémem Android Go v průměru o 15 procent rychleji než s běžnou instalací Android Oreo na stejném zařízení. Tyto optimalizace se provádějí prostřednictvím řady specializovaných konfigurací sestavení vytvořených společností Google, které si vysvětlíme později.
Android Go těží také ze speciálních aplikací „Go“, jako jsou kupř Files Go, YouTube Go a Google Maps Go. Jedná se o odlehčené verze aplikací od společnosti Google, které mají snížené požadavky na efektivnější provoz. To znamená, že uživatelé se zařízeními Android Go mohou využívat většinu stejných výhod, jaké mohou využívat i běžní uživatelé Android Oreo používání sady aplikací Google, aniž byste museli utrácet spoustu peněz za vlajkovou loď nebo dokonce mírně dražší rozpočet přístroj.
Je to všechno o tom, že Google rozšiřuje svůj trh. Přesto vyvstává otázka, že pokud se Android Go skládá převážně z konfigurace sestavení a sady optimalizovaných aplikací Google, mohou vývojáři vytvářet vlastní sestavení Android Go? Ve zkratce, Ano, můžeme.
Několik vývojářů LineageOS již vytváří vlastní ROM optimalizované pro Android Go
Již jsme svědky jistého osvojení systému Android Go od některých vlastních vývojářů ROM, jako je například XDA Recognized Developer AdrianDC, s jeho prací na LineageOS 15.1 s konfiguracemi sestavení Android Go pro několik starých telefonů Sony. Jedná se o zařízení Sony Xperia SP, Sony Xperia T, Sony Xperia V a Sony Xperia TX. Všechna tato zařízení pocházejí z let 2012 a 2013, přesto budou dostávat LineageOS 15.1 založený na Androidu 8.1 Oreo s Androidem. Konfigurace Go build, která může zařízením umožnit plynulé spouštění aplikací Google 'Go', pokud by nakonec byla sada Gapps pro Android Go propuštěn.
Každý jednotlivý správce LOS by měl být schopen představit sestavení nakonfigurované pro Android Go, přičemž se jedná o sadu konfigurací sestavení a dalších optimalizací. To znamená, že ti, kteří si zakoupili například Sony Xperia T, zařízení se systémem Android 4.0.4 Ice Cream Sandwich při uvedení na trh, budou moci používat lépe optimalizované sestavení Androidu 8.1 Oreo na zařízení s využitím aplikací jako YouTube Go a Google Maps Go. Nepoběží na vlajkových úrovních výkonu, ale mělo by být použitelný—zejména pro zařízení, které pochází z roku 2012.
Jak může Android Go pomoci starším telefonům Android se systémem Android Oreo
Konfigurace sestavení v systému Android je sada parametrů, které se týkají různých aspektů systému Android, které se používají při kompilaci obrazu systému pro flashování do zařízení. Obvykle se tím mění chování systému a hlavní optimalizace Android Go pocházejí tyto konfigurace sestavení.
Mluvil jsem s XDA Recognized Developer joshuous, který mi velmi pomohl porozumět změnám, které se odehrávaly – díky čemu Android Go skutečně funguje. Některé z těchto konfigurací sestavení nelze změnit bez rekompilace a jsou součástí návrhu samotné ROM. Toto jsou vlajky s velkými písmeny.
Všechny tyto příznaky se však týkají mnoha různých aspektů systému Android souvisejících s úložištěm a využitím paměti. Tyto zahrnují automatická správa úložiště, zabiják nízké paměti Androidu, dex (dalvik napřspustitelné soubory) optimalizátor a limity RAM pro spouštění aplikací. Soubory APK se skládají z těchto souborů DEX, takže určitým způsobem je možné soubor APK považovat za jednoduše ZIP soubor obsahující spoustu souborů .dex, což je vlastně to, co Android spouští, když se spustí aplikace. Automatickou správu úložiště bude místo toho ovládat aplikace Files Go, nikoli systém Android.
Android Go Utilities Režim Android s nízkou RAM
V systému Android 4.4 KitKat představil Google nový příznak s názvem „nízký beran“, který byl zaměřen na podporu zařízení s 512 MB RAM. Provádí řadu optimalizací systému. Tyto změny jsou velmi přínosné pro zařízení s nižší RAM.
Vylepšená správa paměti
- Ověřené konfigurace jádra šetřící paměť: Vyměňte za ZRAM.
- Zabijte procesy uložené v mezipaměti, pokud mají být uncached a příliš velké.
- Nedovolte velkým službám, aby se vrátily do služeb A (takže nemohou způsobit zabití spouštěče).
- Zabijte procesy (dokonce i ty obyčejně nezabivatelné, jako je aktuální IME), které se při nečinné údržbě příliš zvětší.
- Serializujte spouštění služeb na pozadí.
- Vyladěné využití paměti zařízeními s nízkou RAM: přísnější úrovně úprav při nedostatku paměti (OOM), menší grafické mezipaměti atd.
Tyto výše uvedené změny v podstatě zajišťují, že systém zajistí použití komprimované paměti RAM tam, kde je to možné, pomocí ZRAM. ZRAM je v podstatě RAMdisk (paměťové médium, které používá RAM mnohem rychleji než běžné úložiště v zařízení) jako odkládací soubor. Odkládací soubor se používá, když je využití paměti RAM vysoké a aplikace stále vyžadují paměť. To je mnohem, mnohem pomalejší než RAM a je třeba se tomu vyhnout, kde je to možné. V podstatě jednoduše komprimuje obsah paměti.
Snížená systémová paměť
- Oříznuté procesy system_server a SystemUI (ušetřeno několik MB).
- Preload dex cache v Dalvik (ušetřeno několik MB).
- Ověřená možnost JIT-off (ušetří až 1,5 MB na proces).
- Snížená režie mezipaměti písem pro jednotlivé procesy.
- Představeno ArrayMap/ArraySet a široce používané v rámci jako lehčí náhrada za HashMap/HashSet.
To, co se zde většinou děje, je pouze snížená spotřeba paměti různými procesy běžícími na zařízení, abychom byli co nejkonzervativnější. Základní systémové služby byly odstraněny, aby využívaly co nejméně paměti na pozadí, protože každý megabajt paměti RAM je důležitý.
Android Go používá upravenou verzi Low Memory Killer a optimalizace dex
Vzhledem k tomu, že Android Go je určen hlavně pro zařízení s 1 GB RAM nebo méně, bude potřeba agresivnější správa paměti. Android Go upravuje Low Memory Killer (LMK) několika různými způsoby. Za prvé, když je spotřebováno velké množství paměti RAM, zabiják nízké paměti přejde na "kritický tlak" Stát. Je to proto, že když je využití paměti vysoké, systém se zpomalí kvůli neustálým pokusům o přístup k odkládacímu souboru v úložišti zařízení. Udržování volné paměti RAM zabrání tomu, aby systém musel používat tento odkládací soubor, a zabráníte vybíjení paměti. K přerušování paměti dochází, když je paměť zařízení plná a neustále se musí stránkovat odkládací soubor v úložišti zařízení, což výrazně snižuje výkon.
Služby a WiFi služby jsou nastaveny na "rychlostní profil“, což znamená, že vybrané metody v těchto službách jsou kompilovány předem (AOT). (Metoda odkazuje na sadu kódu, který lze kdykoli volat jménem.) To snižuje využití paměti RAM a úložiště, protože systém Android nebude muset neustále znovu kompilovat základní služby, které na něm běží přístroj. Mezitím jsou sdílené soubory APK nastaveny na „quicken“, což je navrženo tak, aby poskytovalo delší výdrž baterie a extra cykly CPU optimalizací instrukcí dex pro dosažení lepšího výkonu.
Pokud jde o optimalizace dex, Android Go toho dělá docela hodně. Pro začátek to bude po 10 dnech downgrade aplikace pokud se nepoužívá pro úsporu místa. Downgrade zde neodkazuje na skutečné klesající číslo verze aplikace, ale spíše to znamená, že dalvik_cache pro aplikaci bude vymazána. Mezipaměť Dalvik se používá proto, aby zařízení nemuselo znovu kompilovat aplikace, místo toho kompiluje pouze její nejnutnější části a ukládá je do mezipaměti. Zbytek je kompilován pomocí kompilátoru Just in Time (JIT) při spuštění aplikace. Pokud se však aplikace po dobu 10 dnů nepoužívá, odstraní se i podstatné části aplikace, které jsou předkompilovány. To se provádí, aby se uvolnilo co nejvíce místa. Další jednoduchou změnou je, že použití paměti RAM aplikace nepřekročí 256 MB, takže aplikace nemůže využít celou paměť RAM v zařízení.
Je Android Go budoucností vlastního vývoje ROM na zařízeních nižší třídy?
V současné době na to neznáme odpověď, ale budoucnost vypadá jasně pro vlastní vývoj ROM na starších zařízeních. Při získávání novější verze Androidu na zařízení mohou nastat další problémy, ale teoreticky jde o upgrade na optimalizovanější Android Go založený na Android Oreo. by měl aby starší zařízení nižší třídy fungovalo lépe.