回覆列表
  • 1 # IT人劉俊明

    我做移動互聯開發多年,也做過不少大大小小的Android專案,所以我來回答一下這個問題。

    眾所周知,Google選擇了Java語言作為Android平臺的開發語言,而且並沒有使用Oracle公司的JVM,而是自己寫了獨立的編譯器(DVM)。而且DVM與JVM的區別還是比較明顯的,JVM是基於棧的,而DVM是基於暫存器的,所以從速度上來說,DVM理論上要更快一些。另外,JVM執行的是class檔案,而DVM執行的是dex檔案,這就說明JVM與DVM在執行的位元組碼方面也是不同的。

    從這些區別上來看,Google對Java的改造還是比較大的,只是在語法上保留了Java語言的規則。在我看來,Google為安卓平臺選擇Java語言有以下幾個方面的原因:

    第一,Java語言有較為廣泛的程式設計師基礎。由於目前Java語言的應用領域十分廣泛,所以使用Java語言能迅速建立龐大的開發群體。

    第二,Java語言的生態比較健全。Android平臺的功能越來越強大,這就需要有一個能與之匹配的程式語言,而程式語言自身的生態就顯得比較重要的,而Java語言的生態環境是比較健全的。

    目前我們在實際的開發過程中發現,用Java語言的Android平臺在某些效能指標上,明顯要優於iOS平臺。比如大列表的裝載問題,Android平臺是沒有問題的,但是同樣的操作在iOS系統下就會出現崩潰的問題。

    如果有軟體開發方面的問題,或者是考研方面的問題,也可以諮詢我。

  • 2 # 波波桑

    首先安卓是可以使用C語言寫程式碼的

    題主應該是接觸安卓比較少,其實安卓本身底層是一個Linux的系統,既然是Linux系統,那麼必然可以使用Linux上面的特性了;不知道有沒有網友用過第一代安卓手機,我的第一個安卓手機是中興N760,很古老的手機了,12年的時候,在學校裡面的營業廳,充700元話費,送一臺手機,當時的這個手機,上面有一個terminal,你沒聽錯,這個手機真的搭載了一個terminal,在這個terminal裡面,你可以屬於Linux常用的命令。就是下面這個貨。

    既然安卓系統的底層是一個Linux系統,如何才能用C/C++程式設計放到上面跑呢?安卓的編譯器裡面,有一個叫做NDK的東西,此神器就是解決如何用c/c++開發的問題,有興趣的可以瞭解一下。

    順便說一下,一般來說對於CPU密集型的程式,追求效率,都基本上會選擇用C/C++開發,然後ndk編譯,比如輸入法,需要再本地做音字轉換,效率要求極高,所以用c語言研發引擎部分。

  • 3 # 正觀聽

    這個問題本身就是錯的,實際上,android系統底層(包括但不限於核心)就是由c/c++寫的。即使是應用,對於部分對執行效率要求比較高的實現也會使用c/c++。

  • 4 # 孟孟1938

    核心是linux,就是c啊,為什麼要搞虛擬機器為什麼要搞系統,就好比搞基礎建設啊,修高速,建鐵路,架電網,通網路,為什麼?有了這些基礎才能跑汽車,才能網購啊,搞開發一樣,java好比汽車,c好比牛車,有高速肯定汽車好,泥窪路肯定牛車好啊

  • 5 # 老薑看老薑

    首先要說的是Android 是可以用c的,因為有ndk的存在 你可以用c寫介面。但基本沒有人這麼做。因為Java說實話比c的上手難度要低的多。

  • 中秋節和大豐收的關聯?
  • 魔獸世界懷舊服:金團團長開打前先拍裝備,這是對還是錯?