Android是一種基于Linux的自由及開(kāi)放源代碼的移動(dòng)操作系統(tǒng),而Linux是C與C++的天下,所以Android的底層是支持C/C++的。所以Android平臺(tái)上開(kāi)發(fā)所采用的編程語(yǔ)言主要兩種方式:
1、基于ADK的Java編程
目前Android APP開(kāi)發(fā)主流語(yǔ)言就是Java語(yǔ)言,Java語(yǔ)言最大的特性就是提高了軟件的交互可能性,可以說(shuō)安卓手機(jī)幾乎所有應(yīng)用程序都是利用Java語(yǔ)言來(lái)進(jìn)行編寫(xiě)的。使用Java語(yǔ)言開(kāi)發(fā)的軟件的程序庫(kù)、數(shù)據(jù)庫(kù)、運(yùn)行庫(kù)都是Android手機(jī)軟件的一大特點(diǎn)。Java語(yǔ)言自身的優(yōu)點(diǎn)也有很多,所以安卓應(yīng)用軟件的開(kāi)發(fā)應(yīng)用到了Java的核心類的知識(shí)量,這也讓使用Java語(yǔ)言開(kāi)發(fā)的安卓軟件具備優(yōu)勢(shì)。
雖然使用Java開(kāi)發(fā)APP很方便,但也容易拉低APP質(zhì)量。雖說(shuō)安卓系統(tǒng)利用虛擬機(jī)運(yùn)行Java,比非智能平臺(tái)的JVM效率高很多,但始終沒(méi)法和NDK相比,所以安卓的APP速度慢,很大程度上是Java的原因。Java自帶內(nèi)存回收機(jī)制,所以開(kāi)發(fā)者使用Java開(kāi)發(fā)APP時(shí)往往不注意控制內(nèi)存泄漏(特別是一些小軟件),當(dāng)其進(jìn)程超過(guò)虛擬機(jī)分配的閥值后,就會(huì)被系統(tǒng)殺掉釋放內(nèi)存,這樣一來(lái)就有可能造成APP的崩潰、系統(tǒng)的假死等情況。
2、基于NDK的C編程
C語(yǔ)言是一種結(jié)構(gòu)化語(yǔ)言。它層次清晰,便于按模塊化方法安排程序,易于調(diào)試和保護(hù)。C語(yǔ)言的體現(xiàn)才能和處理才能極強(qiáng)。它不只具有豐盛的運(yùn)算符和數(shù)據(jù)類型,便于完成各類雜亂的數(shù)據(jù)結(jié)構(gòu)。C語(yǔ)言是當(dāng)今最盛行的程序設(shè)計(jì)語(yǔ)言之一,它的功用豐盛、表達(dá)力強(qiáng)、運(yùn)用活絡(luò)便當(dāng)、運(yùn)用面廣、政策程序高、可植入性好,既有高級(jí)語(yǔ)言的特征,又有低級(jí)語(yǔ)言的許多特征,適宜作為系統(tǒng)描繪語(yǔ)言,既能夠用來(lái)編寫(xiě)系統(tǒng)軟件,也能夠用來(lái)編寫(xiě)運(yùn)用軟件。
除了Java語(yǔ)言和C語(yǔ)言外,其實(shí)Google于2015年推出全新的Android開(kāi)發(fā)語(yǔ)言Sky,目的是為了提高APP運(yùn)行速度和響應(yīng)速度。Sky并不依賴于平臺(tái),其代碼可以運(yùn)行再Android、iOS,以及任何集成了Dart虛擬機(jī)的平臺(tái)上。
當(dāng)然Sky語(yǔ)言究竟能否取代Java語(yǔ)言,成為Android應(yīng)用開(kāi)發(fā)主流語(yǔ)言還要拭目以待。目前Android開(kāi)發(fā)主流的還是Java和C語(yǔ)言,如果你有Java或者C語(yǔ)言的基礎(chǔ),那就可以進(jìn)行Android APP的開(kāi)發(fā)了。