博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原生android VS 定制android(一)
阅读量:5750 次
发布时间:2019-06-18

本文共 1496 字,大约阅读时间需要 4 分钟。

  hot3.png

国内终端厂商似乎都很喜欢定制操作系统,早期的中国移动的OMS系统,其他还有小米的MIUI,联想的乐OS、阿里巴巴的阿里云操作系统等。何谓深度定制的操作系统?为什么国内厂商都喜欢这么干?

MIUI、锤子,到底何谓深度定制系统?

定制操作系统是相对于原生操作系统来说的,某些开源的操作系统,例如Linux和允许终端厂商免费使用,终端厂商可以在其基础上做一些修改,以达到自身的一些目的。

根据对操作系统修改的程度,可以分为一般的定制和深度定制。定制一套自己的UI界面这样的属于一般的定制,对原生系统的改动很小,同时也很容易兼容原生应用。有些厂商却对系统的更深层做了修改。

手机操作系统可以分为内核层、中间层和应用层。基于Linux操作系统进行定制的系统,底层就是Linux系统的内核,中间层包含了名为Dalvik的JAVA虚拟机,应用层则是根据原生系统修改后加入的各种应用。每个应用程序都运行在自己的进程上,享有Dalvik虚拟机为它分配的专有实例。

所谓深度定制,一般是指对中间层做修改,就是修改Dalvik虚拟机的一些设置。例如OMS操作系统集成了大量的增强型中间件,以更好地支持各种应用,并不是简单复制安卓系统。

那么为什么厂商喜欢定制操作系统?因为操作系统本身最大的特点并不是定制,是通用性。而国内厂商无力研发全新的操作系统,或者尝试研发但是都不够成功,那么退而求其次,选择定制的操作系统来兼容市场上已有的大量应用,同时通过适度修改来满足自身的应用集成需求,这种选择是合理的,一定程度上讲也是必然的。

其实谷歌Android操作系统也是基于Linux开源操作系统的内核而设计的“深度定制”操作系统,只是其对改动比较大,内核部分也做了修改,因此可以说是一套独立的操作系统。

国内厂商也曾尝试做独立操作系统,例如阿里云。虽然也使用了Linux的系统内核,但是阿里巴巴开发了自有的虚拟机,在中间件层面做了比较大的修改。这也是阿里巴巴宣称阿里云OS是独立于Android之外的独立操作系统的原因。

但是阿里云操作系统又兼容了Android的Dalvik,也正是如此,谷歌才反驳称,阿里云OS是经安卓系统修改而来,直接使用了安卓的运行环境、框架和工具,并不是独立的操作系统。因此,谷歌指责阿里云操作系统抄袭,要求阿里云必须与Android保持兼容。

为了对阿里巴巴施压,谷歌表示将会解除与阿里巴巴Android产品的合作和相关技术授权。阿里巴巴不得不推迟了原定的与宏碁的合作。

谷歌对于深度定制的态度,虽然没有明确表示反对,但是也并不支持,而且提出了明确的要求,就是必须通过操作系统的兼容性测试(CTS)。通过CTS测试之后便允许在设备上使用Android商标,它标志着该设备能够良好兼容软件市场中的大量应用程序。基于安卓进行深度定制的国内厂商必须满足这一要求。

某些厂商直接基于Linux系统进行定制,但是一般也需要兼容安卓系统的应用,一方面便于开发者的应用迁移,构建生态体系,另一方面也是满足操作系统的通用性这一“硬需求”,因为,谁让国内厂商无法研发出一款强大的自主操作系统呢。

大量定制操作系统的存在,造成了安卓碎片化的局面。谷歌并不希望厂商这么做。但是本身安卓又是一套开源的操作系统,而且谷歌从扩大安卓市场占有率的角度着想,仍然进行了放任。这也是安卓系统比较混乱的原因之一。

从终端厂商来讲,基于安卓的深度定制的操作系统会受到谷歌更新的制约,必须在更新上与安卓进行同步,由于安卓更新频率很快,而且变动难以预料,深度定制的系统也有一定的风险。

转载于:https://my.oschina.net/kun123/blog/840110

你可能感兴趣的文章
上云就是这么简单——阿里云10分钟快速入门
查看>>
MFC多线程的创建,包括工作线程和用户界面线程
查看>>
我的友情链接
查看>>
FreeNAS8 ISCSI target & initiator for linux/windows
查看>>
cvs文件提交冲突解决方案
查看>>
PostgreSQL数据库集群初始化
查看>>
++重载
查看>>
Rainbond 5.0.4版本发布-做最好用的云应用操作系统
查看>>
nodejs 完成mqtt服务端
查看>>
Spring IoC容器初的初始化过程
查看>>
sql server 触发器
查看>>
[工具]前端自动化工具grunt+bower+yoman
查看>>
关于完成生鲜电商项目后的一点总结
查看>>
noip2012 普及组
查看>>
第二阶段 铁大Facebook——十天冲刺(10)
查看>>
Java判断是否为垃圾_Java GC如何判断对象是否为垃圾
查看>>
多项式前k项和java_多项式朴素贝叶斯softmax改变
查看>>
java数组只能交换0下标和n_编程练习-只用0交换排序数组
查看>>
centos7安装mysql视频教程_centos7安装mysql(完整)
查看>>
php图片赋值,php如何优雅地赋值
查看>>