2015-02-06 70 views
1

我正在研究VoIP呼叫的应用程序。事情似乎没有问题。我担心电池寿命。即使在无线上网电池似乎通过一个活跃的VoIP通话速度非常快。 Wifi上的电池消耗非常快,它将比蜂窝数据更快。我可以采取哪些措施来改善电池/功耗?另外,如何在应用程序中分析/分析电池消耗过程? 在此先感谢。使用VoIP的iOS上的电池节省

+0

什么音频编解码器是您使用? – 2015-03-18 14:29:49

+0

我使用的编解码器是lib中的G722 - WebRTC – sole007 2015-03-19 06:28:46

回答

3

Turning off the display可以在您的应用运行时减少电池使用量。如果您需要的显示器上,您可以通过使用有啥用呢:

[UIScreen mainScreen].brightness = 0; 

如果这还不足够变暗以减少电池消耗,可以最大限度地变暗效果与wantsSoftwareDimming,虽然有可能是性能受影响:

[UIScreen mainScreen].wantsSoftwareDimming = YES; 

还可能有一些进程由于CPU占用率过高而消耗大量电量。您可以使用Apple's developer resource中描述的仪器中的能量诊断工具来分析/分析应用中的电池消耗过程。如果您还将Time Profiler工具添加到您的列表中,则您可以将代码执行与功耗相匹配。屏幕看起来像:

Instruments

一旦你已经确定的峰值电池的使用时间,你可以涉及的时间框架来处理活动。在这些地方调查任何重要的源代码并优化它们以减少CPU的影响。这可能意味着修剪功能(即减少实时图形动画或渲染)。

2

一个常见的误解是,您需要超快速更新或响应时间,因此尽可能使用最短的计时器持续时间(或根本不使用)。任何现代处理器都可以通过在闲置期间进入低功耗状态来节省大部分能量。空闲时间越长,睡眠越深,节能越多。

一个典型的例子是监视事件的键盘或鼠标。一个人的反应速度不会超过0.25秒,但人们认为10毫秒的睡眠时间间隔(或根本没有)会导致更好的表现/反应。但是这样做可以让处理器保持清醒并消耗能量,同时不会影响应用程序的响应时间。

理想情况下,您想要在活动期间使用最大的睡眠持续时间,同时仍然有良好的表现。这意味着你有一个成本折衷。我通常会尝试打击85%到95%,这取决于所需的响应时间。这使处理器的时间降至较低的功耗状态,显着降低了我的能源使用率。 (1)计算85%或95%的无缺陷情况,(2)测试质量并调整空闲期间(更好的响应),直到你有最低可接受的质量,(3) )使用该间隔。