Q1:能不能通俗易懂(大白話)介紹下編譯器是什么?
編譯器是人類和機器建立溝通的橋梁。將人類語言(高級語言)翻譯成機器看的懂的語言。而編譯器的執(zhí)行效率直接影響手機各種APP的相應速度。
就拿現在你能看懂這篇帖子中的文字,覺得很輕松,不就是個漢字嘛??墒菍τ谟嬎銠C來說,它實際上根本就不認識漢字,它只知道1和0這兩個數值,我們用高電壓表示1,低電壓表示0。也就是說計算機世界里面的語言是二進制的,不是1就是0
如果想要計算機做到能夠正確表達你現在寫的文字,那么這時候,編譯器就出現了。編譯器的作用就是將人類語言(高級語言)轉換為計算機可以理解的機器語言
Q2:方舟編譯器和普通編譯器有什么不同?
首先你要知道安卓程序是java寫的,java程序是將源碼代碼最終編譯成機器碼的過程。普通編譯器的這個過程是動態(tài)的,這也是為什么Android程序沒Iphone程序跑得快的根本原因。傳統(tǒng)的安卓系統(tǒng)編譯,很多程序往往需要一邊編譯,一邊執(zhí)行。方舟編譯器的不同之處是將動態(tài)編譯改進靜態(tài)編譯,可以做到全程執(zhí)行機器碼高效運行程序,大大縮短了程序響應時間。
舉個不太恰當的例子,就像是把50集電視劇改編成了1部電影,觀影的時間短了,但是該有的劇情一個都不會少。
Q3:方舟編譯器真的很牛么?
首先要肯定的是這個東西真的很牛X,牛X到什么程度呢?使用之后,安卓的體驗幾乎是可以達到IOS的水準,媲美 IOS指日可待。微博 @萬能的大熊 描述的就很形象:大概就是假如現在汽車分柴油發(fā)動機和汽油發(fā)動機,那么方舟編輯器的意義就是通過了它,發(fā)動機可以加汽油也可以加柴油?;蛘哒f,它讓發(fā)動機不挑油了。
Q4:方舟編譯器是如何做到提高程序響應速度的?
當前TOP應用95%都涉及了多種語言的開發(fā),比如C、C++、JAVA等,不同的語言代碼保持獨立,在運行環(huán)境進行協(xié)同,會產生系統(tǒng)性能的部分損耗。方舟編譯器可以做到將不同語言的代碼放到一套編譯好的執(zhí)行文件,并高效運行。這種編譯好的文件可以做成安裝包,當你在手機上下載安裝后,就不需要系統(tǒng)在出力氣去編譯了。
Q5:方舟編譯器發(fā)布了,為啥我的手機沒感覺比以前快呀?
有了方舟編譯器還遠遠不夠,還需要各大APP廠商去做適配,由于方舟編譯器還未開源,APP的適配工作還未正式開始,所以敬請期待吧!
Q6:現在有哪些應用支持方舟編譯器
小賤很遺憾的告訴你,目前暫時只有微博極速版支持。
Q7:使用方舟編譯器性能到底會提高多少?
根據華為實驗室測出的數據,EMUI 9.1中僅僅對系統(tǒng)組件System Server使用方舟編譯器進行優(yōu)化,就可以帶來24%的系統(tǒng)流暢度提升,系統(tǒng)響應性能提高44%,目前第三方有微博極速版進行了適配,根據華為給出的統(tǒng)計數據,操作流暢度可以提升60% 。在小賤看來,對于我們消費者而言,不用花一分錢,手機性能基本提升了一倍,簡直是又換了一個新手機的節(jié)奏!
Q8:方舟編譯器這么牛,難道就沒缺點?
有,根據編譯的原理,方舟編譯器在用戶安裝apk安裝包的時候,就已經將編譯工作做完了,這勢必會導致應用安裝包的體積增大,具體增大多少暫無法確定。不過正常情況下,APP安裝完成后,安裝包可以選擇刪除掉,所以最終占用手機空間也不會比原來大多少。而且現在手機內存越來越大,還怕這點安裝包不成?
Q9:方舟編譯器的適配計劃公布了嗎?
華為宣布將在2019年8月會在華為終端開發(fā)者大會上開源,在2019年11月會在綠盟開發(fā)者大會將完整的方舟編譯器代碼開源。
Q10:我的機型是否會支持這個黑科技?
不要擔心,如果僅僅想體驗編譯器帶來的APP急速打開的體驗的話,那就和機型、系統(tǒng)沒關系了。方舟編譯器可以針對系統(tǒng)方面(見Q7對系統(tǒng)組件System Server使用方舟編譯器進行優(yōu)化,就可以帶來24%的系統(tǒng)流暢度提升),也可以針對APP應用層面做優(yōu)化,手機上安裝了經過方舟編譯器適配后的APP也是可以收獲極致體驗的。
Q11:小賤對于方舟編譯器,你有什么看法?
這個問題??對于方舟的看法那必須是好,很好,非常好啊,小賤要用一腔熱血投身于菊廠,為繁榮而貢獻自己的綿薄之力(緊張~~)
咳咳,方舟再牛X后期也離不開各位第三方APP大哥大姐們的辛勤開發(fā)適配,在這里先說一聲謝謝!期待著體驗~
Q12:最后,小賤對方舟編譯器第三方APP適配有什么建議嗎?
后續(xù)經過編譯器編譯過的第三方應用,就可以上架華為應用市場了,這時候大家就可以進行體驗。建議將使用方舟編譯器的APP帶有一些特殊標識,一來可以提高品牌宣傳,二來最重要的是便于用戶分辨選擇。