色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

為啥感覺沒有純Linux的手機系統呢?不用虛擬機,硬件利用率百分百?

阮建安2年前14瀏覽0評論

純Linux而不需要虛擬機的手機系統當然有,火狐的FirefoxOS、UbuntuTouch、三星Tizen操作系統、以及曾經大名鼎鼎的Megoo都是沒有虛擬機的。

Android使用虛擬機是因為采用了Java作為核心開發語言,Java足夠成熟、生態健全、開發者眾多,這是Android早期發展迅速的主要原因,當然Android的高速發展也給了Java第二春。Oracle公司現在又在作死,各種用Java的問題刁難Google,Google推出Flutter框架、扶持Kotlin,以及打造Fuchsia操作系統,就是為了能夠找到取代Java甚至直接取代Android的解決方案。

值得提一下的是盡管Megoo系統隨著諾基亞的失敗而消失了,不過Megoo系統的很多理念到現在還被iOS和Android系統借鑒,現在智能機的主要手勢操作基本上全是借鑒Megoo操作系統的設計理念。

Android為什么要用虛擬機

Android誕生之初并不是師出名門,后來被Google收購也算是傍上了大款,Android使用虛擬機的主要原因還是因為Java,因為Java有足夠好的凱源生態,更重要的是Java有成熟的開發者生態,最最重要的當然還是Java是第一大編程語言、背后有最多的開發者。

Android誕生之初,跟Java普遍使用JVM家在字節碼文件(

.class

),Android的虛擬機是Dalvik虛擬機,每次運行程序,Dalvik負責加載dex/odex文件然后解析成機器碼讓Android系統調用。

2010年5月20日,Google正式向外界發布了版本代號為Froyo凍酸奶的Android2.2版本,這是Android第一個成熟版本,Google在這個版本的虛擬中加入了即時編譯、也就是我們通常所說的Just-In-TimeCompiler(JIT)編譯器,Dalvik使用JIT進行編譯,JIT可以對經常使用的dex/odex進行編譯和優化,將其翻譯成精簡的NativeCode執行,引入JIT之后Dalvik性能提升了3到6倍。

2013年10月31日,Google正式對外發布代號為Kitkat的Android4.4,Google為了改善Android糟糕的用戶體驗,開發了全新的虛擬機運行環境,也就是AndroidRuntime(ART),在這個版本中Google還有了新的編譯策略Aheadoftime(AOT),不過這時候ART和Dalvik共存,直到2014年10月16日代號為Lollipop棒棒糖的Android5.0版本,ART徹底取代Dalvik,AOT成為了唯一的編譯模式,AOT相對于JIT的優點是,JIT是運行時動態編譯,每次運行程序的時候都要編譯,AOT則是靜態編譯,應用在安裝的時候就已經完成了編譯,程序運行的時候不用重新編譯,這才是真正的本地應用概念。

ART還對垃圾回收機制進行了改革,ART只有一次垃圾回收暫停、而Dalvik有兩次,ART在垃圾回收保持暫停的時候并行處理,ART還優化了垃圾回收的效率,讓系統能夠及時垃圾回收、及時減少后臺內存使用和碎片化問題。

不過在Android7.0之后JIT又重新回歸了,AOT/JIT混合編譯模式又重新回歸了,混合編譯當然有優點,不過還是很難解決Android存在的各種問題,畢竟Android的問題一大部分是Java自身的問題,除此之外Android生態本身也比較混亂,這也是Android體驗差的重要原因之一。