Что такое «Адаптивная батарея» и что это значит для разработчиков приложений? - PullRequest
0 голосов
/ 15 мая 2018

Фон

Google объявил в Google IO 2018 что-то, что называется «Адаптивная батарея»:

https://youtu.be/ogfYd705cRs?t=3562

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

Проблема

Они сказали, что он проверяет, какие приложения чаще всего используются с помощью ИИ, и что "ОС адаптируется к вашей схеме использования":

Adaptive Battery использует машинное обучение на устройстве, чтобы выяснить, какие приложения, которые вы будете использовать в течение следующих нескольких часов и которые вы не будете использовать до позже, если вообще сегодня

Мне кажется, это может быть еще один шаг в "войне с приложениями для фоновой обработки".

Что я нашел

Поскольку это очень новое, я не нашел ничего о том, как это работает, и если разработчики должны быть обеспокоены этим и должны изменить приложения.

Единственное, что я нашел, это статьи с точки зрения пользователя.

Вопросы

  1. Что такое «Адаптивный аккумулятор»?

  2. Должны ли разработчики беспокоиться, когда он включен?

  3. Какие компоненты приложения, классы фоновой обработки, тревоги, пробуждения, классы синхронизации, фоновые службы / службы переднего плана и т. Д. ... - могут быть затронуты этим?

  4. Если это действительно может повлиять на характер приложения, есть ли API, чтобы проверить, включен ли он, и действовать соответствующим образом? Если да, то как?

  5. Как это соотносится с другими механизмами экономии заряда батареи?

1 Ответ

0 голосов
/ 03 июля 2018

Согласен, эта «Адаптивная батарея» звучит относительно. Эта новая версия Android под названием Android P «ставит ИИ в ядро ​​операционной системы и фокусируется на интеллектуальном и простом опыте». (1) В блоге разработчика они цитируют: «Для разработчиков бета-версия Android P предлагает ряд способов воспользоваться преимуществами этих новых умов, особенно когда дело доходит до увеличения взаимодействия с вашими приложениями ». (1) Совершенно очевидно, что, хотя они пытаются сделать свою ОС лучше для широкой публики, они не забыли своих разработчиков ,

Две вещи, которые больше всего касаются Android P, - это изменения адаптивной батареи и фоновых ограничений. Я постараюсь ответить на ваши пять вопросов в меру своих возможностей, но, конечно, с Android P в бета-версии, еще не все проработано.

1. Что такое «Адаптивная батарея?»

«В Android P мы сотрудничаем с DeepMind по новой функции, которую мы называем« Адаптивная батарея », которая оптимизирует использование батареями в приложениях» (1). Android использует DeepMind для разделения приложений на различные «резервные блоки приложений», которые варьируются от «активных» до «редких». В зависимости от того, в какое резервное хранилище установлено приложение, оно будет варьировать ограничения на сигналы тревоги, задания, сеть и высокоприоритетные сообщения Firebase Cloud.

Эти сегменты: Активные - это означает, что приложение используется в настоящее время. Рабочий набор - это означает, что приложение находится в постоянном использовании. Частые - это означает, что приложение часто используется, но не каждый день. Редкий - это означает, что приложение используется не часто. Очевидно, что эти сегменты не являются четкими, потому что они зависят от DeepMind AI, который реализует Android P. Пожалуйста, следуйте этой ссылке для лучшего объяснения того, что такое корзины и как они используются. Кроме того, эта ссылка является приложением для ограничений управления питанием, которое также проливает свет на адаптивную батарею.

Они также говорят: «Если ваше приложение оптимизировано для дозирования, ожидания приложения и пределов фона, адаптивная батарея должна работать хорошо для вас прямо из коробки. Мы рекомендуем тестировать ваше приложение в каждом из четырех сегментов ».

2. Стоит ли беспокоиться разработчикам, когда он включен?

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

Я думаю, что для разработчиков было бы разумно прислушаться к их предупреждению об оптимизации вашего приложения для Doze, Standby App и Background Limits. И если это не тот путь, по которому вы хотите идти, я настоятельно рекомендую по крайней мере протестировать ваше приложение в каждом из четырех сегментов.

3. Какие компоненты приложения могут быть затронуты этим?

Поскольку Android P все еще находится в бета-версии, они могут быть изменены. На данный момент единственными компонентами приложения, которые будут задействованы, являются: Работа, Тревоги, Сеть и Firebase Cloud Messaging. Все они выполняются по-разному в зависимости от резервного контейнера, в котором DeepMind решает, что они должны быть.

Еще одно замечание: я упомянул фоновые ограничения и собирался немного прояснить это здесь, потому что он похож на Adaptive Battery в смысле своих ограничивающих возможностей. Фоновые ограничения указывают на приложения, использующие аккумулятор в фоновом режиме, и позволяют пользователям устанавливать для них ограничения. «Когда приложение ограничено, это влияет на его фоновые задания, аварийные сигналы, службы и доступ к сети». Поэтому, если пользователь считает, что ваше приложение использует слишком много ресурсов, вы получите ограничение, и создается впечатление, что это похоже на помещение в резервное ведро с низким приоритетом. Однако в Android P API есть способы проверить, ограничено ли ваше приложение, что будет полезно для разработчиков.

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

Да, в API есть вызовы, которые могут сказать вам, в какой корзине вы находитесь, и ограничено ли ваше приложение, как я уже говорил. Например, вы можете узнать, в каком сегменте находится ваше приложение в данный момент, позвонив по номеру: UsageStatsManager.getAppStandbyBucket()

Кроме того, есть отличные способы тестирования вашего приложения с помощью Android Debug Bridge в каждом из этих сегментов. Просто следуйте этой ссылке .

5. Как это сравнить с другими механизмами экономии заряда батареи?

Этот способ экономии аккумуляторных батарей, насколько мне известно, никогда ранее не применялся. Это новый опыт. Тем не менее, я знаю, что фоновые ограничения были доступны начиная с Android Oreo, где пользователи могли видеть, какие приложения разыгрывались. Однако в Oreo пользователи могли видеть только то, какие приложения расходуют заряд батареи, но не могли устанавливать ограничения.

Интересный пример, который я нашел здесь : «Например, допустим, вы действительно смотрите на Instagram только ночью. В этом случае Adaptive Battery изучит это поведение и оставит приложение в спящем режиме в течение дня, а затем разбудит его, когда вы, скорее всего, будете его использовать ». Это пример, который они привели для Android P, чтобы понять, как будет работать DeepMind. помещать приложения в эти резервные корзины.

В целом, я думаю, что это хороший шаг для Android, которого всегда мучают проблемы с батареей. Пока разработчики не рассылают своим пользователям спам-блокировки, уведомления или другие ненужные вещи, это не должно сильно влиять на их приложение. Тем не менее, это заставляет разработчиков делать больше, например, проверять, в каком сегменте они находятся, и действовать соответствующим образом. Время покажет, если это хороший шаг для Android.

Ссылки

  1. (1) - https://android -developers.googleblog.com / 2018/05 / whats-new-in-android-p-beta.html # androidbeta
  2. (2) - https://developer.android.com/preview/features/power#buckets
  3. (3) - https://developer.android.com/preview/features/power-details
  4. (4) - https://www.howtogeek.com/352364/how-android-p-will-increase-battery-life/
...