Комментарии 13
Столько препон простым разработчикам для того, чтобы их приложения могли нормально работать в фоне.

А Google Play Services как жрали батарею в три горла, так и жрут. Но им можно, они же системные!

Обычно приложениям (если это не мессенжер или навигатор) вообще не нужно работать в фоне, так что я лично руками и ногами за полное убивание фона кроме явно отмеченных (и хорошо обоснованных) приложений.


Всякие календари, будильники и напоминалки могут ставить таймер для просыпания (и то на короткое время), пуши тоже сами будят кого надо, работа в фоне для этого не нужна, и больше я кейсов для работы в фоне не вижу. Те кто сможет убедить пользователя — получат галочку "работай", а не смогут — пусть спят и не используют ресурсы, которых и так мало даже на high-end устройствах (батарейка в частности).


У меня Google Play Services вообще не видны, если на телефон ничего фонового не ставить (и убить всё остальное принудительно) — то он почти не жрёт ничего пока спит (Galaxy S7 — минимум неделя до 10%), а планшет (Galaxy Tab S6) с прибитым фоном (кроме гугля) вообще неделями может в standby находится (последний раз 20 дней сна с остатком в примерно 60%).

У меня Google Play Services вообще не видны, если на телефон ничего фонового не ставить

У меня на данный момент не рутованный телефон (жду анлока), и «Система андроид» куда-то сожрала целых 13% батареи за 3 часа с последней зарядки, хотя я полчаса смотрел Аниме и час слушал музыку. Вот зачем оно в фоне что-то делало?
Как рутану, посношу всё нафиг, на старом телефоне никаких левых процессов не было, только активные приложения, экран да сеть, всё остальное в пределах погрешности.

То есть полчаса аниме и час музыки вы не считаете потребителем батарейки, она у вас расходуется исключительно в фоне?

Полчаса аниме и час музыки я считаю целевым потреблением батареи. Полчаса видео это 25% на сам плеер и 25% на экран, вполне себе ожидаемое потребление для сложной задачи. 15% на музыку так же не вызывает сильного удивления, задача лёгкая, но не даёт устройству полностью уснуть. По 7% на сеть и режим ожидания… В принципе сойдёт, сигнал у меня дома действительно так себе.
А вот пусть даже 13%, но не понятно на что, вот это меня печалит.
И да, я не особо жалуюсь на батарею, 5000 мАч в принципе позволяет хоть игрушку утром запустить, и дотянуть до вечера, но блин, всё равно не хочется тратить заряд на удовлетворение внутренних потребностей софта от Google.

Почему вы думаете что это исключительно софт от гугла? В "Android System" показываются не только расходы самой системы и софта от гугла, туда вообще могут попасть "расходы" любого софта которые использует систему (скажите спасибо неточной системе учёта). То есть в зависимости от вендора, версии и ещё может быть фаз Луны может получится так что условный навигатор попадёт в учете энергии в Android System, а не сам на себя. Использование сенсоров и сети тоже не всегда отражается там где должно, к сожалению, и без рута этого не увидеть (а иногда даже и с рутом).


Если у вас абсолютно голый телефон без ничего (кроме софта от гугла) и он жрёт 13 процентов за три часа в спящем режиме, ещё и с учётом такой монстрообразной батарейки — да, тогда это (вероятно) проблема гугла — но если это не телефон гугла (судя по батарейке — не он) — то с вероятностью 95% это косяки вендора.


То есть сам по себе андроид вполне даже умеет экономить батарейку, но вот в чистом виде он редко бывает в природе, вендоры любят косячить.

13 процентов за три часа

Извиняюсь, наверное ввёл в заблуждение. 13% это от общего потребления, батарейка просела процента на 3 (и ещё через 3 часа ни капли не потратилась).
То есть сам по себе андроид вполне даже умеет экономить батарейку, но вот в чистом виде он редко бывает в природе, вендоры любят косячить.

Собственно это и буду исправлять с рутом. Всякие msa да многозначительные Analytics явно не для моей пользы стоят. Да и гугловские сервисы порежу. На прошлых телефонах после допиливания у меня никакие «Система Android» в принципе не отсвечивали, старичок SGS2 мог 2 недели пролежать, несмотря на не самый энергоэффективный процессор и батарею в смешные по нынешним временам 1450 мАч.
А есть приложения, которым надо работать в фоне вполне легально (gps трекеры например), я как раз такое разрабатываю. Там есть большое уведомление в статусбаре, чтобы всегда быть в курсе фоновой работы, и большой тумблер, который позволяет эту работу в фоне выключить. Никто не просит давать любому приложению в фоне делать что угодно. Всё, о чём разработчики умоляли Гугл — это дать возможность попросить у пользователя право работать в фоне. В ответ гугл такой возможности не дали и продолжили закручивать гайки. Кроме того, сертификацию гугла проходят всякие веселые «кастомизации» системного апи от Huawei и Xiaomi, которые убивают приложения даже вручную добавленные в список исключений или имеющие foreground сервисы.

Вот еще отличный пример:
www.androidpolice.com/2020/07/24/covid-19-tracing-apps-may-fail-to-notify-exposed-users-due-to-aggressive-oem-battery-saving-measures

>У меня Google Play Services вообще не видны,
А у меня видны, и у многих моих знакомых и пользователей — тоже. Достаточно вбить в гугл «google play services drains battery», чтобы убедиться, что проблема массовая. Причём отключить эту дрянь никак нельзя, потому что все правила энергосбережения на гугловые сервисы не распространяются. Системное приложение ведь всегда работает хорошо и не может жрать батарейку просто так!
А есть приложения, которым надо работать в фоне вполне легально (gps трекеры например), я как раз такое разрабатываю.

Про это я сказал отдельно. Хотя даже для трекера есть возможность получать только изменения позиции от сервисов, а не мониторить их постоянно через GPS (иногда этого достаточно, и гораздо более экономно).


Достаточно вбить в гугл «google play services drains battery», чтобы убедиться, что проблема массовая.

Как я уже сказал выше, если они видят Google Play Services в расходах батарейки — это не значит что сами сервисы её расходуют. Любое приложение (системное или нет), которое использует эти сервисы (включая GPS) может туда попасть "за компанию".


Да, я не спорю что проблема массовая, но если бы это была проблема сервисов, то удаление стороннего приложения (у меня однажны таковым оказалось Sleep as Android) не привело бы к снижению расходов в самих сервисах (а именно там они и отображались, вместо самих себя).


Что ещё более забавно — GSam Battery Monitor как-то тоже сошёл с ума и стал жрать батарейку в фоне, при этом пеняя на систему — но его переустановка решила вопрос.


Так что не всегда виноват гугл или его сервисы, но люди верят тому что видят, а то что у них стоит ещё 100500+ приложений (системных или нет) которые на самом деле могут быть виноваты, никого не волнует.

Причём отключить эту дрянь никак нельзя

В смысле нельзя? Рут и отключаем. Телефон без рута я вообще за свой телефон не считаю, даже фоток не лью, ибо кто его знает, куда он их сольёт. А гугл активно сливает, даже при коннекте через сотовую сеть целый мегабайт слил неизвестно на что, а уж сколько льёт через WiFi (который стандартными средствами не ограничивается), даже в сказке не описать.
Те кто сможет убедить пользователя — получат галочку «работай»

Беда в том что даже с этим флагом некоторые вендоры любят приложения убивать. И пофиг им как на мнение разработчика, так и на мнение пользователя который приложению все нужные флаги выставил для возможности более полноценной работы в фоне.
Спасибо за статью. Редкий случай когда не просто в архиве покета оставил или закладках хабра, но и в закладки браузера добавил. По большому счету ради adb команд правда.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Информация

Дата основания
Местоположение
Россия
Сайт
city-mobil.ru
Численность
501–1 000 человек
Дата регистрации

Блог на Хабре