Android Pie lisab funktsiooni, et vältida RAM-i mahukate mängude tapmist, kui kogemata väljute

Android Pie tuleb täna välja ja üks lahedatest peidetud funktsioonidest on võimalus takistada RAM-i mahukate mängude hukkumist, kui kogemata väljute.

Täna varem Google ametlikult välja kuulutatud Android Pie Google Pixeli ja Google Pixel 2 jaoks. Vahetult pärast seda, Essential välja antud Android 9 värskendus Essential Phone'ile. Muud osalenud seadmed Android P beetaprogrammis peaks peagi värskenduse kätte saama, nii et kasutajatel, kes jätsid arendaja eelvaate vahele, on nüüd palju teha. Kui uurime viimast väljaannet, sealhulgas lähtekoodi langus AOSP-s ja uusimas ühilduvuse määratluse dokumendis (CDD), värskendame teid perioodiliselt mis tahes uue teabega, mille avastame. Midagi huvitavat, mille CDD-lt leidsime, on jaotis "raskekaaluliste" (RAM-i raskete) rakenduste ja mängude jaoks kus Android Pie eelistab neid rakendusi RAM-is hoida, kui kasutaja kogemata väljub neid.

Raskekaalulised rakendused ja mängud Android Pie-s

Sellele on lisatud uus jaotis CDD mis kirjeldab seda funktsiooni. Siin on kirjas:

3.17. Raskekaalu rakendused

Kui seadme juurutused deklareerivad funktsiooni FEATURE_CANT_SAVE_STATE, siis:

  • [C-1-1] PEAB olema ainult üks installitud rakendus, mis määrab korraga süsteemis töötava cantSaveState'i. Kui kasutaja lahkub sellisest rakendusest ilma sellest selgesõnaliselt väljumata (näiteks vajutades süsteemist aktiivsest tegevusest lahkudes kodulehte, selle asemel, et vajutada tagasi aktiivsed tegevused süsteemis), siis PEAVAD seadme juurutused seadma selle rakenduse RAM-is prioriteediks, nagu nad teevad ka muude asjade puhul, mis eeldatavasti töötavad, näiteks esiplaanil. teenuseid. Kui selline rakendus on taustal, saab süsteem sellele siiski rakendada toitehaldusfunktsioone, näiteks piirata juurdepääsu protsessorile ja võrgule.
  • [C-1-2] PEAB pakkuma kasutajaliidese võimalust valida rakendus, mis ei osale normaaloleku salvestamise/taastamise mehhanismis, kui kasutaja käivitab teise rakenduse, mis on deklareeritud atribuudiga cantSaveState.
  • [C-1-3] EI TOHI rakendada muid poliitika muudatusi rakendustele, mis määravad cantSaveState, näiteks protsessori jõudluse muutmine või ajastamise prioriteedi muutmine.

Kui seadme juurutused funktsiooni ei deklareeri FEATURE_CANT_SAVE_STATE , siis nad:

  • [C-1-1] PEAB ignoreerima rakenduste määratud atribuuti cantSaveState ja EI TOHI muuta selle atribuudi alusel rakenduse käitumist.

Põhimõtteliselt tähendab see seda, et kui seade toetab FEATURE_CANT_SAVE_STATE funktsiooni, siis peavad nad prioriteediks hoidma RAM-is töötavat rakendust, mis määrab selle cantSaveState atribuut. See RAM-i prioritiseerimine käivitub, kui kasutaja väljub rakendusest või mängust, vajutades kodunuppu või lahkub rakendusest või mängust ilma sellest selgesõnaliselt väljumata (nagu tagasinupu vajutamisel või sulgemisnupp.) Lisaks saab süsteem ikkagi energiat säästa, piirates nende rakenduste juurdepääsu protsessorile ja võrgule, kuid need ei saa lihtsalt vabastada RAM-i, kui neid tappes. vajalik. Lõpuks pange tähele, et ainult üks rakendus, mille atribuut cantSaveState on määratletud, võib töötada. Kui proovite käivitada mõnda muud selle atribuudiga rakendust, kui mõni teine ​​töötab, palub Android Pie teil valida, millist mängu soovite jätkata.

Saate kontrollida, kas teie seade toetab funktsiooni FEATURE_CANT_SAVE_STATE, käivitades ADB kaudu järgmised kaks käsku:

adb shell
dumpsys package | grep "cant_save_state"

Et kontrollida, kas rakendus määrab atribuudi cantSaveState, tuleb rakendus dekompileerida ja vaadata selle manifesti või kasutada dumpsys package package.name.here käsk ADB kestas. Pidage meeles, et see atribuut lisati alles API tasemel 28 (Android 9 Pie), seega on ebatõenäoline, et paljud rakendused või mängud seda veel ära kasutavad.

See funktsioon on uskumatult kasulik seadmete jaoks, millel on vähe RAM-i ja/või rakendusi, mis söövad tonni RAM-i. Näiteks Fortnite Mobile Androidis nõuab vähemalt 3 GB RAM-i RAM-i tarbimise tõttu (isegi mängu käivitamata reserveeris Fortnite Mobile minu Google Pixel 2 XL-le 1,6 GB muutmälu.) Kui Fortnite sihiks SDK-d tasemel 28 ja kasuta seda funktsiooni, tähendab see, et kogemata mängust väljumine hoiab loodetavasti ära selle kohese tapmise, kui teie seade hakkab tühjaks saama tasuta RAM. Kahjuks Fortnite sihib ainult SDK 21. taset praegu (Android 5.0 Lollipop), seega ei kasuta see kahjuks ära uusimaid API-sid, mida Google pakub Android Pie's, rääkimata Android Oreost, Android Nougatist või Android Marshmallow'st. Loodetavasti värskendatakse teisi mänge, et seda funktsiooni ära kasutada. Järgmiseks aastaks Google nõuab neid värskendada, kui nad soovivad jätkata värskenduste esitamist Google Play poes.