Android Pie přidává funkci, která zabrání zabíjení her s velkým množstvím paměti RAM, pokud je omylem ukončíte

click fraud protection

Android Pie je dnes uveden na trh a jednou ze skvělých skrytých funkcí je schopnost zabránit tomu, aby hry s velkou pamětí RAM byly zabity, pokud omylem skončíte.

Dnes dříve, Google oficiálně oznámeno Android Pie pro Google Pixel a Google Pixel 2. Bezprostředně poté, Vydáno Essential aktualizace Androidu 9 pro Essential Phone. Další zařízení, která se účastnila v beta programu Android P by měl aktualizaci brzy obdržet, takže uživatelé, kteří přeskočili Developer Previews, mají nyní co dohánět. Když se ponoříme do nejnovější verze včetně zdrojový kód drop na AOSP a nejnovější dokument s definicí kompatibility (CDD), budeme vás pravidelně aktualizovat o jakékoli nové informace, které objevíme. Něco zajímavého, co jsme našli v CDD, je sekce pro aplikace a hry pro „těžkou váhu“ (s velkou RAM) přičemž Android Pie bude upřednostňovat udržování těchto aplikací v paměti RAM, pokud by uživatel omylem skončil jim.

Aplikace a hry pro „těžkou váhu“ v Android Pie

Byla přidána nová sekce CDD který tuto vlastnost nastiňuje. Říká se zde:

3.17. Aplikace pro těžkou váhu

Pokud implementace zařízení deklarují funkci FEATURE_CANT_SAVE_STATE, pak:

  • [C-1-1] MUSÍ mít nainstalovanou pouze jednu aplikaci, která specifikuje cantSaveState spuštěnou v systému současně. Pokud uživatel opustí takovou aplikaci, aniž by ji výslovně opustil (například stisknutím tlačítka Domů při opuštění aktivní činnosti, systém namísto stisknutí tlačítka zpět beze zbytku aktivní aktivity v systému), pak implementace zařízení MUSÍ upřednostnit tuto aplikaci v paměti RAM, jako to dělají pro jiné věci, u kterých se očekává, že zůstanou spuštěné, jako je popředí služby. I když je taková aplikace na pozadí, systém na ni může stále používat funkce správy napájení, jako je omezení přístupu k procesoru a síti.
  • [C-1-2] MUSÍ poskytnout uživatelské rozhraní pro výběr aplikace, která se nebude podílet na normálním mechanismu ukládání/obnovy, jakmile uživatel spustí druhou aplikaci deklarovanou s atributem cantSaveState.
  • [C-1-3] NESMÍ aplikovat jiné změny zásad na aplikace, které specifikují cantSaveState, jako je změna výkonu CPU nebo změna priority plánování.

Pokud implementace zařízení tuto funkci nedeklarují FEATURE_CANT_SAVE_STATE , potom oni:

  • [C-1-1] MUSÍ ignorovat atribut cantSaveState nastavený aplikacemi a NESMÍ měnit chování aplikace na základě tohoto atributu.

V podstatě to znamená, že pokud zařízení podporuje FEATURE_CANT_SAVE_STATE funkce, pak musí upřednostnit udržování spuštěné aplikace, která specifikuje v RAM cantSaveState atribut. Tato priorita RAM se spustí, pokud uživatel ukončí aplikaci nebo hru stisknutím tlačítka Domů nebo opustí aplikaci nebo hru, aniž by ji explicitně opustil (například stisknutím tlačítka Zpět nebo tlačítko quit.) Kromě toho může systém stále šetřit energii tím, že omezí CPU a přístup k síti u těchto aplikací, ale prostě nemohou uvolnit RAM jejich zabitím, pokud to není nutné. A konečně, všimněte si, že pouze jedna aplikace s definovaným atributem cantSaveState může být spuštěna. Pokud se pokusíte spustit jinou aplikaci s tímto atributem, zatímco je spuštěna jiná, Android Pie vás požádá, abyste vybrali, kterou hru chcete spustit.

Zda vaše zařízení podporuje FEATURE_CANT_SAVE_STATE, můžete zkontrolovat spuštěním následujících dvou příkazů přes ADB:

adb shell
dumpsys package | grep "cant_save_state"

Chcete-li zkontrolovat, zda aplikace uvádí atribut cantSaveState, bude nutné aplikaci dekompilovat a podívat se na její manifest nebo použít dumpsys package package.name.here příkaz v prostředí ADB. Mějte na paměti, že tento atribut byl právě přidán v úrovni API 28 (Android 9 Pie), takže je nepravděpodobné, že by toho mnoho aplikací nebo her ještě využilo.

Tato funkce bude neuvěřitelně užitečná pro zařízení s malým množstvím paměti RAM a/nebo aplikace, které zabírají tuny paměti RAM. Například Fortnite Mobile na Androidu vyžaduje minimálně 3 GB RAM kvůli tomu, kolik RAM spotřebovává (aniž bych spustil hru, Fortnite Mobile rezervoval 1,6 GB RAM na mém Google Pixel 2 XL.) Pokud by Fortnite cílil na SDK úroveň 28 a použijte tuto funkci, pak to znamená, že náhodné opuštění hry doufejme zabrání tomu, aby byla okamžitě zabita, pokud vaše zařízení dochází volnou RAM. Bohužel Fortnite cílí pouze na úroveň SDK 21 v tuto chvíli (Android 5.0 Lollipop), takže bohužel nevyužívá nejnovějších API, které Google nabízí v Android Pie, natož Android Oreo, Android Nougat nebo Android Marshmallow. Doufejme, že se další hry aktualizují, aby tuto funkci využily. Do příštího roku Google bude vyžadovat aktualizovat, pokud chtějí mít možnost pokračovat v odesílání aktualizací v Obchodě Google Play.