再考虑到INTEL,AMD等X86 CPU供应商也可能掣肘 。那么还有国内获得了X86授权的国产CPU,他们这两年也逐渐将产品性能赶上来了 。到时候华为如果不用Intel和AMD的芯片,还可以用国产CPU,性能问题随着摩尔效应收窄,和国产工艺迎头赶上,加上市场空间的转移,国产CPU会大有所为 。所以华为的方舟编译器也要扶持这部分生态 。
RISC-V指令集:RISC-V是可以与ARM媲美的开源硬件平台,这很可能是未来中国完全摆脱ARM和X86限制的途径之一 。因此如果华为要完全解决受制于人的发力很可能会考虑在未来,将成熟的RISC-V指令集加入方舟编译器的支持 。至于开发环境估计方舟编译器是可以与现有的主流开发环境协同使用的,就像一个插件,将原有的安卓开发工具包替换为方舟编译器工具包即可,或者两者并存 。
为什么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的从业者众多是一片沃土 。
推荐阅读
- 51单片机入门自学,轻松入门51单片机
- 大神放出小米6,小米6开发版版本下载视频
- 发票金额一般是多少,个人一个月能开发票金额多少
- 到底要交多少税,开发票交多少税
- 新手学c语言用什么软件,最近在学C语言
- 开发商破产了购房者怎么办
- 字符串转数字,C语言实现将字符串转换为数字的方法
- android手机开发,Android
- C语言 | 变量存储类型
- 吉林油田燃气60立多少,中石油吉林油田合作开发风波
