Websockets против GCM под Android: использование батареи?

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

Может ли кто-нибудь указать мне сравнение статистики использования ресурсов/батарей при использовании GCM в сравнении с клиентом веб-камер на базе Java под Android?

Спасибо заранее.

Ответы

Ответ 1

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

Кроме того, если вам необходимо поддерживать соединение, даже если приложение не находится на переднем плане, вам необходимо будет создать приложение в качестве службы переднего плана. GCM обрабатывает это для вас.

Обновить
Устройство, которое не имеет других приложений с использованием GCM, является очень редким случаем, поскольку многие важные приложения, такие как gmail, используют GCM. У меня нет точного количества использования аккумулятора GCM. Но использование аккумулятора C2DM (предшественник GCM, который использует одну и ту же базовую модель связи) упоминается в это видео за 4 минуты. аналогичный вопрос об использовании батареи в постоянном сокетном соединении с внешним сервером (Правила подключения к постоянным сокетам Android). Хотя это не websocket, я бы хотел, чтобы использование батареи было одинаковым. Но опять же, поскольку GCM построен на гораздо более низком уровне ОС, я бы поставил его более оптимизированным, чем собственное решение.

Если у вас нет какой-либо политики компании против использования стороннего сервера или некоторых конкретных спецификаций, я бы рекомендовал использовать GCM. Я также хотел бы посмотреть все видео о C2DM, а также это видео для GCM.