HTTP请求对电池寿命的影响

6
我有一个项目,客户端应用程序(可能在Android设备上)将从服务器请求一些文件。一种实现方法是从服务器向设备进行突发传输,其中X个文件与下一块的链接/指针一起发送。另一种实现方法是发送文件ID列表,然后为每个ID执行一个HTTP请求并逐个获取文件。我听说这会严重影响电池寿命。这是真的吗?
另一个问题是带宽,客户端可能不想/需要在一次突发中发送所有文件,因此服务器有点强制客户端接受它们全部。在单独提交中,如果客户端需要,他可以按需获取文件。
电池寿命的影响是否如此之大,以至于超越带宽是有效的选择?还是有其他替代方案?

2
这取决于您要接收多少文件。一些HTTP请求不会耗尽您的电池,但如果每分钟请求超过5-10个,则应选择第一个决策。或者,例如,您可以要求用户选择要使用的方法。 - Dmitry Zaytsev
1
请查看此链接,可能会对您有所帮助:http://stackoverflow.com/a/8445998/265167 - Yaqub Ahmad
2个回答

4
我听说这会严重损害电池寿命,这是真的吗?
不一定。在大多数Android设备上,HttpClientHttpUrlConnection都支持Keep-Alive。因此,如果你的HTTP服务器设置正确,并且你以相当快的频率进行请求,我不认为会有很大的区别。
在单个提交中,客户端可以在需要时获取文件。
如果你的意思是他们可能在相当长的时间内请求它们,那么这将不能利用Keep-Alive。但是,可能会请求更少的文件,总体消耗的带宽要小得多。无法告诉你抽象地哪种方法对电池消耗更好。
电池寿命是否受到如此大的影响,以至于超额使用带宽是一个有效的选项?
这取决于你下载了多少、多频繁等方面。
然而,在我看来,你正在关注错误的问题。
如果你消耗了如此之多的带宽,以至于你担心电池寿命,你的用户会用长矛和镐攻击你,因为你让他们在按流量计费的数据计划上花费了太多的钱。
因此,我建议你使用TrafficStats并尝试各种情况,了解你实际上使用了多少带宽,以及是否需要找到消耗更少带宽的方法(如频率轮询),这样用户就不会被你的应用程序破产。我怀疑你的电池问题将作为副作用得到解决。
然而,如果在测试中,你发现你的应用程序出现在设置中的“电池使用情况”屏幕上,那么开始担心电池消耗,无论是来自带宽还是其他来源(如过度使用WakeLocks)。

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接