Android Pie adaugă o funcție pentru a preveni uciderea jocurilor cu memorie RAM grea dacă ieși accidental

Android Pie se lansează astăzi și una dintre caracteristicile ascunse interesante este abilitatea de a preveni distrugerea jocurilor cu memorie RAM grea dacă ieși accidental.

Mai devreme astăzi, Google anunțat oficial Android Pie pentru Google Pixel și Google Pixel 2. Imediat după aceea, Esențial eliberat actualizarea Android 9 pentru Essential Phone. Alte dispozitive care au participat în programul Android P beta ar trebui să primească în curând actualizarea, astfel încât utilizatorii care au sărit peste previzualizările pentru dezvoltatori au acum multe de făcut. Pe măsură ce cercetăm cea mai recentă versiune, inclusiv drop cod sursă pe AOSP și cel mai recent document de definire a compatibilității (CDD), vă vom actualiza periodic cu orice informații noi pe care le descoperim. Ceva interesant pe care l-am găsit în CDD este o secțiune pentru aplicații și jocuri „greu” (RAM-greu) în care Android Pie va acorda prioritate păstrării acestor aplicații în RAM în cazul în care utilizatorul iese accidental lor.

Aplicații și jocuri „greu” în Android Pie

O nouă secțiune a fost adăugată la CDD care conturează această caracteristică. Iată ce scrie:

3.17. Aplicații grele

Dacă implementările dispozitivului declară caracteristica FEATURE_CANT_SAVE_STATE, atunci acestea:

  • [C-1-1] TREBUIE să aibă o singură aplicație instalată care specifică cantSaveState care rulează în sistem la un moment dat. Dacă utilizatorul părăsește o astfel de aplicație fără a ieși din ea în mod explicit (de exemplu, apăsând acasă în timp ce părăsește o activitate activă, sistemul, în loc să apese înapoi fără să rămână activități active în sistem), apoi implementările dispozitivului TREBUIE să acorde prioritate aplicației respective în RAM, așa cum o fac pentru alte lucruri despre care se așteaptă să rămână în funcțiune, cum ar fi primul plan Servicii. În timp ce o astfel de aplicație se află în fundal, sistemul îi poate aplica în continuare funcții de gestionare a energiei, cum ar fi limitarea accesului la procesor și la rețea.
  • [C-1-2] TREBUIE să ofere o interfață accesibilă pentru a alege aplicația care nu va participa la mecanismul de salvare/restaurare în stare normală odată ce utilizatorul lansează o a doua aplicație declarată cu atributulcantSaveState.
  • [C-1-3] NU TREBUIE să aplice alte modificări ale politicii aplicațiilor care specifică cantSaveState, cum ar fi schimbarea performanței CPU sau modificarea prioritizării programării.

Dacă implementările dispozitivului nu declară caracteristica FEATURE_CANT_SAVE_STATE , atunci ei:

  • [C-1-1] TREBUIE să ignore atributul cantSaveState setat de aplicații și NU TREBUIE să schimbe comportamentul aplicației pe baza acelui atribut.

Practic, aceasta înseamnă că, dacă un dispozitiv acceptă FEATURE_CANT_SAVE_STATE funcția, atunci trebuie să acorde prioritate păstrării în RAM a aplicației care rulează care specifică cantSaveState atribut. Această prioritizare RAM se activează dacă utilizatorul iese din aplicație sau joc apăsând butonul de pornire sau părăsind aplicația sau jocul fără a ieși din el în mod explicit (cum ar fi apăsarea butonului înapoi sau un buton de ieșire.) În plus, sistemul poate economisi energie limitând accesul la procesor și la rețea la acele aplicații, dar pur și simplu nu pot elibera memoria RAM prin uciderea lor decât dacă este necesar. În cele din urmă, rețineți că o singură aplicație cu atributul cantSaveState definit este permisă să ruleze. Dacă încercați să lansați o altă aplicație cu acest atribut definit în timp ce alta rulează, Android Pie vă va cere să alegeți ce joc doriți să rulați în continuare.

Puteți verifica dacă dispozitivul dvs. acceptă FEATURE_CANT_SAVE_STATE rulând următoarele două comenzi prin ADB:

adb shell
dumpsys package | grep "cant_save_state"

Pentru a verifica dacă o aplicație specifică atributul cantSaveState, va trebui să decompilați aplicația și să vă uitați la manifestul acesteia sau să utilizați dumpsys package package.name.here comandă în shell ADB. Rețineți că acest atribut a fost doar adăugat la nivelul API 28 (Android 9 Pie), așa că este puțin probabil ca multe aplicații sau jocuri să profite de acest lucru încă.

Această caracteristică va fi incredibil de utilă pentru dispozitivele cu cantități mici de RAM și/sau aplicații care consumă o tonă de RAM. De exemplu, Fortnite Mobile pe Android necesită minim 3 GB de RAM din cauza câtă memorie RAM consumă (fără să lanseze măcar un joc, Fortnite Mobile rezerva 1,6 GB de RAM pe Google Pixel 2 XL). Dacă Fortnite ar ținti SDK-ul nivelul 28 și utilizați această funcție, atunci aceasta înseamnă că părăsirea accidentală a jocului va împiedica, sperăm, să fie ucis imediat dacă dispozitivul dvs. se epuizează. RAM liber. Din păcate, Fortnite vizează doar nivelul SDK 21 în acest moment (Android 5.0 Lollipop), așa că, din păcate, nu profită de cele mai recente API-uri pe care Google le oferă în Android Pie, darămite Android Oreo, Android Nougat sau Android Marshmallow. Sperăm că alte jocuri se actualizează pentru a profita de această funcție. Până anul viitor, Google le va cere să actualizeze dacă doresc să poată continua să trimită actualizări în Magazinul Google Play.