日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

安卓為什么一定要java虛擬機,是不是意味著底層還是安卓呢

看到這里 , 肯定有人會問 , 為什么Google選擇了執(zhí)行效率更高的Java而不是C?如果谷歌用C作為Android開發(fā)語言 , Android早就死了 。EMUI9.1發(fā)布的時候 , 華為就已經(jīng)開始做脫離安卓虛擬機的事情了 。如果真如余承東所說 , 新系統(tǒng)不僅能接入手機和電腦的智能設(shè)備 , 還能完美支持所有安卓應(yīng)用和Web程序 , 那應(yīng)該是深度使用了于方舟編譯器這樣的技術(shù) , 擺脫了安卓虛擬機 。
為什么安卓不放棄虛擬機機制 , 轉(zhuǎn)變更高效的方式 , 例如ios一樣?
那不就是Linux手機?很多廠商做過 , 不了了之 。安卓要不是傍上JAVA , 也不會有如今的局面 。JAVA開發(fā)者比C/C多太多了 。WP就死在這上面 。IOS要不是有硬件支撐 , 也早死了 。安卓起初的時候是要做一套跨平臺的移動系統(tǒng) , 事實上以前也出現(xiàn)過X86和MIPS的手機 , 只不過后來被ARM一統(tǒng)天下 , 才會讓人覺得這個JVM是個累贅 。
為什么Android不可以繞開虛擬機直接運行?
當(dāng)初設(shè)計android的時候 , 設(shè)計人員只是軟件工程師 , 無法針對某個CPU(目前有的CPU框架intel , arm , mips , rsicv等)去開發(fā) 。最好的是 , 我針對所有CPU都支持 。于是 , 安卓發(fā)現(xiàn)了java , java設(shè)計理念是啥?跨平臺 , 是指java語言編寫的程序 , 一次編譯后 , 可以在多個系統(tǒng)平臺上運行 。怎么實現(xiàn)一次編譯 , 多平臺(cpu)運行因為機器針對不同機器語言 , 有不同執(zhí)行邏輯 。
就好比二進(jìn)制000100 , 在arm里面是調(diào)用加法器 , 而riscv是調(diào)用乘法器一樣 。所以 , 需要給這些不同平臺請個翻譯 。而虛擬機就是起到翻譯作用 。這樣雖然增加了消耗(例如執(zhí)行同樣代碼 , 時間消耗上 , c明顯由于java) , 但是可以某種意義上 , 把軟件 , 物理硬件分開了 。軟件重點設(shè)計自己app , 而硬件不斷增加CPU性能 。
華為新系統(tǒng)兼容安卓 , 是不是意味著底層還是安卓呢?
其實 , 安卓就是基于Linux內(nèi)核的操作系統(tǒng) , 它和Linux是有很大區(qū)別的 , 安卓是在Linux內(nèi)核的基礎(chǔ)上添加了自由特性的驅(qū)動程序 , 而后自成一派 , 就是我們使用的安卓系統(tǒng) 。而華為新系統(tǒng)兼容安卓 , 并不依賴安卓的底層 , 它所依賴的也只是Linux內(nèi)核 。而Linux是免費的誰都可以用 , 但對于企業(yè)是要授權(quán)的 。所以 , 根據(jù)余承東所說的 , 新系統(tǒng)可以完美兼容安卓等特性 , 應(yīng)該還是Linux內(nèi)核 , 嚴(yán)格來說 , 華為系統(tǒng)應(yīng)該也不能完全算是國產(chǎn) 。
但是 , 新系統(tǒng)是可以和安卓區(qū)別開來 , 不受它的制約 。其實在EMUI9.1發(fā)布時候 , 華為已經(jīng)開始做脫離安卓虛擬機的事情了 。這就是華為推出的黑科技方舟編譯器 。安卓應(yīng)用運行在虛擬機上 , 采用的是邊解釋 , 邊運行的方式 , 所以應(yīng)用程序在運行時會存在效率低的問題 , 而方舟編譯器的做法是 , 直接將編譯放到了開發(fā)端 , 開發(fā)者只需在程序開發(fā)完成后 , 將代碼編譯為機器語言然后打包 , 用戶安裝后即可直接運行 。
省去了在虛擬機上編譯解釋的步驟 , 從而提升的運行效率 。很多人擔(dān)心新系統(tǒng)上軟件生態(tài)的問題 , 我們可以結(jié)合方舟編譯器和最近余承東所說的內(nèi)容來一起看 。方舟編譯器發(fā)布時候曾提示軟件開發(fā)商盡快使用 , 從而提升性能 。對于軟件開發(fā)商也許并不需要再開發(fā)一套新的軟件 , 只需要將原有的安卓程序重新編譯 , 就可以在方舟編譯器上運行 。

推薦閱讀