您当前的位置:首页 > 电脑百科 > 程序开发 > 移动端 > Android

“华为方舟编译器”到底是干什么用的?

时间:2019-07-04 10:13:10  来源:  作者:

这是一篇纯个人观点分享文章,也是一篇用大白话分析“华为方舟编译器”的文章,这里面大多数技术环节都是经过我个人理解“翻译”过来的,或许会有描述错误的地方,但大框架是很值得大家参考的,看完之后,你一定能搞清楚,这是一个什么东西。

华为方舟编译器,我们先把这个词分开来讲:

华为 - 这个东西是华为研发出来的

方舟 - 是这个编译器的名字

编译器 - 简单理解就是一个模块化的工具,这种东西是给软件开发人员用的,它可以让开发人员不必写复杂的电脑语言(电脑只认识0和1),像JAVAphp、VB、C++等,它们都是编程语言,在编写的时候都有自己的语法,人们用编程语言就可以开发软件了,而不是写数万个0和1。

再简单点理解,编译器 = 编程工具或语言,而且是那种很方便的编程工具,模块化更多。

 

“华为方舟编译器”到底是干什么用的?

 

Android 是大家都知道的手机操作系统,但它并不是天生就好用的,它从前只是一个糟透了的程序,但在那个年代它是有优势的,所以谷歌才去收购了它。

从小作坊出来的Android,虽然进了谷歌公司,在强大的技术背景下一天天长大,可它先天就有残疾,这是没办法改的,即使谷歌对它万般优化,也没办法彻底改变它的硬伤。(运行程序的顺序复杂,吃内存,产生的系统垃圾过多)

学过编程的人肯定都知道一个逻辑,当你去修改一套陌生的系统或代码时,会非常头痛,因为它用的语法和你不一样,它调用的函数和你的习惯不一样,它用的算法乱七八糟,甚至重做一个都比修改来得更快。

 

“华为方舟编译器”到底是干什么用的?

 

可如果这个系统已经无比庞大,任何一个顶级工程师都没办法重来,甚至少一个标点符号都会引起很多连锁反应,这也是为什么很多应用和网站经常有BUG的原因。你打开新浪、网易、搜狐、腾讯,看看他们的网站,几乎和5、6年前一样,只是多了几个模块,换了换内容和颜色,谁不想改版一下?但不能,因为太庞大了。

Android 现在就是这个处境,大家都知道需要改一下,可谁也不敢乱动,它太庞大了,除了它自己的系统本身,还牵涉到数百万个第三方应用和公司,这里面太过复杂了。于是谷歌只能凭借自己强大的技术,在原基础上一点一点的修改,一点一点完善,这和整容差不多,外观好看了,界面友好了,操作流畅了,但内部可能已经乱成了一团,年纪再大点,可能就崩了。

给大家出一道题,[ 从0一直加到100,等于多少?]你可以拿出计算器算一下,虽然数字比较简单,但太多了,所以一瞬间还真算不出来。可编程的人很快就可以回答出来,它是5050。他也有计算,只不过大家算法不同,你是一个一个加起来的,他是这样分析的:0 + 100 = 1001 + 99 = 1002 + 98 = 1003 + 97 = 100...49+51=100,加了50次都等于100,那就是5000,最后还余下一个50,5000+50 = 5050。(这是一个新入门编程的学生,第一周就应该学会的东西)

虽然最后得到的结果是一样的,但计算速度就差太多了,算法的水平决定了一个程序员的工资和实力,也决定了这套系统或应用的实际使用体验。

你下载10GB的数据,慢1分钟你都不会在意,可如果是滑动一下屏幕,或是点击一下应用图标,它慢半秒你都可能会生气,这就是优秀的程序可以给你的体验。

Android 除了自然缝缝补补的缺陷之外,它的应用来源也非常乱,你可以在googlePlay下载应用,这算是体验最好的;国内用户可以在手机自带的应用商店下载,这算是体验第二好的;还可以在豌豆荚之类的第三方应用市场下载,这算第三。

随便找个网页都可以自己手动安装,邮件里点一下,微信里点一下,微博里点一下,甚至还能自己弹出来提示安装,这种没有任何保证的应用,你都不知道它是用什么做出来的,甚至有些人用廉价的生成工具直接打包了一个应用就发上来了。

不仅质量差,重点是编辑水平烂到极致,肆意占用系统资源,猖狂地弹出广告,这全都是影响速度和体验的源头。

手机自带应用商店也没有那么纯洁,还记得我在评测“某粗粮”的时候,《真实赛车3》的游戏加载画面都要弹广告,而且是好几个。

“华为方舟编译器”到底是干什么用的?

 

这种糟糕的体验真的是无奈,重点是我从别的地方下载的《真实赛车3》,至少这个环节不可能有广告,因为太影响游戏者的心情了。这种应用一般都是应用商店的运营者后加上去的。

为什么手机厂商要花大力气自己做应用商店:

可以让商店内的应用对自己品牌的手机适配更好。

推荐一些付费的应用,手机厂商可以赚钱,你打开自己手机的应用中心,看看是不是推荐出来的全是莫名其妙的应用(游戏),甚至都没听过的?这些东西只要你装了他们就能挣钱,甚至注册了给的更多,如果绑定了银行卡或消费了,还有提成,这才是应用商店存在的主要目的,再加上前面提到的,在热门游戏里加几个弹窗,卖点流量钱。

因为太赚钱了,所以谁也不想把钱都送给第三方应用市场。而那些第三方的应用市场毕竟是专门干这个的,所以他们会想尽一切办法来圈钱,甚至会把应用的审核门槛降低很多,导致大量垃圾应用泛滥,某个知名的第三方应用市场,简直是恶心到了极点,甚至都可以说他们在祸害全国手机用户的手机,虽然不点名,但你们的臭名早就传开了。

上面说了这么一大堆软件和系统的问题,其实就是为了引出我们下面要说的“华为方舟编译器”,如果没有前面的铺垫大家理解起来会比较模糊。

会影响手机速度的因素,除了手机之外,就是应用的质量。手机厂商可以尽量地优化自己的系统,把配置尽量弄得高一些,现在8GB内存都快普及了,可应用的使用体验其实一直是同一个水平线,并没有显著提高,可内存如果不加了,就会越来越慢。

所以想让手机“更快”维持的久一点,就需要从根本入手,把应用的开发流程和语言统一起来,这样不管是谁开发的应用,手机都认识,可以第一时间做出反应,并且相互之间兼容更和谐。

这就是“华为方舟编译器”要做的事情,最大的不同就是,这是和谷歌一起来搞的,也就是说谷歌方面是很愿意大家一起来把Android做得更好。因为Android虽然是谷歌家的,但在国内却变成了N家,谷歌再厉害也不可能管到这么多人,所以如果可以统一一个标准,对所有人都是有利的。

题外话,华为如果想做这个东西,必须有Android的底层权限,否则根本解决不了问题,所以必须有谷歌的支持才可以,对谷歌来说华为拿出了一个很好的方案,只要他给一些权限,甚至在深度问题上一起探索,这对所有Android用户都是“产业级”的贡献,谷歌自己本身也是在造福大家的,所以华为方舟编译器从某种意义上来说,是华为和谷歌共同带给大家的一个礼物。

“华为方舟编译器”的工作原理简单的来说就是,它跳过了反锁的虚拟机程序,直接把指令告诉了手机,手机去执行,中间少了一个传话的流程,所以可以明显提升手机的运行效率,如:打开应用的速度,传送文件的速度,拍照的响应速度,甚至开机关机的速度。

 

“华为方舟编译器”到底是干什么用的?

 

这个方舟编译器其实也是一个规范,它要求所有人用这个框架开发应用,它用更高级的可视化操作简化编程时间和流程,然后用统一的指令告诉手机应该怎么做,这中间不管是谁来操作都是一样的流程和格式,所以应用的质量会有明显提升,这不仅是速度上的东西,甚至还可以帮助应用本身减少压缩包的体积,这是一个连锁反应,并且是好的方向。

听上去是好的,但这中间大家忽略了“利益”和“面子”,这两个词就是严重阻碍国内科技企业发展的罪魁祸首。

应用全统一了,黑色垃圾内容产业怎么办?那些靠篡改应用获利的厂商怎么办?这全都是问题。

还有,如果某友商也在用,大家说你看还是华为牛逼,友商也在用,面子往哪放?这在手机行业太明显了,天天微博上怼来怼去,还用你的东西?找骂?

所以“华为方舟编译器”虽然是个好东西,但能不能普及这个真的很难讲,毕竟这里面牵涉到了太多人的利益和面子问题,除非谷歌站出来说话,建议国内安卓厂商统一使用这个东西,其实这不是重点,我甚至猜到了一个可怕的东西。

突然有一天手机圈里炸出来一个“谷歌应用商店国内版”,这个应用商店里所有的应用全都是用华为方舟编译器做的,而且直接与谷歌应用商店挂钩,只不过服务器是华为的,受国内相关部门监管。

这样一来不仅困扰大家的应用质量问题得到了解决,谷歌也可以曲线进入中国。谷歌与华为合资一家公司太容易了,专门用来运营这个商店,中国最强应用商店的标签贴上去,我想大家不会有异议。

如果你受够了那些垃圾第三方应用商店,“谷歌应用商店国内版”来了你会不用?

华为这个企业我发现它从来都不会直接去冲动做什么事,他老是默默地发育,最后下一盘大棋,虽然上面这个“谷歌应用商店国内版”是我自己幻想的,但以目前情况来看,它真的有可能出现。

而这种事,也只有华为可以干,因为他从一开始就出人又出钱,他们从2009年就开始筹备这个了,到现在已经10年了,不说中间开发用多少钱,其实养这些工程师就很多钱了,能参与这种底层架构的工程师,随便到什么单位都是顶级工资。

现在又和谷歌一起合作,这表现出了他对谷歌的尊重,之前的YunOS为什么会被谷歌打压?因为它不仅不管谷歌的感受,还标榜自己是独立的操作系统,有了前车之鉴,华为能和谷歌合作,对我们普通消费者来说也是好事。

其时大家也没必要在网上肆意吹捧和贬低,各种编译器网上有很多,只不过华为这个目前看上去最强大,与谷歌合作后,它基本算是个半官方产品。

重点是,你全天24小时不休息的去吹捧它,其它厂商和开发者不用,你也白扯;如果你24小时不间断去骂它,那更没用了,华为这个企业根本就不怕骂,麒麟处理器骂了多少年,现在不是一样过得好好的,而且口碑还不错。

你骂它,不会影响它任何进度,表扬也要适可而止,毕竟现在只是开始,结果还不知道怎么回事呢,如果有一天“谷歌应用商店国内版”真的来了,大家再欢呼也不迟。

“华为方舟编译器”对普通消费者来说,我们只要结果;对友商和开发者来说,就是利益和面子的选择;对华为来说,这只是一个项目的成果,结果只能看命;对谷歌来说这或许是拯救Android碎片化的有效途径;对我个人来说,这只是一篇写给瓦力评测读者的小小分享,喜欢就收藏分享,不喜欢就关闭,有骂来骂去的时间不如去楼下菜市场溜达一圈,说不定还能捡几块钱。



Tags:编译器   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
C语言作为高级语言,用其编写的程序指令机器并不能识别,因此需要有一个编译器将其转换为机器可识别的二进制指令。C语言已经出现50多年的时间,其相关的编译器种类众多,从最早先的...【详细内容】
2021-08-24  Tags: 编译器  点击:(132)  评论:(0)  加入收藏
仅就从性能部分的错误诊断比较区别,之前见国外有相关文章,我做简单分享,但是,如果要了解区别,无妨从下文中包含的gcc和msvc阅读了解一下。GCC和Clang一直在彼此较劲尝试证明谁的...【详细内容】
2021-03-22  Tags: 编译器  点击:(618)  评论:(0)  加入收藏
编译器一般构成传统的编译器通常分为三个部分,前端(frontEnd),优化器(Optimizer)和后端(backEnd)。在编译过程中,前端主要负责词法和语法分析,将源代码转化为抽象语法树;优化器则...【详细内容】
2020-11-03  Tags: 编译器  点击:(109)  评论:(0)  加入收藏
gcc编译器编译过程详解gcc常用选项 一个c/c++文件要经过预处理、编译、汇编和链接才能变成可执行文件。 (1)预处理 C/C++源文件中,以#开头的命令被称为预处理命令,如包含命令#in...【详细内容】
2020-07-30  Tags: 编译器  点击:(52)  评论:(0)  加入收藏
简单介绍一下编程方式的历史演变。-- Erik O'shaughnessy(作者)在计算机诞生不久的早期年代,硬件非常昂贵,而程序员比较廉价。这些廉价程序员甚至都没有“程序员”这个头衔...【详细内容】
2020-06-26  Tags: 编译器  点击:(70)  评论:(0)  加入收藏
原作:Archie Mistry翻译:豌豆花下猫@Python猫原文:https://morioh.com/p/765b19f066a4Python 是一门对初学者友好的编程语言,是一种多用途的、解释性的和面向对象的高级语言。它...【详细内容】
2020-01-10  Tags: 编译器  点击:(27)  评论:(0)  加入收藏
各位,关于编译器和集成开发环境这两个名称,我们平时一直在说,但这二位究竟有什么区别和联系呢,今天就跟大家简单聊一聊。 我们平时所说的程序,是指双击后就可以直接运行的程序,这...【详细内容】
2019-11-11  Tags: 编译器  点击:(102)  评论:(0)  加入收藏
我们平时所说的程序,是指双击后就可以直接运行的程序,这样的程序被称为可执行程序(Executable Program)。在 Windows 下,可执行程序的后缀有 .exe 和 .com(其中 .exe 比较常见);在类...【详细内容】
2019-10-12  Tags: 编译器  点击:(135)  评论:(0)  加入收藏
华为方舟编译器终于正式开源,源代码放出,兑现了在8月开源的承诺。...【详细内容】
2019-09-02  Tags: 编译器  点击:(356)  评论:(0)  加入收藏
今日华为EMUI官方微信发文宣布,方舟编译器开源准备就绪,将于8月31日起开源。方舟编译器是完全替代了语言虚拟机的静态编译器,从此不再需要解释器。相比现有的编译机制有以下明...【详细内容】
2019-08-30  Tags: 编译器  点击:(200)  评论:(0)  加入收藏
▌简易百科推荐
今天面试遇到同学说做过内存优化,于是我一般都会问那 Bitmap 的像素内存存在哪?大多数同学都回答在 java heap 里面,就比较尴尬,理论上你做内存优化,如果连图片这个内存大户内存...【详细内容】
2021-12-23  像程序那样思考    Tags:Android开发   点击:(8)  评论:(0)  加入收藏
Android logcat日志封装logcat痛点在Android开发中使用logcat非常频繁,logcat能帮我们定位问题,但是在日常使用中发现每次使用都需要传递tag,并且会遇到输出频率很高的log,在多...【详细内容】
2021-12-22  YuCoding    Tags:Android   点击:(8)  评论:(0)  加入收藏
对项目的基本介绍 1.整个框架主要是给MVVM框架使用的,自己写完interface接口后,通过自定义的注解就能自动生成接口方法 2.用Kotlin的Flow去代替Rxjava,因为我发现RxJava功能很...【详细内容】
2021-12-08  网易Leo    Tags:Android开发   点击:(17)  评论:(0)  加入收藏
前言在Android开发过程中,有些时候会根据需要引用别的项目到当前项目里面,而且以Module形式引用。所以本篇博文就来分享一下怎么以Module形式引用别的项目到当前项目中,方便开...【详细内容】
2021-12-07  网易Leo    Tags:Android开发   点击:(22)  评论:(0)  加入收藏
作者:fundroid这篇文章偏阅读一些,大家可以了解下 Android 的一些最新动向。每年9/10月份 Google 都会举行约为期2天的 Android Dev Summit,在活动上 Google 的技术专家们会分...【详细内容】
2021-11-30  像程序那样思考    Tags:Android开发   点击:(15)  评论:(0)  加入收藏
一、 准备工作1、安装JDK,下载地址(可能需要一个oracle账号,大家百度一下或者自行注册一个就行。尽可能选择8或者11,这两个是长期版本)Java SE | Oracle Technology Network | Or...【详细内容】
2021-11-23  永沧    Tags:Android   点击:(28)  评论:(0)  加入收藏
使用Maven Publish Plugin插件。(官方支持)一、在Library的build.gradle中配置plugins { id 'com.android.library' id 'kotlin-android' id 'k...【详细内容】
2021-11-05  羊城小阳    Tags:Android   点击:(37)  评论:(0)  加入收藏
谷歌离推出Play Store应用程序的新数据隐私部分又近了一步。应用程序开发人员现在可以通过谷歌在Play控制台的新 "数据安全表 "填写相关细节。该公司表示,所需信息将从2022年...【详细内容】
2021-10-20    中关村在线  Tags:安卓   点击:(58)  评论:(0)  加入收藏
架构究竟是什么?如何更好的理解架构?我们知道一个APP通常是由class组成,而这些class之间如何组合,相互之间又如何产生作用,就是影响这个APP的关键点。细分的话我们可以将其分为类...【详细内容】
2021-09-17  像程序那样思考    Tags:Android架构   点击:(52)  评论:(0)  加入收藏
概述当Android应用程序需要访问设备上的敏感资源时,应用程序开发人员会使用权限模型。虽然该模型使用起来非常简单,但开发人员在使用权限时容易出错,从而导致安全漏洞。本文中,...【详细内容】
2021-09-07  SecTr安全团队    Tags:Android开发   点击:(66)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条