您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
华为发布会上发布的方舟编译器国内别的手机厂商研究出来了么?
华为,编译器,方舟华为发布会上发布的方舟编译器国内别的手机厂商研究出来了么?
发布时间:2019-02-08加入收藏来源:互联网点击:
华为发布会上发布的方舟编译器国内别的手机厂商研究出来了么?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
1,编译器是把软件源代码编译成可执行的程序的工具,各种应用开发可以用不同的编程语言开发实现,比如JAVA,C,C++等,再通过IOS编译器编译成可在Iphone上运行的程序,通过安卓编译器编译成可在安卓手机上运行的程序。一般IOS和安卓的源代码是不样的,需要单独开发。方舟编译器编译的是安卓版本的应用程序的源代码,生成的程序可以在安卓系统上运行且比安卓编译器生成的程序更流畅。本质上,这个编译器没有对安卓本身做任何改变,而是改变了应用程序的形态。
2,阿里云OS实际上是安卓的一个分支,优化了安卓操作系统的一些性能,这也是谷歌非常反感的,所以有GSM协议,禁止厂商推出自己的安卓版本导致安卓系统碎片化。碎片化带来的严重后果是应用程序在不同版本的安卓上可能不兼容了,只能在某些安卓版本上运行而在有些版本上不能运行,这样会给应用程序开发带来额外的工作量,非常不可取。
3,各个大的厂家有自己基于安卓的定制界面,比如华为的EMUI,小米的MIUI,魅族的Flyme,这个没有对安卓底层做修改,而是在操作界面上做了一些定制,把图标做得有自己特色的风格,把一些菜单的逻辑做了一些个性化定制,但是本质上还是安卓的底层系统,运行的效率和流畅度几乎没有差距。
4,华为的GPU Turbo,CPU Turbo涉及到了安卓底层的一些接口优化,但是也没有改变安卓系统本身,而是优化了安卓系统跟CPU与GPU一些调度逻辑,提升了效率。
5,Turbo,各种厂家的UI,包括编译器,都没有动安卓系统本身,但是都是在想办法解决安卓系统的效率与流畅性的问题,拉近与IOS体验的差距。目前为止仅有华为推出了编译器,且已经开源,其它厂家暂时没有看到动作,后续是不是愿意跟进,以及有没有实力跟进,有没有动力跟进,可以拭目以待。有个说法,世界上有能力对安卓系统底层动手术的工程师大概有300个,100个在谷歌,100个在华为,另外100个在其它各个组织。
6,华为为什么要推出方舟编译器,一方面提升安卓手机的体验,提升与苹果手机竞争时的产品竞争力,为整个安卓生态做贡献。另一方面,大胆推测,经过方舟编译器编译的应用程序,应该是可以运行在华为自研的操作系统上的,且在华为自研操作系统上有比在安卓系统上更流畅更好的体验,这样,当足够多的应用程序完成了方舟编译器的编译之后,华为顺势推出自研操作系统,也就有足够强大的应用生态支撑华为自研操作系统的流行了。
7,华为推出自研操作系统在技术上没有难度,目前形成的IOS与安卓两强的局面,主要还是因为生态(即移动应用程序数量和支持度)的原因,微软的Windows phone主要也是败在这个方面,目前移动应用大概400万+种,任何源代码级别的修改带来的工作量的增加都可能造成移动应用支持不够,方舟编译器完美的解决了这个问题,华为自研操作系统能形成健康可持续的生态的可能性非常非常大。
8,谷歌不会坐等安卓份额的丧失,去年说计划在欧洲开始收费变现了。华为方舟编译器的发布可能会导致安卓收费的延迟甚至是取消。判断有两种可能,敌不动我不动,谷歌不收费或者美国不制裁,华为就不推出自研操作系统。谷歌一旦有伤害安卓手机厂商的举动,真到了那个时候,大胆预测,华为就会顺势推出自研操作系统并宣布永久免费甚至开源。到时候华为手机操作系统的生态就开始进入正式拓展阶段,能不能成,也需要时间去检验。
回答于 2019-09-11 08:43:50
方舟编译器应该是怎么回事?
从媒体发布的有限信息来看,华为的“方舟编译器”应该是一个将Java源码或者Java源码编译成的Dalvik字节码编译为本机代码的编译器。这并非创新,但确实算是安卓领域的创举。因为安卓的基本设计理念就是将APP源代码编译为Dalvik虚拟机(新版本安卓升级为ART虚拟机,性能提升了2倍,但换汤不换药)所需的中间代码,而不是可以直接在手机CPU上执行的指令码,这样有跨平台、安全性可控等优势,但劣势就是执行性能偏低。安卓官方到目前都没有一款供APP使用的本机代码编译器——这似乎是安卓控制生态的一种策略。APP必须满足Dalvik/ART的标准才能在安卓系统上运行。[头条·小宇堂—未经许可严禁转载]
因为安卓采用的是Linux核心,因此系统底层开发确实是可以使用标准的C编译器来编译一些程序以本机代码高性能执行,诸如驱动程序和系统基础服务等等。但安卓的设计思路维持了JAVA一贯的“边翻译边执行”的形式,这跟JAVA程序在PC上运行的情况类似(采用此类策略的还有微软的.net和Python等。但是要注意安卓的程序编译成的字节码跟JAVA字节码是不同的)。
因为字节码需要在APP启动后通过Dalvik/ART虚拟机进行“运行时”翻译,也就是华为发布会讲的“边解释边执行”,因此安卓APP的执行性能被大大降低了。而苹果手机的程序则是全部编译成本机代码的,因此大家总会感觉iOS的APP比安卓APP的运行起来更流畅的主要原因。(IOS系统是基于UNIX的开源版本BSD)。
方舟编译器则是跳过了安卓系统的核心Dalvik/ART虚拟机,让APP编译为无需Dalvik/ART虚拟机解释的形式,直接在安卓系统的核心上运行。离开了Dalvik,安卓系统不过就是一个标准Linux操作系统而已,或许安卓已经不再是安卓。谷歌给APP上的紧箍咒就不存在了,如此安卓就只剩下了一个名字而已。而既然已经走到这一步,华为离开发自己的手机操作系统就只剩下捅破这一层纸而已。
从某种意义上来说,方舟编译器(ARK)就是ART终结者。ARK=Android Runtime Killer
本机代码编译器是干嘛?
本机代码编译器是这么一个程序,它的作用就是将人类撰写的程序代码变成CPU可以直接执行的指令码。不同的CPU就需要不同的编译器来进行编译。例如为英特尔x86CPU开发的编译器编译出来的程序就只能运行在x86系列的CPU上,而不能运行在ARM或具有其他不同指令集的CPU上面。也就是说如果指令集不同,那么不“对口”的编译器编译出来的代码就不能执行。Java之所以设计了一种中间的字节代码,其基本原因也就是为了能够跨不同的指令集执行,从而允许相同的程序能够运行在不同的CPU和不同的操作系统上,即所谓跨平台能力——当然不同平台上都必须安装对应版本的JAVA虚拟机。
上一篇:北京哪有装裱画的地方呀?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |