Date27.12.2016

Doze mode и система энергоэффективности аккумуляторов

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

Начиная с Android M в наших телефонах появился особый режим энергосбережения — Doze mode. Если очень кратко попытаться объяснить что это, то это просто режим сна. Телефон в него уходит при выполнении главного условия — аппаратом не пользуются некоторое время. При этом гасятся все фоновые задачи приложений, обращения к сети и проч. При этом есть так называемые окна — периоды времени, через которое телефон “просыпается” для выполнения накопившихся задач. И чем дольше ваш телефон находится в этом режиме, тем реже эти окна пробуждения появляются.

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

Способ “разбудить” телефон теперь только один — посылать push уведомления с высоким приоритетом. Больше вариантов нет.

С одной стороны, это хорошее изменение в рабочий режим наших смартфонов. А с другой — это битва с заведомым финалом. Проигрышным. Как по мне, эта битва с ветряными мельницами будет продолжаться до тех пор, пока не придумают новые виды аккумуляторов, которые будут превосходить по энергоэффективности существующие (и при этом не взрываться по примеру Samsung’ов… Да и айфонов, если хорошенько пошерстить новостные ленты).

Как изменить таблицу в SQLite на Android

Каждый раз, когда изменяется структура базы данных в приложении, необходимо вызывать метод SQLiteOpenHelper.onUpgrade, в котором описывать сами изменения (добавление / удаление таблиц, полей или индексов). Естественно, эти же изменения необходимо указывать в обновленном запросе при создании базы в методе SQLiteOpenHelper.onCreate.

К примеру, сначала таблица mytable создавалась с помощью такого запроса

Затем в процессе разработки возникла необходимость в дополнительном поле category. Что мы должны сделать:

Continue reading