我读过网上的一些文章和 StackOverFlow 上的一些问题,但似乎没有人对 a) 如果 google 对 Gmail、邮件等使用长寿命 TCP 连接,以及 b) 如果在自定义应用程序中使用它有明确的答案会耗尽电池寿命,如果会的话,大约会消耗多少?

有帮助吗?

解决方案

在回答你的第一个问题是,是的,谷歌的GTalkService保持与安装了谷歌应用产品的持久XMPP连接到谷歌的服务器,在Android手机。

至于你的第二个问题,这个问题的答案是不是这里的一些评论更复杂会让你相信。特别是,其他连接保持连接数据包 - 或任何小,但出现持续数据传输 - 可能会影响你的3G无线电的电源管理状态周期,其中的的对电池寿命有显着的影响。

有关详情,请参阅这篇文章:

https://www.ericsson.com/研究-博客/智能交通冲击电池的网络/

如果可能的话,你可以考虑使用新的云,其寄生在GTalkService的顶部,让您的应用程序接收通知不维护自己的TCP连接设备信息API。这带来的不便,不幸的是,是C2DM将无法在纯开源的Android的工作,它要求用户签署到他或她的谷歌帐户,它仅适用于升级Froyo或以上。

其他提示

保持开放连接 转化为更少的资源使用:少量的“涓流”流量可以保持连接开放。

考虑相反的情况:客户端定期“轮询”服务器(假设与长期连接“trickle”相同的“刷新”率):每次打开新连接都会产生更多流量。

连接设置/拆除的成本很高(当然,在这个宇宙中,一切都是相对的;-)。


维持开放连接的主要缺点:

  • 客户端浏览器可能会限制每个窗口/选项卡等的连接数量。
  • 中间设备(例如NAT、防火墙)无法经常重用端口来服务其他请求
  1. 您可以像使用你的路由器或其他机器上tcpdumpwireshark的工具,以确定如何长TCP连接保持谷歌的应用程序打开。您需要将您感兴趣的端口或地址过滤。
  2. 如果您使用的是的Android 1.6 ,以最好的方式确定漏极是使用新的电池使用指示器。只要安装您的自定义应用程序,看看监视器说,随着时间的推移。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top