跟着 iPhone 11 和 iPhone 11 Pro 的发布,iFixit 也在随后展现了三款新机型的拆解文章 。依据拆解状况来看,三款手机均采用了 4 GB 的 RAM。相较之下,相同于近期发布的 Google Pixel 4 则采用了更大的 6 GB 内存。而假如把目光放到国内的 Android 阵营,8 GB 乃至 10 GB 的内存参数也早已不算新鲜。
回溯过往就会发现,iPhone 在内存大小上一向比同代的 Android 机型保存许多。但较小的内存并没有对 iPhone 的竞争力产生影响。这一切还要幸亏 iOS 的内存办理机制。
历代 iPhone 内存改变(单位:GB)
经过一代代的迭代和完善,iOS 的内存办理从开端的苛刻逐渐多样化,在坚持了对内存的严厉办理的基础上,也针对不同运用的需求,供给了更多的解决方案。
首要需求介绍的,是苹果的音讯推送服务 APNs(Apple Push Notification service)。凭借这一功用,运用能够在不保存后台进程的状况下,正常地接纳音讯和推送。
在一般状况下,运用接纳到的音讯,是直接从其服务器端传至运用。这样的操作虽然环节较少,可是需求运用一向在后台保存进程,天然也就增加了对内存的需求。
相较之下,APNs 服务新增了不少环节。运用服务器端发来的音讯不会再直接传送给运用自身。作为代替,推送会凭借体系的服务器传输给 iOS 体系,并由后者弹出告诉横幅。当你经过横幅翻开运用时,运用才会开端从服务器段接纳更新,并显现新内容。这也是为什么有时咱们收到微信音讯后,往往翻开运用还需求等候一段时间才干看到音讯内容。
APNs(来历:sspai.com/post/55884)
虽然这样的设定带来了一些推迟,但其优点也十分显着。运用不再需求在后台保存进程,然后极大节省了内存空间。APNs 自从在 iOS 2.0 中推出后,便一向被沿用至今。那时的 iOS 体系,还未有「后台运转」的概念,一切运用在切至后台后都会被直接间断进程。正是得益于这一功用,早年 iOS 严厉的后台办理才不会影响运用的正常功用。
不过,音讯接纳和推送并不是运用后台常驻的问题的悉数。一部分运用因为其功用所需,即便在被切至后台后也不该该被间断进程。iOS 也为这一类运用供给了「网开一面」的待遇:只需运用的功用包括音频播映、语音通话、GPS 定位等,就能够在后台坚持运转,不存在被体系「杀后台」的问题。这样的设定十分天然,避免了比如微信被切至后台后,语音通话中止等问题。
不同功用的后台运转形式也不同
除了上文说到的状况,iOS 还于 iOS 7 供给了新的后台选项:后台运用改写。
凭借这一特性,iOS 体系的运用能够完成在后台获取告诉,传输数据。例如,新闻资讯 App 能够在后台接纳内容更新,然后在你翻开运用前就加载结束最新的音讯内容。不过,详细的后台运用时段却并非由运用自身操控,而是由 iOS 体体系一组织,然后避免运用乱用后台权限,占用过多内存的问题。
跟着 iOS 13 的发布,苹果也引入了新的后台办理机制。凭借设备端的机器学习,iOS 体系能够更为智能地为运用组织后台方案,更好地完成运用后台需求和设备内存办理之间的平衡。关于 iOS 体系的后台办理,你能够在 Power+ 这篇文章《 从极度抑制到逐渐敞开:iOS 的后台运转进化之路 》中了解更多。
参阅文章:
《Android 手机运存越来越大,为什么后台运用仍是会被「杀」?》
《 从极度抑制到逐渐敞开:iOS 的后台运转进化之路 》
《 iPhone 为什么不加大内存?余认为的答复 》
《 APNs Overview 》