26 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Android 6.0: Doze Mode, App Standby, Runtime Permissions. Всё, что необходимо знать каждому разработчику

Android 6.0: Doze Mode, App Standby, Runtime Permissions. Всё, что необходимо знать каждому разработчику

Освой программирование играючи

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей – и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Читайте на здоровье!

Статья проплачена кошками – всемирно известными производителями котят.

Если статья вам понравилась, то можете поддержать проект.

Новые алгоритмы сна под названием Doze помогут вашему устройству работать на одной зарядке дольше: в моменты, когда аппарат долго лежит неподвижно, не подключен к зарядке и его дисплей не включается для отображения уведомлений, все приложения ставятся на паузу (App Standby), передача данных минимизируется, процессор переходит в энергосберегающий режим, все синхронизации и прочие любители что-нибудь сделать, пока телефон «бездельничает» отправляются в сон.

Впервые этот режим был внедрён в Android Marshmallow и в следующих версиях требования ужесточаются всё больше и больше.

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

Для особо важных задач можно запустить метод setAndAllowWhileIdle() от AlarmManager, но не чаше одного раза в 15 минут.

Doze Mode

Когда устройство на Android Marshmallow лежит без движения и без зарядки, спустя час оно переходит в Doze Mode. Режим отключки, когда почти все приложения перестают жрать батарею. Это происходит не сразу, а по шагам:

  • ACTIVE — Устройство используется или на зарядке
  • INACTIVE — Устройство недавно вышло из активного режима (пользователь выключил экран, выдернул зарядку и т.п.)
  • . 30 минут
  • IDLE_PENDING — Устройство готовится перейти в режим ожидания
  • . 30 минут
  • IDLE — Устройство в режиме бездействия
  • IDLE_MAINTENANCE — Открыто короткое окно, чтобы приложения выполнили свою работу

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

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

Далее вы можете увидеть состояние устройства.

Команда будет возвращать следующие строки в разное время.

Вернуть батарею обратно в обычное состояние зарядки от сети.

Увидеть все доступные команды.

В момент, когда устройство переходит в состояние IDLE:

  • Доступ приложению к сети отключен, пока приложение не получит high-priority GCM-push
  • Система игнорирует Wake Lock. Приложения могут сколько угодно пытаться запросить пробуждение процессора — они их не получат
  • Запланированные Alarm в AlarmManager не будут вызываться, кроме тех, которые будут обновлены с помощью setAndAllowWhileIdle()
  • Система не производит поиска сетей Wi-Fi
  • NetworkPolicyManagerService: пропускает только приложения из белого списка
  • JobSchedulerService: все текущие задачи отменяются. Новые откладываются до пробуждения
  • SyncManager: все текущие отменяются, новые откладываются до пробуждения
  • PowerManagerService: только задачи приложений из белого списка

Соответственно, если наше приложение является чатом, то мы можем отправить с сервера push с полем priority = high. А если у нас приложение будильник, то мы должны обязательно вызвать setAndAllowWhileIdle() или setExactAndAllowWhileIdle().

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

Режим Standby

Если у приложения есть фоновые задачи, но приложение простаивает, то включается режим Standby.

Если приложение простаивает долгое время, то система разрешит делать ему запрос в сеть один раз в сутки.

Ремжим App Standby отправляет в изоляцию приложения, которые не подходят под условия:

  • Пользователь явно запустил приложение
  • Приложение имеет процесс, работающий в данный момент на переднем плане (Activity или foreground service, или используется другая активность или foreground service)
  • Приложение создало уведомление, которое висит в списке уведомлений
  • Пользователь принудительно добавил приложение в список исключений оптимизации в настройках системы

Этот режим тоже можно тестировать с помощью команд.

Разбудить приложение можно командой.

Проверить статус приложения:

Например, может вернуться строка.

Есть специальный белый список Whitelist, в который пользователь может добавить исключения. Приложениям из белого списка не страшны ни Doze Mode ни App Standby.

Пользователь может настроить нужные приложения, чтобы они не включали режим ожидания Standby. Для этого идём в Настройки | Приложения, нажимаем на значок шестерёнки и выбираем пункт Экономия заряда батареи. В выпадающем списке Не экономят заряд можно увидеть программы, которые не используют режим ожидания. Переключитесь на Все приложения и выберите нужно приложение из списка. В диалоговом окне можете установить режим Не экономить.

Можно программно узнать, находится ли приложение в “белом списке” приложений, которым разрешено не экономить заряд. Нужно указать имя пакета приложения (не обязательно указывать своё приложение).

Если находится, то вернёт true, иначе – false.

Сами вы не сможете добавить своё приложение в белый список, это может сделать только пользователь вручную. Но вы можете ему показать нужный экран настройки, чтобы он его не искал.

Более агрессивный способ, когда вы явно вызывает диалоговое окно для добавления приложения в белый список.

В манифесте следует прописать разрешение.

Если приложение уже находится в белом списке, то диалоговое окно не появится.

App Permissions в Android – что это и как его использовать

Мы все слышали истории о вредоносных приложениях, которые крадут ценные данные и отправляют их злоумышленникам. Специалисты утверждают, что перед установкой каждого приложения необходимо тщательно ознакомиться с его разрешениями. Но что они означают и как их правильно настроить?

Зачем необходим App Permissions на Android и как его удалить.

Что это такое

App Permissions – это и есть разрешения. Когда вы устанавливаете софт из Google Play на устройстве под управлением Android 6.0 или выше, вы контролируете, к каким возможностям или информации может обращаться программа – так называемые разрешения. Например, утилите может потребоваться разрешение на просмотр контактов или местоположения вашего устройства. Вы можете контролировать, к каким разрешениям ПО сможет получить доступ после установки на устройстве. И если «Автоматический запуск программы при загрузке» говорит само за себя, то разобраться в остальных может быть не так просто. Проблема в том, что программы могут иметь веские основания для их использования, потому что одним разрешением может быть охвачено несколько разных вещей. Рассмотрим самые распространённые примеры менеджмента разрешений более подробно.

Совершать и принимать вызовы

Это означает, что ПО может автоматически сделать звонок. Каждая утилита может самостоятельно запускать номеронабиратель и даже вводить номер, но, если это разрешение не предоставлено, пользователю нужно нажать кнопку вызова. Такие вещи, как сторонний номеронабиратель, Google Voice или всё, что связано с вашей телефонной «звонилкой», должно иметь это разрешение. Если ПО его запрашивает, но не должно иметь ничего общего с совершением звонков, отклоните запрос и выясните причину запроса у разработчиков через отзывы на Google Play. Даже если причины использования того или иного разрешения вам не понятны, они могут требоваться для стабильной работы программ.

Получение и отправка SMS или MMS

Подписные SMS-сервисы – лёгкий способ для мошенника заработать деньги, так что за ними нужно следить. Доступ понадобится SMS-приложениям (что очевидно), а также утилитам, которые позволяют редактировать или делать снимки, а также делиться ими. Программы, которые могут совместно использовать любые медиа, скорее всего будут иметь эту настройку. Если софт не может никому ничего отправлять, следует проверить, зачем это нужно разработчикам.

Чтение/запись контактов

Почтовый клиент или мессенджер любого типа использует это разрешение, чтобы делать именно то, о чём говорит его название – читать ваши контакты. Например, Twitter или Facebook – они хотят иметь возможность находить ваших друзей, которые также пользуются их услугами, или упростить для вас рассылку спама тем, кто этого не делает. «Контакты» – это широкий термин, потому что в отдельном контакте может храниться много различной информации. Например, в играх, где также есть списки лидеров. Всё, что может связать вас с другим пользователем, будет нуждаться в этом разрешении. Права на сохранение контактов следует той же логике – если утилита может добавить контакт, ей может потребоваться это разрешение. В этом случае «записать» означает изменить или добавить в список контактов, а не написать сообщение.

Чтение/запись событий календаря

Здесь всё довольно просто. Настройка позволяет делать только одно – автоматически читать календарь. Некоторые утилиты должны иметь доступ к календарю. Это программы, которые могут напоминать о приёме лекарств или автоматически сообщать о предстоящей поездке, считывая данные из календаря. Если программа каким-либо образом связана с планированием, то использование такого доступа вполне оправдано. Если это не так, перед установкой выясните, зачем приложению нужен доступ к календарю. Запись событий календаря является обычным делом. Если неясно, зачем программе нужны эти настройки, описание в магазине Play должно рассказать вам больше. Если вы все ещё не уверены, спросите разработчика.

Читать еще:  ВКонтакте 5.49 для Андроид

Phone Status And Identity

Это наиболее распространённое и наименее понятное разрешение из всех. Вы должны понимать, что оно распространяется на две разные вещи, которые не следует путать. Есть много веских причин, чтобы узнать состояние вашего телефона. И игра является отличным примером. Вы можете заниматься своим делом и играть в игру, когда внезапно зазвонит ваш телефон. Игра должна вернуться на главный экран и позволить уведомлению о входящем звонке появиться сверху остальных окон. После этого вызов полностью берёт управление телефоном на себя, но игра должна об этом знать/ Это необходимо для того, чтобы продолжить работу в фоновом режиме, пока вы не закончите разговор.

Важно знать, какой идентификатор запрашивает программа. Каждый телефон имеет идентификатор устройства, который отличается от любого другого, и его можно раскрыть, не передавая никакой личной информации. Когда вы видите, сколько людей используют определённую версию Android на графике от Google, они используют этот идентификатор устройства, чтобы помочь получить эти цифры. Когда вы заходите в Google Play и скачиваете программу, вас подсчитывают, и при этом только один раз. Идентификатор смартфона также является лучшим способом для синхронизации облачных данных и настроек ПО со смартфоном. Разрешение указывает только на то, какой у вас телефон и какое на нём программное обеспечение, поэтому ваши данные не будут доступны.

Разрешение также позволяет прочитать другой уникальный идентификатор – IMEI. Номер IMEI – это то, как телефонная компания подключает телефон – ваш адрес, ваше имя и всё остальное, что вам нужно будет предоставить, чтобы купить телефон, который сможет доказать, кто вы. Эти данные трудно получить – между ними и любыми данными вашей учётной записи есть минимум три разных защищённых и зашифрованных сервера базы данных, но получить доступ к ним не невозможно. Поскольку у вас нет возможности узнать, какой идентификатор требует приложение, выберите «Нет», если не знаете, почему разработчики этого хотят и что они с ним делают.

GPS и сетевое местоположение

Если приложение должно знать, где вы находитесь, оно должно запросить ваше местоположение. Есть два вида местоположения – неточное и точное. Первый вариант подходит для большинства рядовых ситуаций, но иногда требует точное местоположение. Потребность в вашем точном местоположении может быть определена простым запросом. Например, когда приложение должно знать, что находится в радиусе 50 м. Здесь необходимо точное местоположение. Точное местоположение необходимо и программам, которые, например, показывают, где находятся супермаркеты с оборудованным для инвалидов входом или лифтами. А вот простые программы для совершения покупок не требуют точного местоположения, в отличие от навигационных карт.

Изменять/Удалять содержимое SD-карты

Это разрешение, которое позволяет приложению читать или записывать данные на внешнюю память смартфона. Необходимо, чтобы дать приложению возможность свободно просматривать данные, изменять их, удалять и добавлять дополнительную информацию данные в любое место на SD-карте. Сбивает с толку тот факт, что под SD-картой подразумевается не только флешка. В файловой системе Android память телефона также называется SD-картой. Google многое сделал, чтобы сделать это разрешение безвредным. В каждой версии они уточняют, как приложение может получить доступ только к той информации, которая ему нужна. Но все ещё есть пользователи, использующие старые версии программ и ОС. Если вы один из них, убедитесь, что вы доверяете приложению, прежде чем устанавливать его. Любое приложение, написанное для API уровня 4 (Android 1.6 Donut) или ниже, получает это разрешение по умолчанию. Таких приложений не так много. Какой вред это может принести, зависит от того, какие данные хранятся в памяти вашего телефона. Телефоны под управлением Android 7 Nougat и приложения, созданные для телефонов под управлением Android 7, используют доступ к каталогу в заданной области, что гораздо удобнее и безопаснее.

Полный доступ к сети

Это разрешение означает именно то, что оно говорит. Приложение хочет иметь возможность отправлять запросы и получать ответ через сеть (Wi-Fi или подключение для передачи данных по мобильной сети). Помимо приложений, которые используют Интернет для чего-то очевидного, в них нуждаются в этом приложения с рекламой. Разрешение довольно безвредное, но, когда речь заходит о вашей личной информации, оно может использовать данные без вашего ведома. Мы ненавидим платить за дополнительные данные так же, как и вы. Если вы найдёте приложение, которое должно работать в автономном режиме, но не работает, удалите его.

Как удалить App Permissions

Чтобы найти свои приложения и их разрешения на Android, откройте «Настройки», а затем нажмите «Приложения и уведомления», «Информация о приложении» и выберите интересующее вас приложение. Выберите пункт «Разрешения», чтобы просмотреть, какими из них обладает приложение. Вы можете отключить любое из них в любое время, передвинув переключатель рядом с этой записью. Другой вариант – просматривать по разрешению, а не по приложению. Откройте «Настройки» и перейдите в раздел «Приложения и уведомления», как и в предыдущем случае. Но на этот раз выберите «Разрешения приложения». Откроется список разрешений, который включает датчики, календарь, камеру, контакты, местоположение, микрофон, SMS, память, телефон и многое другое. Нажмите любую запись, чтобы увидеть, какие приложения могут получить доступ к этой функции. Здесь также с помощью переключателей можно убрать любые настройки. Прежде чем начинать отключать разрешения, помните, что для выполнения своей работы некоторые приложения полагаются на этот доступ. Например, если приложение может просматривать ваши контакты, оно использует их, чтобы помочь вам обмениваться контентом, файлами или приглашать друзей на мероприятия, а не собирать ваши данные для получения прибыли.

Разрешения при загрузке софта

Когда вы загружаете программы из Play Store, некоторые из них перед установкой запрашивают разрешение на использование информации. При загрузке приложений, созданных для Android 6.0 и более поздних версий, вы можете предоставить или запретить разрешения непосредственно во время установки. Чтобы просмотреть разрешения той или иной утилиты перед установкой, сделайте следующее:

  1. Откройте приложение Play Store.
  2. Перейти на страницу сведений о приложении. Чтобы просмотреть разрешения перед установкой, пролистайте до раздела «Разработчик» и нажмите «Сведения о разрешениях».
  3. Нажмите «Установить».

Некоторые приложения будут установлены сразу. Вы можете разрешить или запретить отдельные запросы на разрешение до того, как приложение будет использовать данные такого типа. Для других программ в Google Play отображаются все группы разрешений, к которым она сможет получить доступ перед установкой. Эта информация может помочь вам решить, хотите ли вы установить её.

Если приложение уже установлено

Для приложений, созданных для Android 6.0 и выше, просматривать или принимать изменения разрешений при каждом обновлении не нужно. Достаточно указать необходимые права при первом запуске программы. Если при обновлении приложению требуется доступ к новым группам разрешений или разрешениям в группе «Другие», вам будет предложено заново подтвердить решение, даже если вы настроили автоматические обновления. Если вы предпочитаете просматривать каждое обновление вручную, вы можете отключить автоматическое обновление, следуя приведённым ниже инструкциям:

  1. Откройте приложение Play Store.
  2. Нажмите кнопку Меню – Мои приложения и игры – Установленные.
  3. Выберите приложение.
  4. Нажмите Больше (вертикальная линия из 3-х точек).
  5. Снимите флажок «Автообновление», если он ещё не снят.

Чтобы отключить автообновление для всех приложений:

  1. Откройте приложение Play Store.
  2. Нажмите кнопку Меню – Настройки – Автообновление приложений – Никогда не обновлять автоматически.

Есть также много других, менее подозрительных разрешений. Приложение, которое делает снимки, должно контролировать ваше оборудование. Netflix должен держать ваш экран активным в течение всего времени, пока вы его не касаетесь. Виджет профиля звонков нуждается в доступе к вашим настройкам. Разобраться с разрешением, которое кажется неуместным, обычно помогает немного логики. Если нет, то читайте комментарии в Google Play и задавайте вопросы на форумах. Большинство приложений в Google Play не могут украсть ваши данные или ваши деньги. Помните, что большинство людей, пишущих приложения, просто хотят заработать немного денег или делают это ради удовольствия. Приложений, которые существуют для обработки ваших данных, не так много. Но иногда разработчики допускают ошибку – нетрудно заставить Android запрашивать разрешение, которое не используется приложением, и легко игнорировать эти ошибки при их создании.

Читать еще:  Обзор Pixelphone M1 — первый хороший российский смартфон за разумную цену

Android 6.0: Doze Mode, App Standby, Runtime Permissions. Всё, что необходимо знать каждому разработчику

Операционная система Android позволяет разработчикам создавать комплексные приложения, которые используют преимущества сервисов фоновой обработки, планирования оповещений и синхронизации данных. Поскольку пользователи устанавливают на свои устройства множество приложений, сейчас стал очень актуальным вопрос того, чтобы вся эта масса приложений не замедляла пользовательские девайсы и не расходовала заряд их аккумуляторов. Именно поэтому Google представил в Android Marshmallow функцию Doze, а затем расширил сферу её охвата в Android Nougat.

Время, когда девайсы переходят в режим Doze

Как это и следует из её названия, функция Doze запускается в тот момент, когда пользовательское устройство отключено от источника питания и девайс не исп ользуется. Ранее Doze активизировалась только тогда, когда устройство оставалось неподвижным
с выключенным экраном в течение заданного промежутка времени, но с выходом Android 7.0 у Doze появились определенные состояния, при которых эта функция может запускаться, даже если устройство не находится в стационарном положении.

Doze — первый уровень

В Android 7.0 функция Doze может запускаться в любое время, когда девайс работает от аккумулятора, а экран аппарата выключен. По истечении некоторого времени приложения отключаются от сети, и все функции синхронизации, а также фоновые задачи откладываются на определенный период обслуживания, длительность которого устанавливается системой Android. Нормальная работа возобновляется только тогда, когда пользователь ставит свой смартфон на зарядку или включает его экран. Ниже на рисунке иллюстрируется первый уровень функции Doze на Android 7.0:

Doze — второй уровень

Если девайсом никто не пользуется и он лежит без движения или когда на нём уже запустился первый уровень Doze, и устройство продолжает оставаться неподвижным, тогда активизируется второй уровень Doze, утверждая дополнительные ограничения. Второй уровень является стандартным режимом Doze на Android Marshmallow, при нём игнорируются все Wakelocks; запуск всех Alarms, Syncs и Jobs откладывается, и, кроме этого, ограничивается доступ в интернет и сканирование сетей GPS и Wi-Fi.

Если какой-либо из режимов Doze активен, система пробуждает приложения через определенные промежутки времени, позволяя им осуществлять свои привычные операции. Если Ваше приложение задействует любой из этих API-интерфейсов, подвергающихся ограничению, важно понимать, что оно может в определённое время не выполнять тех действий, которых Вы от него ожидаете. Хотя Вы можете думать, что приложение работает правильно — вот почему важно разбираться в том, как Doze влияет на функциональность Вашего проекта. Тут следует ещё кое-что уточнить: в работе функции Doze есть одна лазейка, касающаяся Push-уведомления и сообщений от Google Cloud Messaging. Все послания с пометкой «высокий приоритет» будут по-прежнему доходить до устройства, несмотря на активность функции Doze.

Тестирование корректности работы приложений в режиме Doze

Вы легко можете оценить корректность работы приложения при запущенной функции Doze, проведя тесты на физическом устройстве или эмуляторе под управлением Android 6.0 (API Level 23) или выше. Просто запустите приложение, оставьте его активным, и выключите экран устройства (убедившись, что приложение остаётся активным). Вам не нужно ждать, пока Doze запустится; вы можете самостоятельно активизировать Doze с помощью командной строки ADB путём ввода двух простых команд:

Дозируй батарею правильно! Разбираемся и тюнингуем режим энергосбережения Doze

Содержание статьи

Режим энергосбережения Doze — одно из ключевых новшеств Android 6.0. Это не просто очередная оптимизация, это кардинальное решение, позволяющее, по словам Google, существенно продлить жизнь устройства от батареи. Но так ли эффективен этот механизм на самом деле? Попробуем выяснить, а заодно разберемся, как он работает и можно ли его настроить под себя и активировать на старых версиях Android.

В чем проблема?

Когда Google заявляет, что после обновления до Android 6.0 жизнь Nexus 7 продлевается на пять часов, верится с трудом. Уж слишком фантастическая цифра. Однако если разобраться в том, как работает Doze, то все встанет на свои места. Дело в том, что Doze — это не какая-то навороченная технология, а довольно простой механизм, который всего лишь ликвидирует одну из проблем Android, заложенную еще на этапе проектирования операционной системы.

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

С одной стороны, это полезная особенность Android, которая позволяет работать со смартфоном гораздо более эффективно (и это, кстати, очень заметно при переходе с Android на iOS). С другой стороны, очень скоро после появления Android стали заметны серьезные проблемы такого подхода. Многие приложения им просто злоупотребляли, причем вовсе не из-за злого умысла разработчика, а по причине дилетантизма и неумения грамотно писать код. В результате заряд батареи расходовался чересчур быстро.

Долгое время проблему пыталась побороть как сама Google, так и независимые разработчики. В первом случае результатом работы стали разные ухищрения, такие, например, как автоматическое отслеживание работы фоновых сервисов приложений и их убийство при слишком долгой активной работе или слишком высокой нагрузке на процессор (Android 4.4). Во втором случае появились приложения Wakelock Detector и Greenify. Одно показывало, какие приложения не дают процессору уснуть, другое позволяло «заморозить» эти приложения, чтобы они вообще не могли работать в фоне. Для многих любителей ставить на смартфоны сотни приложений эти два инструмента стали спасением.

Wakelock Detector: список жадных до процессора приложений

Однако, кроме root на смартфоне, Wakelock Detector и Greenify требовали также понимать, что ты делаешь, тратить время на поиск жадных до процессора приложений, да и вообще все это грязные хаки. С помощью Doze Google как раз и попыталась избавиться от этих проблем, реализовав полностью автоматический механизм заморозки приложений.

Greenify: выбираем приложения для заморозки

Как это работает?

Doze — это системный сервис, который активируется после отключения экрана и следит за тем, не взял ли ты смартфон в руки (с помощью датчиков положения) или не подключил ли к зарядке. Тогда же начинается отсчет времени; если по окончании этого периода указанных действий со смартфоном не происходит, Doze переводит его в режим агрессивного энергосбережения (на самом деле все сложнее, но об этом позже), который предполагает:

  • запрет любых сетевых операций;
  • полное игнорирование вейклоков (wake locks), того самого механизма, который позволяет приложениям безнаказанно работать, даже если экран выключен;
  • отложенное выполнение алармов (alarms), которые позволяют приложениям получать управление в указанное время;
  • отключение сканирования Wi-Fi;
  • отключение синхронизаций, как с Google, так и с другими облачными сервисами, добавленными в раздел «Аккаунты» в настройках;
  • отключение JobScheduler, подсистемы, позволяющей приложениям получать управление при определенных условиях (при подключении к Wi-Fi, например).

Говоря простыми словами, Doze запрещает приложениям делать что-либо, если смартфон долгое время не используется. Но есть несколько исключений. Первое: через определенные периоды система на короткое время выходит из режима Doze, позволяя приложениям выполнить отложенные действия (те же алармы). Причем чем дольше смартфон остается нетронутым, тем реже будет происходить выход из Doze. Второе: система учитывает потребности таких приложений, как будильники, и выходит из режима Doze незадолго до того, как они должны сработать (такие приложения должны использовать метод setAalarmClock() класса AlarmManager). Третье: приложения, получающие push-уведомления с помощью Google Cloud Messaging (GCM), смогут выводить смартфон из режима Doze, но только в том случае, если это высокоприоритетное уведомление. Четвертое: звонки и СМС сразу выводят смартфон из режима Doze.

Временная шкала работы Doze

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

Читать еще:  Характеристики Caterpillar CAT S40, плюсы и минусы

Можно ли отключить Doze?

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.

Евгений Зобнин

Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.

VR-BOOM

Актуальные it обзоры

App Permissions — что это на Андроид

Сейчас персональная информация очень часто попадает в руки общественности. Истории звонков, ваше месторасположение, данные о серфинге в интернете и многое другое. Но теперь, начиная с Android 3.1, все можно изменить. Современное приложение «App Ops» готово спасти все личные данные от хищения сторонними лицами. Мы расскажем что это такое App Permissions в телефоне или планшете на Андроид и почему не нужно путать его с уведомлениями «App permission management is closed».

Что это такое?

App Permissions Manager (или App ops) – это менеджер уровня разрешений, работающий c ОС Android 4.3 и выше. Приложение создает свою картотеку всего софта на смартфоне. По отдельности может блокировать доступ приложений к разной запрашиваемой информации, к примеру: данным GPS, истории браузера, хранящимся текстовым сообщениям и т.д. Очень удобный интерфейс позволяет в один клик запрещать передачу данных сторонним ресурсам, что очень эффективно против разных шпионских программ.

Приложение App Permissions Manager для Андроид

Преимущества менеджера

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

Также к огромным плюсам можно отнести работу в реальном времени. Зайдя в «App Permissions» и отключая разные характеристики, они тут же вступают в силу. Не нужно производить перезагрузку девайса, все уже будет применено на деле. А процесс запрета происходит посредством перетаскивания ползунка с одной стороны в другую. Все действительно очень просто и не требует особых навыков от пользователя. Для полноценной работы программы, на Андроиде требуется активный root-доступ.

Интерфейс

Весь интерфейс состоит из списка приложений, где возможно установить ограничение на доступ к личной информации. Вверху имеется навигационное меню: Device, Personal, Location, Messaging. Никаких дополнительных настраиваемых меню больше нет.

Замечание

Внимание! Не стоит путать работу этого приложения со всплывающими уведомлениями в версии Андроид 6.0 и выше — «App Permission Management is running» (настройки APM активированы) и «App Permission Management is closed» (настройки APM отключены). Убрать (отключить) уведомления можно в «Настройках» — «Безопасность» (листаем вниз) — перемещаем ползунок против «Разрешения приложений». Если уведомление появляется при запуске определенного приложения, тогда войдите в его сведения в Диспетчере приложений и там в пункте «Разрешения» активируйте или снимите все ползунки.

Уведомление App Permission Management is running

Как инсталлировать в смартфон

Распространяется «App Permissions Manager» официально через Google Play. Он совершенно бесплатный, поэтому нет смысла скачивать его с других источников в интернете. Сам процесс установки ничем не отличается от стандартного приложения, всего в пару кликов все уже будет инсталлировано к вам в телефон. Аналогов также предостаточно в Маркете, но качество их не всегда лучшее.

Функция Doze для экономии заряда батареи в Andriod Marshmallow

Сначала поясним про “в два раза дольше”, чтобы избежать недопониманий. К таким результатам пришли в Google, протестировав планшет Nexus 9 — это раз. Планшетом на протяжении дня пользуются с меньшей частотой, а потому новые опции энергосбережения работают эффективнее — это два. Со смартфонами немного иначе, но тоже лучше, чем без Doze.

Doze — это “режим сна” для смартфона, оставленного без присмотра на некоторое время. Если вы не проверяете уведомления и не справляетесь о том, который час, смартфон “заснёт”, стараясь сохранить заряд как можно дольше. Каким образом? Попросту ограничив интенсивность и доступ программ к сети. Вам не приходят обновления, новые сообщения, уведомления, приложения не синхронизируются и т.п., пока смартфон “спит”.

Режим ограничения длится не постоянно: система иногда открывает окно для связи с серверами — так, чтобы программы были “свежими” к моменту новой активности смартфона.

Doze активируется автоматически, как только смартфон обновляется до Android Marshmallow. Не нужно лезть в настройки и искать кнопочку ВКЛ. — Doze интегрирован в систему по самое не могу. Например, в Nexus 5X и Nexus 6P, благодаря новым процессорам, Doze становится персонализированной опцией.

Система распознаёт типичную активность в типичное для неё время, а потому ведёт себя с вашим распорядком дня соответственно:

  • Аня — студентка, а потому с 8 до 13 часов находится на парах, где чаще всего выключает смартфон. Doze будет знать, что в будние дни Ане не нужна полная боеспособность смартфона, а потому “усыпит” модель на этот промежуток времени. Зачем тратить лишний заряд аккумулятора на обеспечение внутренних процессов, если сейчас в этом нет необходимости?
  • Аня, проголодавшись, после пар отправляется в столовку через дорогу. Doze знает, что в это время ей надо будет позвонить, проверить почту или сделать заметки в check-листе, ведь именно так она часто и поступает. Потому к 13 часам смартфон будет готов на любые подвиги.

И так далее. Вы ходите на плаванье по вторникам и четвергам? Doze автоматически ограничит функциональность приложений на эти 2-3 часа. Сладко спите по 10 часов в день? Всё это время смартфон также будет “дремать”, экономя заряд батареи.

Что до более ранних Nexus-моделей, то действие Doze в них определяется только таймером — к сожалению, такие устройства остаются без “умных” функций.

App Standby

Doze — только часть энергоэффективных инструментов, внедрённых в Android Marshmallow. Так, разработчики ПО обязаны внедрять режим App Standby в свои приложения. Если по названию ещё не догадались, App Standby регулирует активность приложений, а не всей системы.

App Standby не тронет приложений:

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

То есть если у вас одновременно запущенно 5-10 приложений, активными останутся только приоритетные или используемые. Остальные не закроются, но “заснут”. Если десяток открытых приложений — ваш стиль по жизни, и вам удобно маневрировать среди множества карточек, знайте: фоновые программы будут обновляться только раз в сутки, если вы не заходили их проведать на протяжении дня.

App Standby, однако, позволяет приложениям отходить от “режима тишины”, используя Google Cloud Messaging — облачный сервис уведомлений. GCM накапливает приходящие от приложений данные и в момент, когда смартфон запрашивает связи, выдаёт пользователю данные пакетом.

При этом Google тщательно следит за тем, чтобы приложения не были слишком настойчивы или под видом “очень-важной-информации-прочитать-немедленно” не присылали спам. Нарушителям за такие действия положен нагоняй.

Важно! Если смартфон подключён к источнику питания, режимы экономии энергии не работают — приложения имеют неограниченный доступ к системе, синхронизируют данные, обновляются и вообще творят, что хотят.

Показатели автономности: с Doze/App Stnadby и без

C Doze за ночь смартфон расходует вместо 20% заряда от 2 до 5%. Nexus-устройства работают на 10-15 часов дольше: вместо 16 часов до 26-30 часов без розетки. А вы заметили “экономный” расход заряда аккумулятора после обновления до Marshmallow или нет?

Doze как отдельное приложение

Doze в Android Marshmallow — системный сервис, но для тех, кому пока не пришёл “шестой” Андроид, доступно отдельное приложение, экономящее заряд батареи (для устройств с Android 4.1 и выше). Загрузить можете вот тут.

В нём вы можете расставить приоритеты: от каких приложений хотите получать уведомления независимо от активности экрана, а синхронизацией каких можете пренебречь. Doze в таком случае руководствуется не временем бездействия смартфона, а — банально — выключением дисплея.

Агрессивный режим в состояние “сна” заводит все без исключения приложения без привязки к блокировке экрана. Так можно “дотянуть” смартфон до розетки при критичном заряде батареи.

Установка Doze на Samsung Note 5, например, сводила расход энергии за ночь к 2-4%.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: