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

Android之Dalvik,android art 版本

為什么Android開發(fā)使用Java而不是C?

Android之Dalvik,android art 版本


文/小伊評(píng)科技結(jié)論:如果谷歌用C作為安卓開發(fā)語言,安卓早就掛了 。安卓系統(tǒng)卡頓的根源估計(jì)很多人都比較清楚了,最根本最核心的原因就是因?yàn)槠鋺?yīng)用層采用的是Java語言 。因?yàn)镴ava是一個(gè)跨平臺(tái)的語言,為了保證跨平臺(tái)的兼容性,它內(nèi)置的有Java虛擬機(jī),這個(gè)虛擬機(jī)的作用就是把應(yīng)用層的指令解釋為機(jī)器語言,然后推動(dòng)硬件去處理,使用者只需要根據(jù)平臺(tái)的不同配置相應(yīng)的JDK即可,這也就保證了Java的跨平臺(tái)特性 。
但是正所謂有得必有失,也正是由于虛擬機(jī)的存在,用戶的指令無法直接經(jīng)過編譯后成為機(jī)器碼,還需要經(jīng)過虛擬機(jī)的解釋才可以,這也就導(dǎo)致了其執(zhí)行效率是比較低的 。而反觀C,作為一個(gè)偏底層的開發(fā)語言,他的指令經(jīng)過編譯后可以直接轉(zhuǎn)化為機(jī)器碼和硬件進(jìn)行交互,執(zhí)行效率就要高很多了 。舉個(gè)形象一點(diǎn)的例子,方便大家理解:使用Java語言,就像是兩個(gè)語言不互通的人中間隔著一個(gè)翻譯官在交流,哪怕這個(gè)翻譯官的水平再高,翻譯的速度再快,他也不可能做到實(shí)時(shí)的翻譯,總需要一個(gè)處理的過程,交流成本就比較高,效率也比較低 。
而采用C語言則就像兩個(gè)語言相通的人在對(duì)話,一個(gè)人說的話可以直接被另外一個(gè)人聽懂,交流效率大大提升 。所以,雖然在安卓5.0時(shí)代,谷歌雖然給安卓系統(tǒng)做了一次大手術(shù),更換了一個(gè)全新的效率更高的ART虛擬機(jī),但是很可惜,就像上文所舉得例子那樣,谷歌只是換了一個(gè)翻譯能力更強(qiáng)的翻譯官而已,并沒有解決最本質(zhì)的問題 。
看到這,肯定會(huì)有人要問了,谷歌為什么要選擇Java而不去選擇執(zhí)行效率更高的C呢?難道谷歌的工程師不知道Java存在執(zhí)行效率低的問題么?當(dāng)然不是,谷歌這么做也是迫不得已 。谷歌的算盤 。在2005年,谷歌將安卓團(tuán)隊(duì)一行人收入囊中之后(也就是安卓之父安迪·魯賓團(tuán)隊(duì)),本來實(shí)際上也沒有打算完全開源,而是閉門造車了很長(zhǎng)時(shí)間,不過始終沒有什么大的進(jìn)展 。
然而在2007年1月,蘋果公司率先發(fā)布了人類歷史上第一款具備象征意義的新一代移動(dòng)操作系統(tǒng)——iPhone runs OS X(也就是后來的IOS),并且還基于這個(gè)系統(tǒng)發(fā)布了第一代iPhone 。這個(gè)時(shí)候,谷歌也嗅到了移動(dòng)互聯(lián)網(wǎng)時(shí)代即將來臨的氣息,但是谷歌同時(shí)也意識(shí)到,單靠自己是不足以和蘋果對(duì)抗的,因?yàn)楣雀璞旧碇皇且粋€(gè)互聯(lián)網(wǎng)企業(yè)并不具備像蘋果那么強(qiáng)大的硬件基因(蘋果本身就是一家硬件公司),他不具備制造硬件設(shè)備并且大規(guī)模向外推廣的能力(沒有渠道) 。
于是,谷歌想了一個(gè)方法——“開源共建”,把已經(jīng)開發(fā)的基本可用的安卓系統(tǒng)完全開源,供其他有興趣進(jìn)入智能手機(jī)市場(chǎng)的企業(yè)進(jìn)行二次開發(fā) 。這個(gè)操作也吸引了世界上絕大多數(shù)除了蘋果之外的硬件廠商,畢竟這可是當(dāng)時(shí)第一款完全開源的系統(tǒng),而且谷歌還邀請(qǐng)了眾多業(yè)界大拿站臺(tái)(開放手機(jī)聯(lián)盟) 。系統(tǒng)有了,那么怎么才能吸引開發(fā)者去開發(fā)安卓應(yīng)用呢?谷歌的辦法很簡(jiǎn)單——“盡可能地降低開發(fā)安卓應(yīng)用的門檻”,于是,谷歌最終選擇了Java作為安卓應(yīng)用層的開發(fā)語言,至于原因主要有兩個(gè):原因一:Java的從業(yè)者眾多是一片沃土 。
Java由于其具備良好的跨平臺(tái)特性,使得其一直以來都是開發(fā)行業(yè)最炙手可熱的一門語言之一,如下圖所示,這是目前開發(fā)語言的熱度排行榜,Java毫無疑問的排在第一位 。開發(fā)人數(shù)眾多,這也就意味著很多原本做Java的開發(fā)者可以幾乎毫不費(fèi)力地轉(zhuǎn)行成為安卓應(yīng)用的開發(fā)者,原本只能開發(fā)一些后臺(tái)程序的Java工程師,突然發(fā)現(xiàn)自己也可以利用自己的能力面向C端開發(fā)應(yīng)用程序掙錢了,這確實(shí)是一個(gè)很好的出路,因?yàn)檐浖こ處煴旧砭褪且粋€(gè)對(duì)新平臺(tái),新事物保持比較高關(guān)注度的群體 。

推薦閱讀