Long Lived Persistent TCP Connection on the Android

Faisal Abid picture Faisal Abid · Nov 18, 2009 · Viewed 12.1k times · Source

I've read some articles on the web and some questions on StackOverFlow, but no one seems to have a definite answer over a) If google uses Long Lived TCP connections for Gmail, Mail etc, and b) If using it in a custom app will drain battery life , and if so roughly how much?

Answer

mshroyer picture mshroyer · Nov 25, 2010

The answer to your first question is that, yes, Google's GTalkService maintains a persistent XMPP connection to Google servers, on Android phones with the Google applications installed.

As for your second question, the answer to that is more complicated than some of the comments here would have you believe. In particular, additional connections' keepalive packets -- or any small but continually occurring data transfers -- can affect your 3G radio's power management state cycle, which will have a noticeable impact on battery life.

See this article for more information:

https://www.ericsson.com/research-blog/smartphone-traffic-impact-battery-networks/

If possible, you might consider using the new Cloud to Device Messaging API which piggybacks on top of GTalkService, allowing your application to receive notifications without maintaining its own TCP connection. The downsides, unfortunately, are that C2DM won't work on pure open source Android, it requires the user to be signed into his or her Google account, and it's only available on Froyo or above.