眾所周知,國行版P30系列手機(jī)發(fā)布后,華為還帶來了重量級工具--方舟編譯器。 按照華為的說法,通過這個編譯器,系統(tǒng)操作流暢度將提升24%,而系統(tǒng)響應(yīng)速度將提升44%,至于第三方應(yīng)用重新編譯后流暢度可提升60%!因為是開源的,應(yīng)該是沒有吹牛,是真實的這么厲害。 但自方舟編譯器之后,眾多的網(wǎng)友就開始幫華為吹牛了,說這是華為分割安卓生態(tài)的開始,甚至將其提升到了華為自研操作系統(tǒng)的高度,說就是自研系統(tǒng)。 但事實上這到底是什么東西,大家又真的理解么?一個編譯器就成了自研操作系統(tǒng)?是不是有點(diǎn)吹過了點(diǎn)? 所謂的編譯器是指將程序(APP)語言翻譯成機(jī)器語言的東西,簡單的來講,安卓系統(tǒng)中的APP基本上是JAVA寫的,JAVA語言機(jī)器不懂,必然要有編譯器來幫機(jī)器翻譯下。 安卓系統(tǒng)中并不是沒有這樣的編譯器,在安卓5.0之前用的是這個編譯器-- Dalvik ,確實是邊解釋邊執(zhí)行,效率低。于是在安卓5.0的時候,谷歌拋棄掉了它,換上了 Art。 Art是在APP初次安裝時,就將APP解釋成機(jī)器碼,這樣速度就快了,但壞處是安裝時速度慢,要等很久,因為是邊安裝邊解釋。于是到安卓7.0時,谷歌又加入了JIT,這個是及時編譯。 所以現(xiàn)在安卓系統(tǒng)中是Art、Jit同時時存在,即初次安裝APP時,會有部分核心代碼直接編譯成機(jī)器碼存放。還有沒有編譯的部分會在執(zhí)行時用Jit去執(zhí)行編譯,這是谷歌在權(quán)衡了安裝時間、空間、執(zhí)行速度、效率之后做的取舍,算不上最佳。 接下來說說方舟編譯器了,它就是上文所說的Art、Jit這些編譯器類似的東西,主要作用就是把APP開發(fā)時就直接編譯器成機(jī)器碼了,這樣當(dāng)APP安裝到系統(tǒng)中,就不需要通過安卓系統(tǒng)中的編譯器去解釋,這樣自然效率更高一點(diǎn)。 我這樣一解釋,相信大家就明白了,這是一個在APP開發(fā)時就將Java等語言直接編譯成機(jī)器語言的工具,這和所謂的自研操作系統(tǒng)完全不是一回事,不知道為何大家就覺得這是華為的自研系統(tǒng)了。 當(dāng)然,如果華為真要自研系統(tǒng),最終的可能是將這個編譯器變成自研系統(tǒng)的開發(fā)工具,這樣通過這個工具開發(fā)出來的APP,就是在機(jī)器碼的形式存在。 但那也是以后的事情,先要等自研系統(tǒng)出來,同時還要有APP廠商愿意用這個編譯器來基于自研系統(tǒng)開發(fā)APP,路還很漫長。 |
|