Android Pie добавя функция за предотвратяване на убиване на тежки RAM игри, ако случайно излезете

click fraud protection

Android Pie излиза днес и една от страхотните скрити функции е възможността да се предотврати спирането на тежки RAM игри, ако случайно излезете.

По-рано днес Google официално обявено Android Pie за Google Pixel и Google Pixel 2. Веднага след това, Essential пуснат актуализацията на Android 9 за Essential Phone. Други устройства, които участваха в бета програмата на Android P скоро трябва да получи актуализацията, така че потребителите, които са пропуснали визуализациите за разработчици, сега имат много да наваксват. Докато копаем в най-новата версия, включително падане на изходния код на AOSP и най-новия документ за дефиниция на съвместимостта (CDD), ние периодично ще ви актуализираме с всяка нова информация, която разкрием. Нещо интересно, което открихме в CDD, е раздел за "тежки" (RAM-тежки) приложения и игри при което Android Pie ще даде приоритет на запазването на тези приложения в RAM, ако потребителят случайно излезе тях.

„Тежка категория“ приложения и игри в Android Pie

Нов раздел е добавен към CDD който очертава тази характеристика. Ето какво пише:

3.17. Тежки приложения

Ако реализациите на устройства декларират функцията FEATURE_CANT_SAVE_STATE, тогава те:

  • [C-1-1] ТРЯБВА да има само едно инсталирано приложение, което посочва cantSaveState, работещо в системата в даден момент. Ако потребителят напусне такова приложение, без изрично да излезе от него (например чрез натискане на home, докато напуска системата на активна дейност, вместо натискане назад, без да остава активни дейности в системата), тогава внедряванията на устройства ТРЯБВА да приоритизират това приложение в RAM, както правят за други неща, които се очаква да продължат да работят, като например преден план услуги. Докато такова приложение е във фонов режим, системата все още може да прилага функции за управление на захранването към него, като ограничаване на достъпа до процесора и мрежата.
  • [C-1-2] ТРЯБВА да предостави възможност за потребителски интерфейс за избор на приложението, което няма да участва в механизма за запазване/възстановяване на нормално състояние, след като потребителят стартира второ приложение, декларирано с атрибута cantSaveState.
  • [C-1-3] НЕ ТРЯБВА да се прилагат други промени в правилата към приложения, които указват cantSaveState, като например промяна на производителността на процесора или промяна на приоритета на планирането.

Ако реализациите на устройството не декларират функцията FEATURE_CANT_SAVE_STATE , тогава те:

  • [C-1-1] ТРЯБВА да игнорира атрибута cantSaveState, зададен от приложенията, и НЕ ТРЯБВА да променя поведението на приложението въз основа на този атрибут.

По принцип това означава, че ако дадено устройство поддържа FEATURE_CANT_SAVE_STATE функция, тогава те трябва да дадат приоритет на запазването в RAM на работещото приложение, което указва cantSaveState атрибут. Това приоритизиране на RAM се включва, ако потребителят излезе от приложението или играта, като натисне бутона за начало или напусне приложението или играта, без изрично да излезе от тях (като с натискане на бутон за връщане назад или бутон за излизане.) Освен това системата все още може да пести енергия, като ограничи достъпа до процесора и мрежата на тези приложения, но те просто не могат да освободят RAM, като ги убият, освен ако не е необходимо. И накрая, имайте предвид, че е разрешено да се изпълнява само едно приложение с дефиниран атрибут cantSaveState. Ако се опитате да стартирате друго приложение с този атрибут, дефиниран, докато друго работи, Android Pie ще ви помоли да изберете коя игра искате да продължите да работи.

Можете да проверите дали вашето устройство поддържа FEATURE_CANT_SAVE_STATE, като изпълните следните две команди чрез ADB:

adb shell
dumpsys package | grep "cant_save_state"

За да проверите дали дадено приложение посочва атрибута cantSaveState, ще трябва да декомпилирате приложението и да прегледате неговия манифест или да използвате dumpsys package package.name.here команда в ADB shell. Имайте предвид, че този атрибут е добавен току-що в API ниво 28 (Android 9 Pie), така че е малко вероятно много приложения или игри да се възползват от това още.

Тази функция ще бъде невероятно полезна за устройства с малки количества RAM и/или приложения, които изяждат много RAM. Например Fortnite Mobile на Android изисква минимум 3 GB RAM заради това колко RAM изяжда (без дори да стартира игра, Fortnite Mobile запазваше 1,6 GB RAM на моя Google Pixel 2 XL.) Ако Fortnite се насочи към SDK ниво 28 и да използвате тази функция, тогава това означава, че случайното излизане от играта, надяваме се, ще предотврати незабавното й спиране, ако устройството ви е изчерпано свободна RAM памет. За съжаление, Fortnite е насочен само към SDK ниво 21 по това време (Android 5.0 Lollipop), така че за съжаление не се възползва от най-новите API, които Google предлага в Android Pie, да не говорим за Android Oreo, Android Nougat или Android Marshmallow. Надяваме се, че други игри ще се актуализират, за да се възползват от тази функция. До следващата година Google ще ги изисква за актуализиране, ако искат да могат да продължат да изпращат актуализации в Google Play Store.