Настройки Android O, чтобы включить фоновое ограничение для приложений

Согласно документам -

Примечание. По умолчанию эти ограничения применяются только к приложениям, предназначенным для Android 8.0 (уровень API 26) или выше. Однако пользователи могут включить большинство из этих ограничений для любого приложения на экране настроек, даже если приложение нацелено на уровень API ниже 26.

Я ориентируюсь на Ниже API 26, но не могу найти настройки, чтобы включить ограничение в официальном эмуляторе Android.

Где доступна эта настройка?


person Arnav M.    schedule 20.09.2017    source источник
comment
В версиях Android ниже API 26 ограничений нет.   -  person Pehlaj - Mobile Apps Developer    schedule 20.09.2017
comment
@user12345 user12345 Я прошу приложение, работающее на API 26, с таргетингом ниже API 26.   -  person Arnav M.    schedule 20.09.2017
comment
Какая версия андроида установлена ​​в эмуляторе?   -  person Pehlaj - Mobile Apps Developer    schedule 20.09.2017
comment
API 26 = Android О   -  person Arnav M.    schedule 20.09.2017
comment
Тогда вам может понадобиться запустить на реальном устройстве.   -  person Pehlaj - Mobile Apps Developer    schedule 20.09.2017
comment
вероятно, они имеют в виду в параметрах разработчика -> фоновые процессы -> нет фоновых процессов вместо стандартного лимита   -  person matrix    schedule 20.09.2017
comment
@matrix эта настройка - это другое.   -  person Arnav M.    schedule 20.09.2017
comment
@user12345 user12345 опубликуйте здесь скриншот, его нельзя исключать из эмулятора.   -  person Arnav M.    schedule 20.09.2017
comment
Предполагается, что он отображается на странице настроек приложения для приложений, которые потребляют много заряда батареи. См. мой майский блог. сообщение для некоторой информации об этом. Однако мне пока не удалось воспроизвести это в продакшене.   -  person CommonsWare    schedule 20.09.2017
comment
@CommonsWare спасибо за разъяснение. Поэтому разработчики не должны рассматривать этот вариант. Если вы хотите, чтобы приложения работали на O, соблюдайте фоновые ограничения!   -  person Arnav M.    schedule 20.09.2017
comment
Безопаснее всего предположить, что на ваше приложение могут распространяться ограничения фонового выполнения 8.0, даже если ваш targetSdkVersion ниже 26. В некоторых случаях вам все равно не нужно вносить какие-либо изменения. Например, если у вас есть сервис, который загружает файл, и вы уверены, что сервис будет сделан менее чем за минуту, фоновые ограничения вас не коснутся.   -  person CommonsWare    schedule 20.09.2017
comment
@CommonsWare В этом случае нацельтесь на любой API, все они будут иметь одинаковый эффект.   -  person Arnav M.    schedule 20.09.2017


Ответы (2)


Параметр включить ограничение фона доступен на экране Информация о приложении -> Батарея.

Пока не воспроизводится в эмуляторе.

Этот параметр недоступен при первоначальной установке приложения (нацелено на API ниже 26), пока приложение не выполнит некоторую фоновую работу.

Так что я смог произвести его с помощью-

  1. Целевое приложение в API 25
  2. Создайте долго работающую службу (около 5 минут)
  3. Запуск службы из onCreate из MainActivity
  4. Отправьте приложение в фоновый режим (нажмите назад) и оставьте устройство включенным от батареи (питание не подключено)

В течение нескольких минут будет доступна опция включения ограничений.

person Arnav M.    schedule 13.10.2017

Вы можете использовать adb для включения/отключения фоновых ограничений.

В Android 7.0 (уровень API 24) представлены некоторые дополнительные команды Android Debug Bridge (ADB), которые можно использовать для проверки поведения приложения с отключенными фоновыми процессами:

  • Чтобы смоделировать условия, при которых неявные широковещательные рассылки и фоновые службы недоступны, введите следующую команду: $ adb shell cmd appops set <package_name> RUN_IN_BACKGROUND ignore
  • Чтобы снова включить неявные широковещательные рассылки и фоновые службы, введите следующую команду: $ adb shell cmd appops set <package_name> RUN_IN_BACKGROUND allow

Источник: https://developer.android.com/topic/performance/background-optimization#further-optimization

И вы также можете настроить приложение для работы в фоновом режиме:

adb shell am make-uid-idle <package>

Источник: Ограничения фонового выполнения Android Oreo

person xmarcusv    schedule 08.10.2018