安卓|再次确认iPhone运行内存策略的根本目的是慢慢割韭菜

安卓|再次确认iPhone运行内存策略的根本目的是慢慢割韭菜

文章图片

【安卓|再次确认iPhone运行内存策略的根本目的是慢慢割韭菜】安卓|再次确认iPhone运行内存策略的根本目的是慢慢割韭菜

文章图片




iOS运存为什么比安卓少这个问题 , 我发现有一个人明明回答得漏洞百出 , 见图1 , 但不知为何 , 这样的一个回答却意外地让它收获了很多点赞 , 说实话 , 这让我很惊讶 , 惊讶现在的人都这么没有分辨真实能力了吗?



关于iOS运存为什么比安卓少这个问题 , 这个人是这么回答的 , 他说分为两个方面 , 一方面个是iOS的内存管理策略不一样 , 另一方面是两者的运行机制不一样 。 这两个方面的具体内容大家可以看图1 , 结合图1的这个回答 , 我在下面给大家指一下为什么不对 , 哪里不对?然后再说说二者运存差异 。

1、内存管理策略上说的不对 , 双方系统都是会自动管理并且释放内存 , 反而是早期使用objectc开发的ios应用会存在非NSObject的对象需要手动回收内存的情况 。




2、软件进程是需要的内存是动态的 , 两个系统都是应用进程需要多少申请多少内存(安卓不是所谓的鼓励有多少空间占多少) , 当内存满了或者达到阈值了之后会按照优先级杀掉不活跃的进程 , 这个是一样的 。

3、出现差异是在后台运行机制上 , iOS进入后台(离开应用程序界面)就会给几秒钟程序反映的时间保存数据 , 然后就停止app运行释放内存 , 这点在下拉通知栏或者控制中心再关掉游戏马上就会卡一下重新加载可以看出来 , 这种被叫做假后台 , 很多人以为iOS现在不是假后台了 , 但其实只是离开后台那几秒保存了当时的画面数据 , 再进入前台的时候把画面回复了 , 如果内存紧张了 , 连画面数据都会回收 , 这个时候才会重新加载app ,



而安卓的后台 , 在进入后台(离开应用程序界面)后只是会通知画面进入后台 , 然后运行的服务仍然可以继续运行 , 当内存不够的时候才会杀掉进入后台的画面 , 所以流氓app就会一直吃系统资源 , 甚至研究出被杀死后马上重启后台服务的各种骚操作 , 但是随着最近的安卓版本对与应用的限制越来越高 , 所以一定程度上安卓远比初期野蛮的版本流畅的多 。

可以说 , 真假后台导致需要的内存不一样 , 反正我个人比较喜欢真后台 , 因为假后台除了大家常说的游戏会卡住外 , 还有一个让人苦恼的老毛病 , 就是经常很多时候进入app会闪一下加载 , 比如iPhone收到微信推送点进去 , 非要看两秒旧消息的画面之后 , 才会闪一下刷新新的消息那种 , 而这我就不太喜欢 。




最后回答一下 , 这个“为什么安卓运存比iOS大”的这个问题 , 其实 , 安卓需要这么大的内存最主要的原因是没有谷歌服务 , 每一家app想要收到通知就需要自己开一个后台服务 , 想想腾讯、阿里、百度、美团icon、滴滴都开一个 , 手机后台不跟养蛊似的 , 不夸张的说 , 12个g里面 , 有三四个g是给这些公司买的 , 这可以说是国内特色了 , 大家可以看看国外的安卓手机 , 基本很少有这么夸张的内存版本的 , 同时期基本差个2-4g