这是一篇纯个人观点分享文章,也是一篇用大白话分析“华为方舟编译器”的文章,这里面大多数技术环节都是经过我个人理解“翻译”过来的,或许会有描述错误的地方,但大框架是很值得大家参考的,看完之后,你一定能搞清楚,这是一个什么东西。
华为方舟编译器,我们先把这个词分开来讲:
华为 - 这个东西是华为研发出来的
方舟 - 是这个编译器的名字
编译器 - 简单理解就是一个模块化的工具,这种东西是给软件开发人员用的,它可以让开发人员不必写复杂的电脑语言(电脑只认识0和1),像JAVA、php、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碎片化的有效途径;对我个人来说,这只是一篇写给瓦力评测读者的小小分享,喜欢就收藏分享,不喜欢就关闭,有骂来骂去的时间不如去楼下菜市场溜达一圈,说不定还能捡几块钱。