这也是为什么目前定制系统如此之多的情况下,但能够流畅运行一段时间的系统还是寥寥无几,也就是说很多,手机厂商美其名曰是定制系统,其实,不过是多加了几个自己的软件或者说是多加了几个功能,反而让系统越来越臃肿,也就是说目前的定制系统速度很难,超得过原生的安卓系统。由此引发的软件运行环境也是比较混乱,我们知道苹果的iOS系统由于有APP store的监管也就说,很多软件厂商在开发软件的时候,要严格遵守苹果的一些规定,否则一不留神就有可能会被苹果暴力下架,这一点也像是悬在很多软件开发商头上的达摩克利斯之剑,让软件开发商可能不敢太过于造次。

这项举措也是维持了iOS平台的规范性的软件运行环境,让很多用户都会慨叹iOS系统包括整体的操作体验是非常流畅的,这与苹果自身的努力和软件开发商的规范操作,有着密不可分的联系。相反来看的话,这些都是安卓所不具备的特点,除此之外方舟编译器即便开源之后也只能对那些是配方周边一汽的APP,能够有效的优化,而大部分的软件还是没有办法,也就是说流氓应用还将继续流氓下去而安卓还将持续卡顿。

为什么Android开发使用Java而不是C ?

文/小伊评科技结论:如果谷歌用C 作为安卓开发语言,安卓早就挂了。安卓系统卡顿的根源估计很多人都比较清楚了,最根本最核心的原因就是因为其应用层采用的是Java语言。因为Java是一个跨平台的语言,为了保证跨平台的兼容性,它内置的有Java虚拟机,这个虚拟机的作用就是把应用层的指令解释为机器语言,然后推动硬件去处理,使用者只需要根据平台的不同配置相应的JDK即可,这也就保证了Java的跨平台特性。

但是正所谓有得必有失,也正是由于虚拟机的存在,用户的指令无法直接经过编译后成为机器码,还需要经过虚拟机的解释才可以,这也就导致了其执行效率是比较低的。而反观C ,作为一个偏底层的开发语言,他的指令经过编译后可以直接转化为机器码和硬件进行交互,执行效率就要高很多了。举个形象一点的例子,方便大家理解:使用Java语言,就像是两个语言不互通的人中间隔着一个翻译官在交流,哪怕这个翻译官的水平再高,翻译的速度再快,他也不可能做到实时的翻译,总需要一个处理的过程,交流成本就比较高,效率也比较低。

而采用C 语言则就像两个语言相通的人在对话,一个人说的话可以直接被另外一个人听懂,交流效率大大提升。所以,虽然在安卓5.0时代,谷歌虽然给安卓系统做了一次大手术,更换了一个全新的效率更高的ART虚拟机,但是很可惜,就像上文所举得例子那样,谷歌只是换了一个翻译能力更强的翻译官而已,并没有解决最本质的问题。

看到这,肯定会有人要问了,谷歌为什么要选择Java而不去选择执行效率更高的C 呢?难道谷歌的工程师不知道Java存在执行效率低的问题么?当然不是,谷歌这么做也是迫不得已。谷歌的算盘。在2005年,谷歌将安卓团队一行人收入囊中之后(也就是安卓之父安迪·鲁宾团队),本来实际上也没有打算完全开源,而是闭门造车了很长时间,不过始终没有什么大的进展。

然而在2007年1月,苹果公司率先发布了人类历史上第一款具备象征意义的新一代移动操作系统——iPhone runs OS X(也就是后来的IOS),并且还基于这个系统发布了第一代iPhone。这个时候,谷歌也嗅到了移动互联网时代即将来临的气息,但是谷歌同时也意识到,单靠自己是不足以和苹果对抗的,因为谷歌本身只是一个互联网企业并不具备像苹果那么强大的硬件基因(苹果本身就是一家硬件公司),他不具备制造硬件设备并且大规模向外推广的能力(没有渠道)。

于是,谷歌想了一个方法——“开源共建”,把已经开发的基本可用的安卓系统完全开源,供其他有兴趣进入智能手机市场的企业进行二次开发。这个操作也吸引了世界上绝大多数除了苹果之外的硬件厂商,毕竟这可是当时第一款完全开源的系统,而且谷歌还邀请了众多业界大拿站台(开放手机联盟)。系统有了,那么怎么才能吸引开发者去开发安卓应用呢?谷歌的办法很简单——“尽可能地降低开发安卓应用的门槛”,于是,谷歌最终选择了Java作为安卓应用层的开发语言,至于原因主要有两个:原因一:Java的从业者众多是一片沃土。

 3/5   首页 上一页 1 2 3 4 5 下一页 尾页

文章TAG:手机  安卓  开源  上榜  
下一篇