减少通过智能手机收音机下载内容的应用程序对电池的影响
Posted
技术标签:
【中文标题】减少通过智能手机收音机下载内容的应用程序对电池的影响【英文标题】:Reducing the battery impact of apps that downloads content over a smartphone radio 【发布时间】:2012-03-30 21:03:05 【问题描述】:如果我正在构建一个智能手机应用程序,该应用程序会定期从服务器下载数据,并且会间歇性地上传数据(分析、广告等),我应该怎样做才能最大限度地减少这些传输对电池寿命的影响?
使用无线电(2G、3G、LTE 等)进行传输对电池的影响尤为显着。无线电的电源使用情况是否会影响我选择何时、什么以及如何传输数据,以尽量减少对电池寿命的影响?
【问题讨论】:
【参考方案1】:这个答案是从 The android Training 课程中总结出来的, Transferring Data Without Draining the Battery哪个 解释如何最小化下载对电池寿命的影响 和网络连接,特别是与 无线电。
特别是Optimizing Downloads for Efficient Network Access 详细解释无线电状态机并继续 解释你的应用程序的连接模型应该如何与之交互 以尽量减少相关的电池消耗。
无线电状态机
Reference
每次您创建新的网络连接时,无线电都会切换到全功率状态。这种转换通常需要大约 2 秒,因此为了最大限度地减少延迟,无线电会引入延迟以推迟向较低能量状态的转换。
传输完成后,典型的 3G 无线电将保持全功率 5 秒钟,然后在低能量状态再等待 12 秒钟,然后进入待机状态。每次您建立连接时,收音机总共会消耗近 20 秒的电量。
这种方法可能会导致在现代智能手机操作系统上运行的应用程序效率低下,其中应用程序在前台(延迟很重要)和后台(应优先考虑电池寿命)运行。
解决方案
将下载对电池的影响降到最低的关键是要认识到传输频率比下载大小的影响更大。实际上,预取和排队/捆绑传输特别有效。
知道每次启动连接时都可能导致对讲机耗电近 20 秒,因此捆绑数据传输非常重要,这样您就可以有效地进行应在相似时间内发生的相移传输窗口,以便您在每个传输会话期间传输尽可能多的数据,以最大限度地减少会话数量。
同样,预取允许您通过单个连接以全容量在单个突发中下载给定时间段内可能需要的所有数据。通过预先加载传输,您可以减少下载数据所需的无线电激活次数、延长电池寿命、改善延迟、降低带宽并缩短下载时间。
但是,预取还会带来通过下载未使用的数据而增加电池消耗和带宽使用的风险。
预取的积极程度取决于正在下载的数据的大小以及被使用的可能性。一般来说,预取数据是一种很好的做法,这样您只需要每 2 到 5 分钟再启动一次下载,大约 1 到 5 兆字节。
重用现有网络连接通常比创建新网络连接更有效。重用连接还可以让网络更智能地对拥塞和相关的网络数据问题做出反应。
【讨论】:
【参考方案2】:我建议您在应用设置中添加“同步频率”首选项,以便用户在平衡数据新鲜度与电池使用量方面有发言权。不同的用户有不同的优先级。
【讨论】:
以上是关于减少通过智能手机收音机下载内容的应用程序对电池的影响的主要内容,如果未能解决你的问题,请参考以下文章