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