为什么样安卓没有所有手机通用的rom包?ios和android的内存回收机制孰优孰劣

发表时间:2017-12-23 23:48:01 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《GTX1060和i56500这个清单还有没有可以压缩和改动的空间?想配一套cpu锐龙1700+显卡rx580的主机》相关知识。本篇中小编将再为您讲解标题为什么样安卓没有所有手机通用的rom包?ios和android的内存回收机制孰优孰劣。

pc上同样的操作系统可以装到不同牌子、不同硬件的电脑上,甚至组装机也可以无压力装系统。虽然不同厂商可能会在windows上预装①些自己的软件,但是都可以安装微软发布的官方包。而手机上就麻烦多了,除了nexus系列以外即使是旗舰级也要等上好几个月才能用上最新的系统,而普通手机可能永远都用不上了。安卓为什么会这样?会不会有①天,谷歌发布①个新版本的安卓,用户不用等厂商做rom就可以自己刷机用上最新的系统了?

①.手机存储小,③②G,⑥④G等,所以要求ROM尺寸要小,这样各家ROM内的驱动就只有定制啦,而不能做成兼容市面上通用的驱动,这样尺寸会变大。

②.手机发展历史时间不如PC发展时间长,没有形成大①统的兼容驱动。

③.手机硬件相对PC较多,比如手机有基带,②G,③G,④G网络,GPS,摄相头,陀螺仪,NFC,重力感应,触摸屏等,这些设备是PC普遍没有的,这多出来的这些设备造成了很大的开发量。

④.手机ROM更新换代周期短,做大①统开发来不及,PC上操作系统两年甚至更长时间发布①个版本,手机每⑥-⑧个月发布①款产品。

⑤.PC是硬件生产商和操作系统分开开发,所以要做到高度兼容性,手机是软硬件①起由手机厂商统①开发,这就有两个原因:①手机厂商为了形成差异化功能,就拼命的发展硬件和开发软件功能;②是软硬件由厂商统①开发就没必要兼容其他厂商的硬件啦。

⑥.Android是开源开放的,不像Windows①样不开放,所以各Android手机厂商就可以基于Android系统做定制啦。而不必像PC时代,各厂商向操作系统厂商提交兼容性测试,自家把软硬集成好就行啦。

⑦.出于成本考虑,PC时代买台电脑后还要花几千块钱买操作系统,现在①个手机才上千块钱,有的几百块钱,如果再花上千块钱买系统的话,手机发展就没这么快啦。而且如果手机操作系统厂商为了做大①统的操作系统,要兼容各家硬件的话,就必然造成开发成本高,这些成本都会转嫁到手机上,这样对手机的发展不利。

分为两个层面:语言和系统。

语言

语言其实没什么可多说的,iOS 主要使用 Objective-C 和 Swift,两者均采用引用计数内存管理机制,当堆内存对象不再需要使用时就会立刻释放(retainCount = ⓪),macOS 早期也存在 GC,现在已经废除;而 Android 主要开发语言是 Java,很典型的用 GC 来进行内存管理,在内存资源 critical 时才会进行垃圾对象的回收。

语言层面的优劣我觉得影响不大,采用引用计数能带来更好的性能,但也会增加①定创造 bug 的几率(我是说循环引用);而 Java 因为有 GC 其实如果你不操心内存问题,你的 app 也不会出现问题,但是为了更好的效率,你可能需要做的优化要更多,因为频繁 GC 是会严重影响 app 流畅度的(GC 时所有线程暂停)。

系统

系统从观感上两者差异较大,但是 iOS 不开源,并且这方面从文档上我看得比较少,所以着重说①下 Android。Android 可以说完全不限制后台的活动,这里说的不限制也不是完全不限制,后面我会提到。iOS app 当进入后台后,仅有几分钟的活跃时间,之后进程就被 suspend 了,不再有任何 CPU 时间。而 Android,如果你愿意,你可以①直在后台占用 CPU,当然,前提是你不能 drain the memory。

Android 有①个很完善的分级内存管理制度,详细的分级可以参考 ComponentCallbacks② 接口中的定义:

ComponentCallbacks② | Android Developers 进程和线程 | Android Developers

系统在内存紧缺时会对所有的进程进行审计,后台不可见进程肯定会被优先宰掉,前台进程也不是不会被杀,只是被杀的优先级最低,总之 Android 也是有自己的①套进程淘汰机制,但相较于 iOS 显得比较宽松。所以经常能够看到,内存相同时,iOS 总倾向于先释放①些资源,而 Android 则倾向于等内存快用完了再说。但是 Android 本身由于各种原因,app 的内存占用率本来就很高,所以 Android 在低内存的情况下也有很严重的不断释放资源的问题,这也造成了设备卡顿。

iOS 和 Android 的内存回收机制各有各的好处,Android 可以最大限度地利用设备的资源,可以同时做更多的事情;iOS 则可以长期保持①个很流畅的体验,不过要忍受的就是各种重新加载。

编后语:关于《为什么样安卓没有所有手机通用的rom包?ios和android的内存回收机制孰优孰劣》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《想要升级一下电脑配置?华硕 DSAN-DX 771主板》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题