【问题标题】:Minimising an app's battery usage on iOS (while phone is locked etc)在 iOS 上最小化应用程序的电池使用量(当手机被锁定时等)
【发布时间】:2011-01-07 05:43:46
【问题描述】:

我注意到,从 iOS 4.0 开始,我开发的应用程序开始不会在按下主页按钮时“退出”,而是停留在双击系统时弹出的“系统托盘”中。

大约在同一时间,我注意到手机中的电池开始消耗得更快。话又说回来,理论上所有应用程序现在应该使用的只是内存,因为它当前不是活动的。

这引出了一个问题,是否有任何基准可以说明导致 iPhone 耗电最多的原因?也许opengl调用,使用显卡会消耗不少?或者只是让应用程序处于活动状态意味着内存更少,这会导致更快的电池损耗(例如,因为内存分配器必须做更多的工作等)?

我很想知道其他开发人员为优化电池使用所做的努力。

【问题讨论】:

    标签: iphone ios battery


    【解决方案1】:

    它不是导致电池耗尽的opengl或分配,实际上这些变量在应用程序退出时保存在硬盘上。 它们不会留在内存中,因为同时运行所有应用程序是不可能的。(参见 cmets)

    特别感谢 Stephen Furlani 提供本指南in documentation

    我认为唯一可能导致更快消耗的后台进程仍然可以在后台运行,例如 Skype 的 IP 语音功能。 (当时在 iOS 4 SDK 预览版中大放异彩的功能)。背景音频/视频,网络传输,如潘多拉等。(我不能全部命名)但不是每个应用程序!

    顺便说一句,我还注意到我的电池在其他日子有时无法保持尽可能长的时间。但我找不到哪个应用程序导致:(

    【讨论】:

    • 应用程序将留在内存中,当内存不足时,其中一个后台应用程序会被杀死。
    • 真的吗?我不知道。我认为将内存数据保存到硬盘将是更好的选择(从苹果来看)不会影响其他程序。因为如果有人可以读取我的记忆(使用指针等),他将能够读取我的秘密数据。 :/ +1 给你
    • iOS 和 Mac OS X(可能还有 Windows)为每个进程使用单独的内存映射。一个应用程序中的指针将指向另一个应用程序中完全不同的东西。他们看不到您的数据。
    • 虚拟内存本身并没有写入磁盘。见programming guide.
    猜你喜欢
    • 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
    相关资源
    最近更新 更多