如果我正在构建一个智能手机应用程序,该应用程序定期从服务器下载数据,并间歇性上传数据(分析、广告等),我该怎么做才能最大限度地减少这些传输对电池寿命的影响?
使用无线无线电(2G、3G、LTE等)传输对电池的影响尤其显著。无线电台的功率使用情况是否会影响我对何时、什么以及如何传输数据的选择,以最大限度地减少其对电池寿命的影响?
这个答案总结自安卓培训课程,在不耗尽蓄电池电量的情况下传输数据解释如何最大限度地减少下载对电池寿命的影响和网络连接,特别是与无线电台。
特别是优化下载以实现高效的网络访问详细解释了无线无线电状态机,然后继续解释应用程序的连接模型应如何与其交互以最小化相关的电池消耗。
无线无线电状态机
参考
每次创建新的网络连接时,收音机都会转换到满电状态。这种转换通常需要大约2秒,因此为了最大限度地减少延迟,无线电引入了一个延迟来推迟向低能量状态的转换。
传输完成后,典型的3G收音机将保持满功率5秒,然后在低能量状态下再等待12秒,然后进入待机状态。总的来说,每次连接时,收音机将耗电近20秒。
这种方法可能会导致在现代智能手机操作系统上运行的应用程序效率低下,因为应用程序在前台(延迟很重要)和后台(应该优先考虑电池寿命)运行。
解决方案
要最大限度地减少下载对电池的影响,关键是要认识到传输频率比下载量的影响更大。在实际操作中,预取和排队/捆绑传输尤其有效。
知道每次启动连接都可能导致无线电断电近20秒,重要的是要捆绑数据传输,以便有效地移相将在类似时间窗口内发生的传输,以便在每个传输会话中传输尽可能多的数据,以最大限度地减少会话数。
类似地,预取允许您在单个突发中,通过单个连接,以全容量下载给定时间段内可能需要的所有数据。通过预先加载传输,您可以减少下载数据所需的无线电激活次数,节省电池寿命,提高延迟,降低带宽,缩短下载时间。
然而,预取也会通过下载未使用的数据来增加电池消耗和带宽使用的风险。
预取的积极性取决于下载的数据的大小和使用的可能性。一般来说,预取数据是一种很好的做法,这样您只需要每隔2到5分钟启动一次下载,大约为1到5兆字节。
通常,重用现有的网络连接比创建新的网络连接更有效。重用连接还允许网络对拥塞和相关网络数据问题做出更智能的反应。
我建议您在应用程序的设置中添加"同步频率"首选项,这样用户就可以在平衡数据新鲜度和电池使用量方面有一些发言权。不同的用户有不同的优先级。