MonthДекабрь 2016

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

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

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

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

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

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

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

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

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

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

Continue reading

Как подделать запрос с использованием CSRF токена для Instagram

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

С одной стороны, все логично и может быть легко объяснено. Это просто способ защиты соцсети от массовых накруток аккаунтов, от автоматизации процессов постинга и проч. Принимая это во внимание, можно предположить, что Instagram позиционирует себя как социальная сеть, все виды взаимодействия с которой могут быть произведены только вручную. К сожалению, это ограничивает многих, ведь помимо «незаконных» действий с инстаграмом можно было бы разрабатывать альтернативные клиенты для этой соцсети, ведь давно уже не секрет, что официальный (и единственный) клиент обладает рядом дико раздражающих минусов (плохо реализованный Material Design, например, или отсутствие ландшафтной ориентации на Android, или полное отсутствие версии для iPad и проч.).

Но, оставим позади все эти причины и поговорим о том, как эти ограничения можно обойти.

Continue reading

Тормоза на Nexus 7 на Cyanogenmod

Столкнулся с крайне неприятной ситуацией — старичок Nexus 7 2013, на который накатил Cyanogenmod 13 через неделю стал неистово тормозить. Причем это проявлялось вообще во всем — неважно какое приложение открывалось, что хранится в списке последних приложений — результат всегда был один — гарантированный тормоз.

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

Continue reading

Качество фото в Instagram

Я не поленился заморочиться и посмотреть какие размеры у фотографий в инстаграме есть сейчас, и какие использовались раньше.

Получить данные по посту не составляет никаких сложностей, если что, для чистоты эксперимента можете попробовать сами: все что нужно — это Firefox, Firebug, сервисы для симпатичного отображения json и немного вашего времени. Итак, поехали.

Для иллюстрации текущей картины я взял одну из своих последних фото в инстаграме.

Continue reading