通过智能手机无线电下载内容的应用程序如何减少对电池的影响

70
如果我正在开发一个智能手机应用程序,该应用程序定期从服务器下载数据,并间歇性地上传数据(分析,广告等),我该怎么做才能最大限度地减少这些传输对电池寿命的影响?
使用无线电(2G、3G、LTE等)进行传输对电池的影响尤其显著。是否有关于无线电功耗特性的内容,应影响我的选择,包括何时、什么以及如何传输数据,以便将其对电池寿命的影响最小化?
2个回答

79
这篇文章摘自“Android培训课程”,无需耗尽电池电量传输数据,阐述如何最小化下载和网络连接对电池寿命的影响,特别是与无线电相关的影响。
其中优化下载以实现高效的网络访问详细介绍了无线电状态机,并解释了应用程序的连接模型如何与其交互,以最小化相关电池损耗。 无线电状态机 参考资料 每次创建新的网络连接时,无线电将转换到全功率状态。这种转换通常需要约2秒钟时间,为了最小化延迟,无线电引入了延迟来推迟转换到较低能量状态。
典型的3G无线电在传输完成后将保持全功率状态5秒钟,然后在等待另外12秒钟的低能量状态后移至待机状态。总计每次连接时,无线电会消耗近20秒的电力。
此方法可能会导致现代智能手机操作系统上运行的应用程序效率低下,因为应用程序在前台运行(延迟很重要)和后台运行(应优先考虑电池寿命)。 解决方案 最小化下载对电池影响的关键是认识到传输频率对影响比下载大小更具有戏剧性。在实际操作中,预取数据、排队/捆绑传输特别有效。

了解每次启动连接都可能导致无线电吸取电力近20秒,因此重要的是将数据传输捆绑在一起,以便有效地相位转移即将发生的传输,使得在每个传输会话期间尽可能传输更多的数据来最小化会话数量。

同样,预取允许您在单个连接上以满负荷的速度在短时间内下载给定时间段内可能需要的所有数据。通过在前端加载传输,可以减少下载数据所需的无线电激活次数,节省电池寿命,提高延迟,降低带宽使用和减少下载时间。

但是,预取还存在增加电池耗电量和带宽使用的风险,因为可能会下载未使用的数据。

预取的积极程度取决于下载的数据大小和可能被使用的概率。一般来说,好的做法是预取数据,以便每2到5分钟只需要启动另一个下载,并且数据大小在1到5兆字节之间。

通常而言,重复使用现有的网络连接比创建新连接更有效。重用连接也允许网络更智能地对拥塞及相关网络数据问题进行反应。


11

我建议您在应用程序的设置中添加一个“同步频率”选项,以便用户可以在数据更新和电池使用之间平衡,并根据不同的优先级进行选择。


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