Почему сервисы Google Play не включены в режим Doze

Я использую Nexus 5 и 6P, в Android 6 есть функция под названием «Режим оптимизации батареи» или режим Doze (сокращенно). Это позволяет приложениям не запускаться, если они не используются, чтобы избежать расхода заряда батареи.

Сервисы Google Play потребляют больше батареи, оперативной памяти и процессора. Но он не включается в режим Doze.

Я отправил несколько отзывов со своих устройств об этой проблеме, но Google их вообще не слышит.

Кто-нибудь, пожалуйста, помогите мне прояснить, почему сервисы Google Play не включены в режим Doze?

Ответы (3)

Сервисы Google Play исключены, потому что Google так хочет. Он должен оставаться исключенным из Doze или любого режима энергосбережения, потому что приложения, зависящие от Google Cloud Messaging (GCM), могут не обслуживать пользователя должным образом, что, следовательно, портит работу пользователя с Android. Для клиента GCM Android требуется Play Store и сервисы Play, установленные на устройстве Android.

Так или иначе, вот краткая причина: в файле /system/etc/sysconfig/google.xmlкроме политики использования файла отмечено:

<!-- Это конфигурации, которые должны существовать на всех устройствах GMS. -->
<конфигурация>
    <!-- Это стандартные пакеты, внесенные в белый список, чтобы всегда иметь доступ к Интернету.
         доступ в режиме энергосбережения, даже если они не на переднем плане. -->

    <!-- GmsCore всегда должен иметь доступ к сети для GCM и прочего. -->
    < пакет энергосбережения = "com.google.android.gms" />

    <!-- Play Store также должен иметь доступ к сети для поддержки других приложений. -->
    < allow-in-power-save-except-idle package="com.android.vending" />

где,

  • com.google.android.gms : имя пакета сервисов Google Play.
  • com.android.vending : имя пакета Google Play Store

Я не могу точно говорить о том, что считается другими вещами . Мое обоснованное предположение — это API-интерфейсы, доступные через Play Services. См. Таблицу 1. здесь , чтобы увидеть список этих API.

Примечание . Это выходит за рамки этого ответа или самого вопроса, почему Google решил всегда исключать Play Services и Store из функций энергосбережения Android вместо поиска и реализации гибридного пути.

Отличное объяснение. Спасибо. Если Google не хочет добавлять его в режим сна, по крайней мере, что они могут сделать для пользователей, это попытаться оптимизировать расход заряда батареи сервисами Play. не так ли?
Да, это правда, но пока Google не сделает этого, возможно, мой вопрос может вам помочь: как заставить службы Google Play и другие системные приложения из белого списка по умолчанию дремать?

Это одна из причин, может быть и больше

Службы Google Play имеют API определения местоположения. И ваш Android Device Manager (ADM), который вы используете для отслеживания вашего украденного или потерянного устройства, использует API определения местоположения. Допустим, вы забыли свой телефон, уходя домой, и, вернувшись домой, хотите найти свой телефон, войдя в ADM.

Вы можете сделать это успешно только в том случае, если doze не влияет на ваш ADM (использующий API определения местоположения) , как в случае, описанном здесь. Мешает ли Doze диспетчеру устройств Android? . Если Doze затронул Play Services, вы вообще не сможете отслеживать свой телефон.

Спасибо. Планируется отключить ADM на день, чтобы подтвердить любое изменение времени автономной работы.
Автоматический возврат приложений/игр/данных через Google Play больше, чем ADM, будет потреблять больше энергии. Предложите отключить это и посмотреть
Отключение ADM увеличило срок службы батареи еще на один час. SOT 4 часа 15 минут при полном использовании WiFi и Clash of clans в течение часа, батарея просела со 100% до 10%.
Спасибо, что поделились этой полезной информацией :) всего наилучшего

Сервисы Google Play отвечают за Google Cloud Messaging (GCM). GCM — это механизм, с помощью которого приложения могут запрашивать выход из спящего режима при получении сообщений с высоким приоритетом от GCM. Другими словами, сервисы Google Play частично контролируют спящий режим, поэтому его нельзя перевести в спящий режим.