Я использую Nexus 5 и 6P, в Android 6 есть функция под названием «Режим оптимизации батареи» или режим Doze (сокращенно). Это позволяет приложениям не запускаться, если они не используются, чтобы избежать расхода заряда батареи.
Сервисы Google Play потребляют больше батареи, оперативной памяти и процессора. Но он не включается в режим Doze.
Я отправил несколько отзывов со своих устройств об этой проблеме, но Google их вообще не слышит.
Кто-нибудь, пожалуйста, помогите мне прояснить, почему сервисы Google Play не включены в режим Doze?
Сервисы 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" />
где,
Я не могу точно говорить о том, что считается другими вещами . Мое обоснованное предположение — это API-интерфейсы, доступные через Play Services. См. Таблицу 1. здесь , чтобы увидеть список этих API.
Примечание . Это выходит за рамки этого ответа или самого вопроса, почему Google решил всегда исключать Play Services и Store из функций энергосбережения Android вместо поиска и реализации гибридного пути.
Это одна из причин, может быть и больше
Службы Google Play имеют API определения местоположения. И ваш Android Device Manager (ADM), который вы используете для отслеживания вашего украденного или потерянного устройства, использует API определения местоположения. Допустим, вы забыли свой телефон, уходя домой, и, вернувшись домой, хотите найти свой телефон, войдя в ADM.
Вы можете сделать это успешно только в том случае, если doze не влияет на ваш ADM (использующий API определения местоположения) , как в случае, описанном здесь. Мешает ли Doze диспетчеру устройств Android? . Если Doze затронул Play Services, вы вообще не сможете отслеживать свой телефон.
Сервисы Google Play отвечают за Google Cloud Messaging (GCM). GCM — это механизм, с помощью которого приложения могут запрашивать выход из спящего режима при получении сообщений с высоким приоритетом от GCM. Другими словами, сервисы Google Play частично контролируют спящий режим, поэтому его нельзя перевести в спящий режим.
Сараванан Г.
Повелитель огня