В инженерном блоге компания Google уделила внимание наболевшей проблеме — некоторые приложения разряжают аккумулятор телефона так быстро, что пользователь едва успевает оценить достоинства программы, как уже спешит удалить её из-за катастрофического «жора» процента батареи. Часто причиной «утечки» заряда становится плохая реализация Push-уведомлений Android.
Оптимизации в Android остаются единственным методом сберечь автономность до тех пор, пока не явится лучший кандидат на роль смартфонного аккумулятора будущего.
Вот, что об этом говорят сами разработчики платформы, прилагая пример создания уведомлений Twitter, которые практически не разряжают аккумулятор. Как им это удалось сделать? Как повторить этот успех и другим разработчикам?
Как работают Push-уведомления на Android в примере оптимизации Twitter?
Сейчас Twitter добился самой низкой нагрузки на телефонные ресурсы среди всех мобильных приложений (по данным исследовательского софта Android Developers). Это целиком результат взаимодействия с отделом программных инноваций Google. Команда социальной сети решила не таить секрет и поделилась им со всеми.
По опыту разработчиков клиента соцсети (в том числе в ходе A/B-тестирования) и после перехода на новый набор API в Firebase Cloud Messaging (FCM), реализация Push-уведомлений на Android должна учитывать следующие типы оптимизации:
1. Используются резервные App Standby Buckets (функция из Android 9.0 Pie) для ограничения числа приоритетных сообщений.
2. Сообщения с высоким приоритетом должны быть зарезервированы для уведомлений, с которыми пользователи чаще взаимодействуют.
3. Важно добиться того, чтобы из Doze-режима не задерживались по-настоящему важные сообщения, когда как остальные информационные или новостные — оставались в резерве.
4. Необходимо правильно классифицировать сообщения FCM с высоким приоритетом на базе исследований и тестирования процессов взаимодействия пользователя с программой или сайтом.
5. Не включайте излишние метаданные в нагрузку к обычному уведомлению — лишь 1% сообщений должен использовать превадрительную выборку (данные больше 4 Кб), поэтому не следует злоупотреблять такими методами.
6. Начиная с Android 8.0 Oreo разработчики могут использовать каналы уведомлений. Например, в Twitter их 9 с разной степенью важности — лишь экстренные Push и заявления по безопасности стоят в высоком приоритете, когда как 7 остальных относятся к низкоприоритетным сообщениям.
Как сделать так, чтобы пользователь не хотел выключать Push-уведомления на Андроид?
Переход на FCM, установка приоритета для уведомлений, ограничение предварительной выборки и значительные уступки в проектировании каналов сообщений в пользу энергосбережения помогут вам завоевать лояльную аудиторию пользователей. Когда как нагрузка на метаданные и навязчивые попытки обогатить работу пользователей с Push могут всё испортить и превратить любой смартфон в кусок бесполезного пластика с вечно разряженной батареей.
Если у вас возникли вопросы, то отправьте сообщение ВКонтакте @NeovoltRu, чтобы получить помощь. Подпишитесь в группе на новости из мира гаджетов, узнайте об улучшении их автономности и прогрессе в научных исследованиях аккумуляторов. Подключайтесь к нам в Facebook и Twitter.