我已经阅读了网上的一些文章和StackOverFlow上的一些问题,但似乎没有人肯定答案a)如果谷歌使用Long Lived TCP连接Gmail,邮件等,并且b)如果使用它一个自定义的应用程序将耗尽电池寿命,如果这样大致多少?
答案 0 :(得分:14)
您的第一个问题的答案是,是的,Google的GTalkService在安装了Google应用程序的Android手机上与Google服务器保持持久的XMPP连接。
关于你的第二个问题,答案比你认为的一些评论更复杂。特别是,附加连接的keepalive数据包 - 或任何小但持续发生的数据传输 - 可能会影响您的3G无线电的电源管理状态周期, 会对电池寿命产生显着影响。
有关更多信息,请参阅此文章:
https://www.ericsson.com/research-blog/smartphone-traffic-impact-battery-networks/
如果可能,您可以考虑使用新的云到设备消息传递API,它可以在GTalkService之上搭载,允许您的应用程序在不维护自己的TCP连接的情况下接收通知。不幸的是,缺点是C2DM无法在纯开源Android上运行,它需要用户登录他或她的Google帐户,而且只能在Froyo或更高版本上使用。
答案 1 :(得分:2)
维护开放式连接可以转换为更少的资源使用:小的“涓流”流量可以保持连接打开。
考虑相反的情况:客户端定期“轮询”服务器(假设与长期连接“涓流”相同的“刷新”速率):每次打开新连接时都会产生更多流量。
连接设置/拆卸是昂贵的(当然,在这个世界中一切都是相对的; - )。
维持开放连接的主要缺点:
答案 2 :(得分:1)
tcpdump
或wireshark
等工具来确定Google应用程序保持打开TCP连接的时间。您需要过滤您感兴趣的端口或地址。