在經(jīng)歷美國(guó)全力打壓和封鎖近半年之后,華為反而爆發(fā)出了讓所有人矚目的實(shí)力。特別是近來(lái),華為接連發(fā)布的經(jīng)過(guò)十年布局研發(fā)的方舟編譯器和鴻蒙操作系統(tǒng),再次讓外界見識(shí)到了華為真正的實(shí)力。雖然作為未來(lái)華為萬(wàn)物互聯(lián)的基礎(chǔ),鴻蒙操作系統(tǒng)顯然更重要,但畢竟鴻蒙系統(tǒng)還需要一段時(shí)間進(jìn)行生態(tài)布局,和技術(shù)迭代來(lái)完善和適配。而方舟編譯器作為華為軟件生態(tài)的重要一環(huán),在當(dāng)下就顯得非常重要了。
而方舟編譯器在發(fā)布之時(shí),就宣稱一旦把安卓系統(tǒng)和應(yīng)用重新用方舟編譯器編譯之后,安卓系統(tǒng)的運(yùn)行速度將大幅提升,甚至將可以媲美iOS。特別是華為還宣布方舟編譯器將完全開源。如果方舟編譯器真能做到宣傳中的效果,毫無(wú)疑問(wèn),一旦方舟開源,必將有大批的開發(fā)者匯聚于此,使用方舟重新編譯自己的應(yīng)用。而方舟編譯過(guò)的程序,將可以在鴻蒙上完美適配。因此只要方舟編譯器表現(xiàn)良好,那就會(huì)變成鴻蒙系統(tǒng)生態(tài)的吸粉神器。
那么方舟編譯器能否做到宣稱的徹底改良Android呢。首先我們先來(lái)看一下到底有哪些因素,導(dǎo)致Android天生就跑不過(guò)iOS。首先一點(diǎn),其實(shí)Android就是用Java編寫的一個(gè)疊加在底層Linux內(nèi)核之上的運(yùn)行在用戶空間的大型用戶程序。并且Android把底層Linux系統(tǒng)的各種功能都包裝成了各種各樣的服務(wù),而各種應(yīng)用程序就可以通過(guò)調(diào)用Android提供的這些服務(wù)調(diào)用底層linux的各種功能,從而實(shí)現(xiàn)用戶的各種需求,如打游戲,看視頻等等。
也因此Android天生就繼承了java的各種優(yōu)缺點(diǎn)。優(yōu)點(diǎn)是Java的兼容性,可以全平臺(tái)使用。但缺點(diǎn)也因此而來(lái),正是因?yàn)镴ava為了能全平臺(tái)使用,因此使用了虛擬機(jī)概念來(lái)屏蔽底層硬件的區(qū)別。因?yàn)锳ndroid也是跑在虛擬機(jī)上的。雖然谷歌為了提高性能,在Android迭代時(shí),更換了不同版本的虛擬機(jī),但畢竟虛擬機(jī)還在。這就意味著,Android的應(yīng)用程序在運(yùn)行時(shí),必須要先經(jīng)過(guò)虛擬機(jī)的解釋,才能讓底層的Linux再執(zhí)行。這就大大拖累了Android的運(yùn)行速度。
而且由于底層Linux系統(tǒng)是用C語(yǔ)言編寫的,而Android及其應(yīng)用都是用Java編寫的。因此當(dāng)用戶使用應(yīng)用程序想使用一個(gè)功能,那么就必須從Android系統(tǒng)的Java調(diào)用這個(gè)功能的接口轉(zhuǎn)換成底層Linux系統(tǒng)的C語(yǔ)言調(diào)用接口。而這有需要JNI來(lái)完成從java接口到C接口的轉(zhuǎn)換,又要拖慢一點(diǎn)時(shí)間。而且對(duì)于Android來(lái)說(shuō),如果內(nèi)存占用過(guò)高(如打開的應(yīng)用太多)時(shí),會(huì)執(zhí)行一個(gè)叫做GC的內(nèi)存回收工具,進(jìn)行內(nèi)存碎片回收。但是要命的是,GC在執(zhí)行時(shí)會(huì)停止所有的程序運(yùn)行,直到清理完畢。這也是為何Android手機(jī)為什么一直在大幅增加內(nèi)存容量,就是為了盡量減少GC的運(yùn)行次數(shù)。
而華為的方舟編譯器就一舉解決了這幾個(gè)困擾業(yè)界多年的難題。通過(guò)將java/c/c++代碼統(tǒng)一編譯,徹底解決了以往安卓必須依賴的JNI和虛擬機(jī)。而又通過(guò)引用計(jì)數(shù)法進(jìn)行內(nèi)存實(shí)時(shí)回收,避免了GC的系統(tǒng)卡頓。因此方舟編譯器才敢宣稱能大幅提升Android及其應(yīng)用的運(yùn)行速度。
說(shuō)來(lái)簡(jiǎn)單,但要知道方舟編譯器做到了業(yè)界自Java 1995年問(wèn)世以來(lái),一直依賴虛擬機(jī),幾十年未變的框架。也是第一個(gè)真正能做到Java/C/C++代碼能夠直接混合成機(jī)器碼的編譯器。可以說(shuō),有了方舟編譯器,華為才真正的有可能構(gòu)建起自己的生態(tài)。現(xiàn)在廣大程序員,都在期盼著華為盡早開放方舟編譯器的源碼。正如Linux之父,程序員之神Linus說(shuō)的:Talk is cheap, Show me the code。
-
華為
+關(guān)注
關(guān)注
216文章
34519瀏覽量
252514 -
編譯器
+關(guān)注
關(guān)注
1文章
1640瀏覽量
49222 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2386瀏覽量
42961 -
方舟編譯器
+關(guān)注
關(guān)注
0文章
60瀏覽量
229
原文標(biāo)題:國(guó)網(wǎng)節(jié)能公司面向國(guó)家電網(wǎng)系統(tǒng)內(nèi)外公開招聘65人!
文章出處:【微信號(hào):bjx-zndw,微信公眾號(hào):北極星智能電網(wǎng)在線】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論