【问题标题】:Battery saving on iOS with VoIP使用 VoIP 在 iOS 上节省电池电量
【发布时间】:2015-04-06 17:36:45
【问题描述】:

我正在开发一个用于 VoIP 通话的应用程序。事情似乎进展顺利。我担心电池寿命。即使在 Wifi 上,使用 VoIP 通话时电池电量似乎也消耗得非常快。 Wifi 上的电池消耗非常快,它会比蜂窝数据更快。我可以采取哪些措施来改善电池/功耗?另外,我如何分析/分析应用程序中的电池消耗过程? 提前致谢。

【问题讨论】:

  • 您使用的是什么音频编解码器?
  • 我使用的编解码器是lib-WebRTC中的G722

标签: ios iphone call voip battery


【解决方案1】:

Turning off the display 可以在您的应用运行时减少电池使用量。如果您需要打开显示屏,可以使用以下命令调暗:

[UIScreen mainScreen].brightness = 0;

如果这还不足以降低电池消耗,您可以使用wantsSoftwareDimming 最大化调光效果,但可能会影响性能:

[UIScreen mainScreen].wantsSoftwareDimming = YES;

由于 CPU 使用率高,也可能有进程消耗大量电池。您可以使用Apple's developer resource 描述的 Instruments 中的能源诊断工具来分析/分析应用程序中的电池消耗过程。如果您还将 Time Profiler 工具添加到您的列表中,您将能够将代码执行与电源使用情况相匹配。屏幕将如下所示:

一旦您确定了电池使用高峰期,您就可以将这些时间范围与流程活动联系起来。在这些点调查任何繁重的源代码并优化它们以减少 CPU 影响。这可能意味着修剪功能(即减少实时图形动画或渲染)。

【讨论】:

    【解决方案2】:

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

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

    理想情况下,您希望在活动期间使用最长的睡眠持续时间,同时仍具有良好的性能。这意味着您需要权衡成本。我通常会尝试达到 85% 到 95%,具体取决于所需的响应时间。这使处理器有时间进入较低的功耗状态,从而大大降低了我的能源使用率。

    我建议如下:(1) 计算 85% 或 95% 没有缺陷的情况,(2) 测试质量并调低空闲期(更好的响应),直到获得最低可接受的质量,以及 (3)使用那个间隔。

    【讨论】:

      【解决方案3】:

      看的好地方是:https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTips/PerformanceTips.html

      Apple 为常见的电池消耗任务(例如长轮询、常见的读写等)制定了许多解决方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多