-
1 # 電子維修
-
2 # 科技海膽頭
安卓系統採用分層架構,基於Linux平臺,用在ARM平臺上。
架構層次如下
其中使用者應用主要使用的是Java API。
而Java又是一款動態編譯的語言,因其使用虛擬機器的特徵而達到跨平臺,即“一次編譯,到處執行”。使用了Java API也同樣跑不出虛擬機器的手。
傳統安卓虛擬機器在安卓5.0以前用的是Dalvik虛擬機器,這種虛擬機器不會進行位元組碼與機器碼的轉化。所以每次執行時需要在轉換為機器碼。速度較慢。
位元組碼為Java程式編譯完成後的class檔案內容。ART安卓虛擬機器在安卓5.0以後,谷歌開發出了全新的ART虛擬機器,ART模式下,使用者安裝應用時會進行一次預編譯,將位元組碼轉換為機器碼,方便下次的執行。這樣可以減少每次編譯浪費的系統資源,提升速度。
方舟編譯模式在方舟編譯器的官網解釋中,是將應用轉化為靜態機器碼。
但目前來說,Java是一個動態編譯的語言,讓執行java的虛擬機器執行靜態機器碼,這是海膽頭無法理解的地方,可能是因為海膽頭的頭髮還健在無法理解吧。
-
3 # LeoGo科技
我們現在說一說,到底華為方舟編譯器,有什麼魔力,讓手機變的流暢呢?為了簡單的描述,方舟編譯器的能力,我們先從編譯器進行說起。
編譯器:顧名思義,就是將高階語言編譯成手機可執行的機器語言。手機執行的時候,只能識別1或者0,你給太多,它也不懂;所以,你要把APP進行編譯後,形成手機可看懂的機器語言,才能執行。
編譯器的作用是什麼?我們已經清楚了。那麼,方舟編譯器怎麼工作呢?
現在的安卓系統:下載了APP——開啟(編譯中,等一段時間)——執行方舟編譯器的安卓系統:下載APP——開啟——執行中間少了一個環節,沒有了編譯!因將編譯從你下載了APP之前,已經進行了編譯,等於說,我們開卷考試的時候,沒有複習的人,邊找答案邊寫卷子;你是之前就背好了,直接寫卷子!
這是其一,改變了編譯方式,讓手機變的流暢,另外一個方面是:記憶體回收機制。
現在的安卓系統:下達回收系統的命令——正在使用的APP暫停應用——回收方舟編譯器的安卓系統:下達回收系統的命令——回收中間又少了一個環節,沒有了正在使用的APP暫停應用這個環節,這就極大提升了手機的流暢度。這是其二,改變了回收機制,這兩個方面,讓方舟編譯器下的安卓系統更流暢!
-
4 # Geek視界
經過方舟編譯器編譯app,執行更加流暢,這個還要從什麼是編譯器,傳統編譯器與方舟編譯器的區別說起。
什麼是編譯器安卓系統使用JAVA高階需要編寫,需要轉換成01指令才能執行,而這個轉換就是編譯器的功能。
編譯器器是溝通軟體和硬體之間的橋樑,編譯器的編譯效率直接影響到APP的執行效率和系統執行流暢度。
傳統的編譯器目前,安卓系統的APP執行在“JAVA虛擬機器”基礎上,採用了邊解釋邊執行的方式,透過JAVA虛擬機器將程式碼解釋給機器能夠聽懂的語言,存在執行效率低的問題,記憶體回收機制採用了全域性回收的方式。因此,很多人覺得安卓系統比較“吃記憶體”。
方舟編譯器華為的方舟編譯器,實現了程式碼的靜態編譯,直接將JAVA語言編寫的程式碼編譯成可以在安卓系統上執行的APP,不需要經過JAVA虛擬機器中間層,實現了記憶體的隨時回收,理論上提升了系統執行的流程度。
打個比方上述的解釋可能有些枯燥,這裡打一個比方。我們到了其它國家,與當地人交流,可以請同聲傳譯(相當於JAVA虛擬機器),可能存在效率低的問題,而方舟編譯器相當於直接獲取了當地的語言能力,提升了溝通效率。
流暢度提升方舟編譯器隨著華為的EMUI9.1釋出,對系統元件 System Server 應用了方舟編譯器後,系統操作流暢度提升 24%,系統響應效能提升 44%,第三方APP經過方舟編譯器編譯後操作流暢度最高提升了60%
綜上所述,方舟編譯器優化了安卓應用程式的編譯流程,擺脫了“JAVA虛擬機器”中間層的限制,提升了APP的執行效率。
回覆列表
華為方舟編譯器是面向安卓APP開發者使用的一款編譯工具,現有的APP軟體只有使用了此款編譯器重新編譯後,才會提高軟體的流暢度,並不是說直接就可以讓手機變流暢,目前此款編譯器還沒有正式開源,真實效果如何還有待考證。
手機的流暢度與硬體效能、系統和軟體最佳化有關手機的流暢與否和硬體效能、系統和軟體最佳化程度都密切相關,其中處理器和記憶體的好壞決定著手機硬體效能的高低,而系統和軟體決定著怎樣發揮出最佳的硬體效能,所以軟硬結合才是手機流暢度的關鍵。
而方舟編譯器所起到的作用就是系統和軟體的最佳化。根據華為官方的解讀,方舟編譯器的主要作用就是可以改變現有安卓系統的編譯模式,由邊執行邊解釋的動態編譯模式,改變成為靜態編譯模式,APP應用在開發階段即實現了機器碼的全部編譯,我們下載到手機並安裝後,則會全程執行機器碼,增加執行效率,提高軟體的流暢度。
假如全部的安卓APP都採用了方舟編譯器重新編譯之後,安卓系統中的虛擬機器則不再起作用,這樣就進一步的降低了執行虛擬機器所帶來的硬體消耗,所以這也是對安卓系統的一種大幅度最佳化。
綜上所述,方舟編譯器並不能提高手機的硬體效能,想透過它來讓一些老款手機執行很流暢是不現實的,但對於一些主流配置的手機,手機的流暢度還是可以更上一層樓的。