В Android Pie добавлена ​​функция, предотвращающая завершение ресурсоемких игр при случайном выходе

click fraud protection

Android Pie выходит сегодня, и одна из интересных скрытых функций — это возможность предотвратить завершение ресурсоемких игр, если вы случайно выйдете.

Ранее сегодня Google официально объявлено Android Pie для Google Pixel и Google Pixel 2. Сразу после этого, Essential выпущен обновление Android 9 для Essential Phone. Другие устройства, принявшие участие в бета-программе Android P должно вскоре получить обновление, поэтому пользователям, которые пропустили предварительные просмотры для разработчиков, теперь предстоит многое наверстать. Когда мы углубимся в последний выпуск, включая сброс исходного кода на AOSP и последнюю версию документа определения совместимости (CDD), мы будем периодически информировать вас о любой новой информации, которую мы обнаружим. Что-то интересное, что мы нашли на CDD, — это раздел для «тяжеловесных» (нагруженных оперативной памятью) приложений и игр. при этом Android Pie будет отдавать приоритет сохранению этих приложений в оперативной памяти, если пользователь случайно выйдет из игры. их.

«Тяжелые» приложения и игры в Android Pie

В раздел добавлен новый раздел CDD который описывает эту особенность. Вот что там написано:

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

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

  • [C-1-1] ДОЛЖНО иметь только одно установленное приложение, которое указывает cantSaveState, работающее в системе одновременно. Если пользователь покидает такое приложение, не выйдя из него явным образом (например, нажимая «домой» при выходе из активного действия, система вместо того, чтобы нажимать «назад», не оставаясь активные действия в системе), тогда реализации устройства ДОЛЖНЫ отдавать приоритет этому приложению в оперативной памяти, как и для других вещей, которые, как ожидается, будут продолжать работать, например переднего плана. услуги. Пока такое приложение находится в фоновом режиме, система по-прежнему может применять к нему функции управления питанием, такие как ограничение доступа к ЦП и сети.
  • [C-1-2] ДОЛЖЕН предоставлять возможность пользовательского интерфейса выбирать приложение, которое не будет участвовать в механизме сохранения/восстановления нормального состояния после того, как пользователь запускает второе приложение, объявленное с атрибутом cantSaveState.
  • [C-1-3] НЕ ДОЛЖНО применять другие изменения в политике к приложениям, которые указывают cantSaveState, например, изменение производительности ЦП или изменение приоритетов планирования.

Если реализации устройства не декларируют эту функцию FEATURE_CANT_SAVE_STATE , Затем они:

  • [C-1-1] ДОЛЖЕН игнорировать атрибут cantSaveState, установленный приложениями, и НЕ ДОЛЖЕН изменять поведение приложения на основе этого атрибута.

По сути, это означает, что если устройство поддерживает FEATURE_CANT_SAVE_STATE функция, то они должны уделить приоритетное внимание сохранению в оперативной памяти работающего приложения, которое указывает не могу сохранить состояние атрибут. Эта приоритезация оперативной памяти срабатывает, если пользователь выходит из приложения или игры, нажимая кнопку «Домой» или выходя из приложения или игры, не выходя из них явным образом (например, при нажатии кнопки «Назад»). или кнопку выхода.) Кроме того, система по-прежнему может экономить электроэнергию, ограничивая доступ к ЦП и сети для этих приложений, но они просто не могут освободить оперативную память, убивая их, если это не необходимый. Наконец, обратите внимание, что разрешено запускать только одно приложение с определенным атрибутом cantSaveState. Если вы попытаетесь запустить другое приложение с этим атрибутом, определенным во время работы другого, Android Pie попросит вас выбрать, какую игру вы хотите продолжить.

Вы можете проверить, поддерживает ли ваше устройство FEATURE_CANT_SAVE_STATE, выполнив следующие две команды через ADB:

adb shell
dumpsys package | grep "cant_save_state"

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

Эта функция будет невероятно полезна для устройств с небольшим объемом оперативной памяти и/или приложений, которые потребляют массу оперативной памяти. Например, Fortnite Mobile на Android. требуется минимум 3 ГБ оперативной памяти из-за того, сколько оперативной памяти он потребляет (даже не запуская игру, Fortnite Mobile резервировал 1,6 ГБ ОЗУ на моем Google Pixel 2 XL.) Если бы Fortnite ориентировался на SDK уровень 28 и используйте эту функцию, то это означает, что случайный выход из игры, мы надеемся, предотвратит ее немедленное завершение, если на вашем устройстве заканчивается свободная оперативная память. К сожалению, Фортнайт нацелен только на уровень SDK 21 в настоящее время (Android 5.0 Lollipop), поэтому, к сожалению, он не использует преимущества новейших API, которые Google предлагает в Android Pie, не говоря уже об Android Oreo, Android Nougat или Android Marshmallow. Будем надеяться, что другие игры обновятся, чтобы воспользоваться этой функцией. К следующему году Google потребует их обновить, если они хотят продолжать отправлять обновления в Google Play Store.