回覆列表
  • 1 # 黑米桃

    華為開發並開源了方舟編譯器,使用這個編譯器出來的APP,可以顯著提升APP在安卓系統裡面的執行速度,讓手機反應更快。不過使用者的手機上並不需要預置方舟編譯器。

    華為在軟體方面的技術提升越來越明顯了,它對於安卓系統的速度提升起到了顯著的作用,華為對於安卓的最佳化也是系統DNA級別的,它對於安卓的原始碼都有重新編譯,並且被谷歌採用,提升了安卓的系統流暢度。而華為的方舟編譯器,更是從應用的程式碼編譯層面進行最佳化,讓APP在安卓系統裡執行更流暢,減少影響使用者體驗的卡頓感。

    目前來說,華為EMUI10已經使用了這個方舟編譯器,但是它並不是要求使用者手機上一定要使用這個編譯器,它只是讓開發者使用它來開發安卓應用的APK檔案的。使用方舟編譯器出來的APP,可以提升手機執行流暢度。減少應用開啟的卡頓感。

  • 2 # 三池秋水塵不染

    程式目前大多使用高階語言編寫如c++、java,機器無法識別高階語言,Android底層為linux核心,app使用java編寫。那麼這些高階語言編寫的程式要執行首先需要編譯為機器語言二進位制碼,這就是開發人員經常進行的編譯操作,java擁有虛擬機器,java程式碼編譯出來的位元組碼可以在java虛擬機器上執行,虛擬機器翻譯這些位元組碼後呼叫底層庫來實現我們想要的操作,而c系語言是直接編譯成了機器能識別的二進位制機器碼直接操作底層,所以效能上c系語言比java寫的程式會好一些,如果理解沒有錯誤的話華為方舟就是把java編譯成機器碼去執行,減少虛擬機器層的中間消耗,理解不對的話請大佬指正

  • 3 # 樂水觀瀾

    編譯器屬於開發工具鏈的一環,是在開發環境使用的,手機上不需要預置。

    但需要注意的是,雖然手機不需要預置方舟編譯器,但並不代表用方舟編譯器編譯的應用可以在任意安卓手機上執行。事實上方舟app執行是需要系統上有執行時環境支援的,華為只宣稱開源編譯器,但並沒有承諾開源執行時,所以如果其他廠商想跟進的話,還需要在吃透編譯器的基礎上,自己去搞定執行時,這個工作量也不小。

  • 4 # 密密麻麻剛剛結束

    如果執行環境是獨立的,普通使用者就不需要安裝編譯器,如果執行環境和編譯器捆綁在一起,就需要安裝。一般而言,普通使用者不需要編譯,直接用就行了,執行環境獨立的可能性更大。

  • 5 # 電子維修

    方舟編譯器是提供給軟體開發者使用的,和我們使用者沒有直接關係,只有等待第三方APP開發者使用方舟編譯器重新編譯後,我們再進行下載就可以提升APP的流暢度,並且只要是安卓機都可以進行體驗,這是一項非常利民的工程。

    華為方舟編譯器簡介

    方舟編譯器是華為歷時五年,經過數百人的專家團隊進行開發的一款編譯工具,主要針對安卓系統邊解釋邊執行的低效處理方式進行了改進。

    按照官方的說法,現有的安卓系統經過多次的技術改進,始終繞不過虛擬機器這道坎,虛擬機器中本身自帶了編譯器和直譯器兩個翻譯官,作用是將開發者使用的高階語言轉換成機器碼,當我們在開啟APP過程中,直譯器相當於實時翻譯,說一句翻譯一句,而編譯器則是結合上下內容翻譯一大段,這樣就使整個過程呈現出斷斷續續的狀態,卡頓也就來源於此。

    方舟編譯器的執行機制和以上不同,它徹底繞過了虛擬機器VM,使APP在開發階段就被提前翻譯成了機器碼並打包,我們再下載使用時無需再經過虛擬機器進行翻譯,而是全程執行機器程式碼,執行效率得到大幅提升。據官方介紹,在將華為EMUI系統元件進行重新編譯後就提升了24%的流暢度,響應速度提升了44%,而第三方軟體的流暢度可以提高60%。

    目前華為EMUI 9.1中的系統元件就是被方舟重新編譯過的,另外第三方軟體中也只有微博極速版是重新編譯後的。官方宣稱將會在今年11月份正式向開發者開源,未來不分品牌,只要是安卓機都可以體驗到方舟編譯器為我們帶來的流暢體驗。

  • 6 # LeoGo科技

    你肯定和我一樣,對於華為方舟編譯器的原理還是一知半解。甚至於,我們會有這樣的疑惑?到底方舟編譯器能不能運用在所有安卓手機上,比如MIUI系統,或者Flyme系統,是不是也能使用方舟編譯器呢?

    餘承東直接在微博上,釋出了一分鐘瞭解方舟編譯器影片,在裡面這樣解釋了方舟編譯器:

    編譯器:將一種語言(高階語言)編譯成可執行的機器碼!

    方舟編譯器:將在APK打包中,直接講java程式碼編譯成機器碼,這樣手機安裝後,可以直接執行!

    你是否已經發現:目前的安卓手機,在安裝執行APK後,它還需要經歷了將軟體經過直譯器進行解釋,並且透過JIT逐級編譯執行!而如今的方舟編譯器,卻可以直接在程式開發階段,直接靜態編譯,讓我們的APK直接打包後,就能執行了!所以,能夠讓華為的EMUI9.1更為流暢!

    現在我們瞭解兩個問題:

    中國產手機系統會經過方舟編譯器編譯嗎?雖然EMUI9.1對系統服務元件進行了編譯,系統流暢度和響應速度提升。但是,中國產的手機系統,是不會使用華為方舟編譯器來進行系統編譯,如果使用了方舟進行系統編譯,這似乎間接的說明了自己的系統不如華為系統。App編譯,APP是第三方透過方舟編譯器編譯,這需要等開源,我覺得軟體廠商可能會使用方舟編譯器編譯。即使中國產手機其他系統不進行方舟編譯器編譯,但是隻要APP進行了編譯,就是我們開啟應用軟體的速度會提升,這也是一個好事。

    不過,Flyme或者MIUI這樣的中國產系統是不會使用方舟編譯器的,這和它們發展相悖,畢竟它們可以自己研發這方面技術,使用華為,實際上有一種認輸的感覺。因此,它們應該,不,肯定不會使用!

  • 7 # Geek視界

        採用華為方舟編譯器編譯之後的APP,據說執行流暢度可以媲美IOS,改善了安卓系統記憶體回收機制,徹底告別了“卡頓”。

        使用者手機不需要安裝方舟編譯器,只需要軟體編寫者將APP原始碼透過方舟編譯器編譯形成APK檔案就行。那這個方舟編譯器到底是什麼黑科技呢,下文具體說一說。

        方舟編譯器

        先說一說什麼是編譯器,學過程式設計的人都知道,APP是透過高階語言比如JAVA編寫的,需要轉換成機器能夠認識的語言,而編譯器就擔任了這個角色,將高階程式語言寫的原始碼翻譯成機器認識的二進位制程式碼。

        安卓手機採用了JAVA虛擬機器的形式,所有的APP需要在虛擬機器上邊解釋,邊執行,所以系統資源佔用比較大,因此對於安卓手機來說,執行記憶體越大越好,目前8G的執行記憶體已經成為主流。

        華為的方舟編譯器,程式設計師完成APP原始碼編寫之後,經過方舟編譯器編譯,直接編譯為在安卓系統可以執行的程式碼,實現靜態編譯,不需要JAVA虛擬機器,同時改進了記憶體回收機制,隨時回收記憶體,惡如不是將垃圾堆在一起回收。採用華為的方舟編譯器,有可能告別安卓手機大記憶體的時代。

        方舟編譯器的優勢

        相比目前普遍在JAVA虛擬機器上執行APP,經過華為方舟編譯器編譯的應用有以下優勢:

        1、應用程式直接實現靜態編譯,不需要執行在JAVA虛擬機器上。

        2、優化了記憶體回收機制,隨時回收記憶體,而不是像JAVA虛擬機器一樣累積之後回收。

        3、方舟編譯器將開源,根據華為官方公佈的日程,將於2019年11月,實現方舟編譯器的開源,促進方舟編譯器更好的發展。

        總之,方舟編譯器剛剛推出不久,是否能夠得到大規模的推廣和普及,現在還很難說,畢竟應用開發商和手機廠商有自己的考慮。

  • 8 # 心帆遠影

    目前方舟只適配麒麟晶片,經方舟編譯的APP目前只支援華為手機,而且只支援經底層最佳化跳過安卓虛擬機器的EMUI。但方舟是開源的,所有的手機廠家都可以基於方舟適配自己的手機晶片。

    但這有個問題,安卓的相容性變差了,碎片化更加嚴重,因為即使都是高通晶片,小米OV適配的編譯器也許都不一樣,那麼以後就會出現小米OV不同版本的微信,嚴重割裂安卓市場。解決方法只有統一方舟編譯器,適配所有手機晶片。之所以谷歌不幹掉虛擬機器,也是因為直接編譯對作為一個整體的安卓一點好處沒有,只是對華為三星這些大廠商有好處。

  • 9 # 木石心志

    使用者的手機上並不需要預置方舟編譯器,因為這個方舟編譯器是給應用開發商用的,跟使用者唯一的聯絡就是,可以讓使用者的手機執行更加流暢,所以他並不會對使用者的使用習慣造成什麼影響,我們還是正常下載-安裝-使用各種APP即可。

    如果想要了解其中的原因,這就跟方舟編譯器的執行原理有很大的關係了,這裡我們簡單扼要的介紹一下:

    根據華為的介紹,方舟編譯器是華為投入數百人的專家團隊,歷時五年開發的一款編譯工具,主要針對安卓系統邊解釋邊執行的低效處理方式進行了最佳化,因為我們目前所使用的安卓系統,經過了這麼多次技術改進卻始終繞不過虛擬機器這道坎,虛擬機器中本身自帶了編譯器和直譯器,作用是將開發者使用的高階語言轉換成機器碼,當我們在使用APP的時候,編譯器通常是結合上下內容翻譯一大段,這樣就使整個過程呈現出斷斷續續的狀態,卡頓也就來源於此。

    針對這種情況,方舟編譯器對其執行邏輯進行了最佳化,它繞過了虛擬機器VM,使APP在開發階段就被提前翻譯成了機器碼並打包,我們再下載使用時無需再經過虛擬機器進行翻譯,而是全程執行機器程式碼,執行效率得到大幅提升,最終憑藉這款編譯器華為EMUI系統提升了24%的流暢度,響應速度提升了44%,而第三方軟體的流暢度可以提高60%。

    當然這樣解釋起來看似很簡單,但是在技術時間方面其實是非常複雜的,不過方舟編譯器也有一個問題,那就是目前只適配麒麟晶片,而且只支援經底層最佳化跳過安卓虛擬機器的EMUI,但畢竟這款編譯器是開源的,其他手機廠家都可以基於方舟適配自己的手機晶片,從使用者體驗上來講自然是好事,但小米、OV他們是否會低下頭使用華為推出的技術,未來又該如何向用戶解釋,這一點對於愛面子的中國產手機廠商來講也是挺為難的。

  • 10 # 科飛貓科技公社

    題主其實對華為方舟編譯器有些誤解。方舟編譯器能加快安卓應用的安裝、啟動和執行速度,就算手機沒有預置方舟編譯器,APP還是可以正常執行,不存在被編譯出來的APP。

    說明這個問題之前,我們先來看看究竟什麼是編譯器。相信懂點程式設計的人都知道,計算機語言和我們的言語不同,如果我們想寫出一段程式,必須用計算機能看懂的言語進行程式設計,然後計算機才會按照指令去執行,這個過程我們叫做編譯。這就好比我們要和外華人交流,是先把我們想要表達的意思翻譯成外語,然後再把外華人的意思翻譯成中文。這對於安卓系統是一個道理。與IOS系統不同,安卓系統是基於Java程式語言開發的。雖然Java在開發時更易開發,但手機不能直接識別。目前谷歌給出的最新解決方案是利用手機上的虛擬機器進行同步編譯,這樣無疑會增加手機的負擔,使得系統在執行過程中變卡頓,尤其是當後臺執行程式變多時。而華為方舟編譯器是業內第一款支援多語言同時編譯的編譯器,通俗易懂的說,華為方舟編譯器能直接將系統底層的Java語言翻譯成機器語言,並且該翻譯器是在系統程式碼上完成的,並不會加重對手機的負擔。目前絕大部分安卓應用在開發時都不會使用單一語言,舉個例子,某APP的程式碼使用了C語言和Java語言,當這個程式執行時,安卓系統要同時翻譯這兩種語言,然後再把兩者的結果相互混合。在有了方舟編譯器後,編譯器能同時翻譯兩種言語,以此來提高執行效率。

  • 11 # 另眼角度

    方舟編譯器開源的目的主要是培養系統生態,是為了在外國公司不提供系統並掐斷系統生態的現實需要情況下做出的生死存亡之舉。而且,該編譯器打破手機和PC之間的人為壟斷屏障,其程式編譯後兩者都可以執行。

    華為那麼多系統研發人員絕不可能只研發手機系統,並且按照最壞角度考慮,其編譯後的程式執行對現有程式是有一定相容,但防止以後的各種權益之爭,希望的是使用無爭論的方舟編譯器編譯程式,這其實在全方位保護各類個人或公司的網際網路著作智慧財產權。華為已經在這樣做了。

    對於華為這樣做,外國公司特別美國跨國公司是恨到底的,但又不得不合作,並經由財團控制美國政府對華為進行打壓。所以,華為正處於生死存亡的關頭之說並不是假的。

    其實到現在,中國政府完全要求美國政府提供所謂證據。其實美國政府得到了侵入華為伺服器獲得的程式碼但不符合已有編譯原理,打壓華為要扼制華為方舟編譯器系統開發,卻不能提供相關證據。現在華為堂堂正正推出方舟編譯器,提供美國政府獲取相關程式碼入侵華為伺服器資訊給一些西方國家。下一步,將在法庭訴訟中提供不利美國政府及美國跨國公司的更多證據。

  • 12 # 負1樓

    目前有很多人對方舟編譯器的理解上還存在誤區,認為編譯是運行了手機上的。主要是長久以來“方舟編譯器能大幅提升系統及App執行速度”這樣類似訊息很容易讓非技術領域的人們產生誤解,從字面意思看起來好像方舟編譯器是用在手機上的,因此,很多人都期待華為什麼時候釋出帶有方舟編譯器的手機。

    方舟編譯器不是給手機用的!!

    使用者不能在手機上使用方舟編譯器,該編譯器是軟體開發者用來編譯軟體用的,可供開發者在將高階語言編譯為機器碼,而手機能不能執行此類App,需要看硬體是否支援,而不是看是否預置了編譯器。

    為什麼透過方舟編譯器編譯的App執行速度會得到很大提升?

    編譯器的作用就是把高階語言編譯成能直接機器或虛擬機器執行的目的碼。

    首先來看看為什麼Android很慢,Android的App都是基於Java開發的,而且編輯後機器 不能直接“看懂”,機器能執行的都是0,1這樣的二進位制機器碼,所以需要一個“翻譯員”來把Java語言翻譯成機器能“看懂”的語言,而這個“翻譯員”就是Java虛擬機器,因為走了一條彎路,再加上Java虛擬機器本身也要佔用系統資源,所以Android的執行效率相比而言較低。

    而透過方舟編譯器編譯後的App,指令是機器能直接“看懂”的,中間不需要虛擬機器來“翻譯”,所以執行速度有顯著提升,理論上跟IOS相當。

    簡單的說,就是A只會中文,B只會英語,B要聽懂A的話中間就需要一個翻譯,這樣傳達訊息的效率就很低,現在A報了個補習班把英語學會了,就可以直接用英語和B對話了,這樣中間就省了一個環節,效率也就明顯提升了。

    所以,不要錯誤地把方舟編譯器理解成手機系統層面的工具。

    至於方舟編譯器編譯出來的App在其他手機執行快不快的問題,答案是肯定的,但前提條件是手機硬體和系統支不支援執行此類App。

  • 13 # 小強Talk

    根據華為官方介紹,透過方舟編譯器編譯最佳化過之後,系統流暢度會提升24%,系統響應速度會提升44%,第三方應用(比如:微博)的操作流暢度會提升60%。換句話說,方舟編譯器透過底層最佳化將安卓應用的各方面效能整體提升了一個檔次。

    對於普通使用者而言,我們的安卓手機可以隨時安裝經過方舟編譯器最佳化過的APP,同時不需要安裝方舟編譯器。

    什麼是方舟編譯器?

    關於方舟編譯器,大家如果沒有學習過程式設計,可能就不太瞭解了。那麼什麼是編譯器呢?

    執行在安卓手機上的APP都是使用Java語言編寫的,但是像Java這種高階程式語言,機器是不認識的;所以,需要透過Android內建的Java虛擬機器翻譯成機器語言,這樣機器就可以完美執行應用了。而編譯器就是這樣一個類似於“翻譯官”的角色,負責將Java程式碼翻譯成機器程式碼。

    安卓Java虛擬機器的編譯過程是動態的,程式的執行往往是一邊編譯一邊執行;所有這些過程對於系統資源的耗費非常大,所以我們可以看到安卓手機的執行記憶體這幾年增長非常快。

    而方舟編譯器則改變了Java虛擬機器的編譯方式,將動態編譯變為靜態編譯,可以做到全程只執行機器碼直接執行程式,不經過Java虛擬機器,這樣就大大縮短了程式的響應時間,同時還減少了編譯執行過程對於系統資源的耗費。

    方舟編譯器對於Android另一項巨大提升的方面就在於垃圾處理機制(GC)的不同。方舟編譯器首次將Java/C/C++等混合程式碼一次編譯成機器碼直接在手機上執行,徹底告別Java的JNI額外開銷,也徹底告別了虛擬機器GC記憶體回收帶來的應用程序掉線,使操作流暢度大幅提升。如果說目前最新的安卓系統是和諧號動車,那麼經方舟編譯的安卓系統便是高鐵,是“復興號”。

    方舟編譯器的優勢

    由於方舟編譯器是從底層優化了Android,所以經過方舟編譯器最佳化之後的系統和應用程式相比於Java虛擬機器,在效能方面都會有巨大的提升,具體來說,有以下幾個方面:

    大大簡化了Java虛擬機器編譯執行程式碼的步驟, 徹底告別了額外的JNI開銷方舟編譯器改變了Java虛擬的垃圾回收機制,替換了Android system-server的所有後臺服務,大幅度提升系統的效能方舟編譯器還可以完美編譯除Java之外的其他語言,適用性更加廣泛

    總的來說,方舟編譯器對於Android最直接的最佳化就在於它能夠完全脫離Java虛擬機器,從而天生就沒有Java虛擬機器所具有的那些缺陷。

  • 14 # 遊戲人超超

    採用華為方舟編譯器編譯之後的APP,據說執行流暢度可以媲美IOS,改善了安卓系統記憶體回收機制,徹底告別了“卡頓”。

    使用者手機不需要安裝方舟編譯器,只需要軟體編寫者將APP原始碼透過方舟編譯器編譯形成APK檔案就行。那這個方舟編譯器到底是什麼黑科技呢,下文具體說一說。

    方舟編譯器

    先說一說什麼是編譯器,學過程式設計的人都知道,APP是透過高階語言比如JAVA編寫的,需要轉換成機器能夠認識的語言,而編譯器就擔任了這個角色,將高階程式語言寫的原始碼翻譯成機器認識的二進位制程式碼。

    安卓手機採用了JAVA虛擬機器的形式,所有的APP需要在虛擬機器上邊解釋,邊執行,所以系統資源佔用比較大,因此對於安卓手機來說,執行記憶體越大越好,目前8G的執行記憶體已經成為主流。

    華為的方舟編譯器,程式設計師完成APP原始碼編寫之後,經過方舟編譯器編譯,直接編譯為在安卓系統可以執行的程式碼,實現靜態編譯,不需要JAVA虛擬機器,同時改進了記憶體回收機制,隨時回收記憶體,惡如不是將垃圾堆在一起回收。採用華為的方舟編譯器,有可能告別安卓手機大記憶體的時代。

    方舟編譯器的優勢

    相比目前普遍在JAVA虛擬機器上執行APP,經過華為方舟編譯器編譯的應用有以下優勢:

    1、應用程式直接實現靜態編譯,不需要執行在JAVA虛擬機器上。

    2、優化了記憶體回收機制,隨時回收記憶體,而不是像JAVA虛擬機器一樣累積之後回收。

    3、方舟編譯器將開源,根據華為官方公佈的日程,將於2019年11月,實現方舟編譯器的開源,促進方舟編譯器更好的發展。

    總之,方舟編譯器剛剛推出不久,是否能夠得到大規模的推廣和普及,現在還很難說,畢竟應用開發商和手機廠商有自己的考慮。

  • 中秋節和大豐收的關聯?
  • 家裡有老人,怎麼避免發生意外,萬一發生怎麼辦?