Что такое "Адаптивный аккумулятор" и что это значит для разработчиков приложений?

Фон

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

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

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

Эта проблема

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

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

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

Что я нашел

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

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

Вопросы

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

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

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

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

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

1 ответ

Решение

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

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

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

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

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

Они также говорят: "Если ваше приложение оптимизировано для Doze, Standby и Background Limits, Adaptive Battery должна работать хорошо для вас прямо из коробки. Мы рекомендуем тестировать ваше приложение в каждом из четырех сегментов ".

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

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

Я думаю, что для разработчиков было бы разумно прислушаться к их предупреждению об оптимизации вашего приложения для Doze, App Standby и 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
  2. (2) - https://developer.android.com/preview/features/power
  3. (3) - https://developer.android.com/preview/features/power-details
  4. (4) - https://www.howtogeek.com/352364/how-android-p-will-increase-battery-life/
Другие вопросы по тегам