前不久,# 苹果建议不要滑动关闭后台程序 #这个话题上了微博的热搜.
这个话题的源头, 是因为英国的《太阳报》的一篇报道中写道 "如果您经常关闭应用程序, 则 iPhone 会变慢并损耗电池."
对此事, 苹果也在官方渠道发布声明表示 "确实如此". 并表示 iPhone 电池寿命普遍偏短的原因, 就是用户习惯性的手动关闭应用程序, 这不仅会缩短电池的使用寿命, 也会导致设备的速度变慢.
在此之前, 我相信大部分人都和我一样, 认为后台的应用程序会占用 CPU, 消耗电量, 因此会经常性的手动关闭很多应用程序.
但苹果为什么这么说呢? 原理是啥? 电池寿命真的是被我们一下一下划没的么?
后台的应用程序其实已经被 "冻结"
这个观念差异的背后, 其实是来源于用户和官方的认知差异.
事实上早在 2016 年, 时任苹果软件高级副总裁的 Craig Federighi 就针对用户的邮件进行了回复.
但这个回复在当时并未被大部分人所了解.
而事实上, iOS 为了让设备减少不必要的系统资源开销, 并保持系统的流畅, 它的后台更应该叫做「多任务切换界面」. 而这得益于 iOS 特殊的「墓碑机制」.
名词解析: 墓碑机制
简单来说, 墓碑机制就是当 App 进入后台前将以某种形式持久化, 然后释放其正在使用的资源 (包括内存, CPU 等), 等待 App 再次被唤醒时, 将再将这个保存的状态恢复出来, 此时应用跟没有被杀死继续运行了一样.
实际上 iOS 并不是严格意义上的墓碑机制, 其在应用进入后台时可以向系统申请一定时间的后台运行时间 (一般不超过 10 分钟), 之后才会被完全挂起.
根据这个机制我们可以知道, 我们之前滑动关闭的并非是应用程序, 而是类似于应用程序的快捷打开方式.
而如果想真正的关闭一个应用程序, 需要将这个应用从 RAM 中移除 (比如重启手机), 这时再次启动程序时系统需要重新调动资源, 与冻结状态相比, 所占用的 CPU 和消耗的电量更高, 因此苹果方面建议除非应用程序无响应, 否则不要滑动强制退出.
当然, 不排除一些应用程序会有更高的 "权限", 在后台时也会占用系统资源, 我们可以在「设置」中查看是否有哪些应用在滥用权限.
滑动关闭后台应用影响电池寿命?
先放结论: 并不会. 这是以讹传讹.
我们能在很多媒体报道中看到 "滑动关闭后台应用不仅没用, 还会影响电池寿命", 这其实是因为翻译不精准导致的错误传言.
《太阳报》的原文标题是《QUIT IT!Your iPhone gets SLOWER and loses battery life if you always swipe apps closed》, 这里面提到的「battery life」被很多人翻译成了「电池寿命」, 但实际上这个词一般表示电池的续航时间, 英文语境中电池寿命一般会用「battery health」来表示.
正如我们上文所示, 滑动关闭后台应用后, 重新启动将会消耗更多的 CPU 和电池电量, 因此也会相应的降低电池的续航, 和电池的使用寿命并没有关系.
理论上影响电池寿命的因素目前有四个:
充 / 放电速度
电池温度
放电深度 (DOD)
电池循环次数
很多人在买卖二手笔记本的时候都会关注的参数就是「电池循环次数」, 因为这个是影响电池寿命和健康程度的关键因素之一.
如果想要通过健康的手机使用习惯来延长手机的电池寿命, 这里有一个建议就是关闭某些应用程序的系统通知 (也就是常说的弹窗广告).
安卓手机可以滑动杀后台么?
iOS 系统不建议频繁滑动关闭后台的应用程序, 那么 Android 系统可以么?
答案是: 可以.
背后的原因是 iOS 与 Android 的后台机制并不相同. 文章开头我们介绍了 iOS 系统的「墓碑机制」, 而 Andriod 系统并没有采用这一机制, 所以大部分 Android 系统的应用程序切换到后台后, 仍然在占用着 CPU. 而滑动关闭后台的程序也就真的是把程序给彻底关闭了.
这也是为什么 Andriod 系统的手机容易变卡, 发烫. 就是因为 Android 的运存总是很大, 不过从安卓 5.0 之后, 因为各大厂商对系统做的优化和硬件的迭代发展, 这种情况现在也是越来越少了.
总结一下我们今天的文章, 大致有以下几个观点:
对于广大的 iPhone 用户来说, 还是乖乖按照苹果官方的说法操作, 没事就别随便做出滑动退出 App 这种 "骗自己" 的行为了;
滑动关闭后台程序不会影响电池寿命;
Andriod 系统手机因为后台机制与 iOS 系统不同, 因此滑动关闭后台程序确实可以释放 CPU.
你觉得这两种系统的机制, 哪个更好一些?
来源: https://segmentfault.com/a/1190000021966904