怎么用java開發安卓app c語言開發的app

為什么Android開發使用Java而不是C?

怎么用java開發安卓app c語言開發的app


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

推薦閱讀