支持安卓應(yīng)用開發(fā)的那些頂級編程語言
譯文【51CTO.com快譯】開始學(xué)習(xí)一種復(fù)雜的編程語言往往會讓人望而生畏,因為在大多數(shù)情況下,您會不知道從何處開始學(xué)習(xí),而且在開始之前,您可能已經(jīng)對該語言滿腹懷疑了。因此,事先了解不同類型的語言,會讓您清楚地知道在面對不同需求環(huán)境和不同類型的應(yīng)用時,應(yīng)當(dāng)如何做出明智的選擇。
眾所周知,Java是Android的官方編程語言,但是其實我們完全可以用其他的語言,來構(gòu)建Android應(yīng)用。由于各種Android編程語言之間可能存在著復(fù)雜或細(xì)微的差別,因此我們在做選擇之前,先來了解一下各自的優(yōu)缺點吧。
以下是目前常用的Android開發(fā)編程語言:
- Java - Java是Android開發(fā)的官方語言,Android Studio能夠支持它。然而,它學(xué)習(xí)曲線卻比較“陡峭”。
- Kotlin - Kotlin是最近被推出的、僅次于Java的Android開發(fā)語言。它雖然與Java類似,但是在很多方面具有清晰的“思路”。
- C/C++ - Android Studio通過使用Java NDK來支持C++。這允許產(chǎn)生本地原生編碼,這對于游戲之類的應(yīng)用來說會更為方便。不過C++比較復(fù)雜。
- C# - 相對于C或C++容易混淆代碼來說,C#是一種新的替代方式。它能夠被Unity和Xamarin之類的工具所方便支持,因此更適合于游戲、以及跨平臺的開發(fā)。
- BASIC – 您可以通過Anywhere Software的B4S IDE來支持BASIC。此工具雖然簡單且強大,但比較小眾。
- Corona/LUA – 是另一個基于LUA的跨平臺工具,它大幅簡化了應(yīng)用構(gòu)建的過程,也允許您去調(diào)用本地原生庫。
- PhoneGap(HTML、CSS、JavaScript) - 如果您已經(jīng)知道了如何構(gòu)建交互式頁面的話,那么您可以將該知識運用到PhoneGap上,來構(gòu)建更為基礎(chǔ)的跨平臺應(yīng)用。
開發(fā)Android應(yīng)用的最佳方式是直接下載Android Studio。這是一款具有IDE和集成開發(fā)環(huán)境的軟件。它提供帶有Android SDK包的一組工具,以滿足Android的開發(fā)。它能夠一站式地提供各種應(yīng)用啟動和運行所需的環(huán)境。
Google提供了其官方教程與文檔,您也可以在那里找到更多的庫和免費的代碼,以增強您的應(yīng)用效果。視覺設(shè)計和各種提示之類的功能,能夠使得程序進(jìn)程更為流暢。同時就像其他云存儲空間那樣,一些更為先進(jìn)且強大功能還會被持續(xù)添加進(jìn)去。
1.Java
對于世界各地的移動應(yīng)用開發(fā)人員來說,首選的、也是最受歡迎的編程語言莫過于Java。它是Android應(yīng)用開發(fā)的官方語言,Google不但能完全支持它,而且Play Store中的大多數(shù)應(yīng)用也都是用它來構(gòu)建的。Java由Sun公司于1995年所開發(fā)。Android設(shè)備上的虛擬機能夠運行并解釋其代碼。
不幸的是,Java對于初學(xué)者來說有點復(fù)雜,這也是Android應(yīng)用開發(fā)人員所面臨的最大障礙。由于是一種面向?qū)ο蟮木幊陶Z言,因此它的構(gòu)造函數(shù)、空指針異常、檢查異常等會顯得不易閱讀。而且它經(jīng)常使用大量的代碼來表示一些簡單的對象。
如果添加了Java SDK,初學(xué)者就更難分辨出哪些部分屬于Java、哪些屬于Android。如果使用Java進(jìn)行開發(fā),您還需要用到Gradle之類基于JVM的構(gòu)建工具,并需要理解Android Manifest、以及標(biāo)記語言XML。當(dāng)然,Java有著廣泛的交流社區(qū)。
所以,Java會是您學(xué)習(xí)編程的最好語言嗎?答案是肯定的,特別是如果您想擁有完整的Android開發(fā)體驗的話。如果擔(dān)心面對復(fù)雜的代碼,您可以盡量使用設(shè)計界面、并參考各種幫助文檔。但是作為初學(xué)者,如果您期待盡快做出有價值的產(chǎn)品的話,我建議您選擇其他簡單的語言,等積累了一定的經(jīng)驗后,再回頭來接觸Java。
2.Kotlin
Kotlin是排在第二位的Android開發(fā)官方語言。有人猜測其逐漸升高的熱度,會成為下一個Swift。
和Java一樣,Kotlin也運行在Java虛擬機之上。它與Java具有完全的互操作性,不會因為文件大小的增加,而造成障礙。
與Java的不同之處在于:Kotlin較少地需要“boilerplate(前端模板)”代碼,這使得它更簡化且易于閱讀。它消減了空指針異常之類的錯誤,和句末的分號。
Kotlin對于初學(xué)者來說雖然是一個更為簡單的起點,但是您目前需要下載Android Studio的測試版,才能獲得對其“開箱即用”的支持。這比起在Unity里使用C#還是略顯復(fù)雜。另外,其社區(qū)方面的支持也還處于相對初級的階段。
3.C/C++
Android Studio通過使用Android原生開發(fā)工具(Native Development)來支持C/C++。您不必編寫在Java虛擬機上運行的代碼,而能夠?qū)⒋a在設(shè)備上本地原生地運行,并且可以控制內(nèi)存之類的部件。對于一些3D要求高的游戲應(yīng)用,您可以使用C或C++編寫的庫,來獲取Android設(shè)備上的特有性能。
當(dāng)然,它在設(shè)置上會比較復(fù)雜,可能會引入一些bug,同時也缺少一定的靈活度。如果您的確想為電腦開發(fā)一款游戲的話,那么您最好還是使用現(xiàn)成的游戲引擎為妙。
4.C#
C#是純粹面向?qū)ο蟮腃和C++版本。微軟保留了C++的強大功能和Visual BASIC的簡約性,它有點類似于Java的簡化版。
和Java相同,C#也具有垃圾回收功能,因此您不需要擔(dān)心內(nèi)存泄漏、或考慮自行釋放內(nèi)存等問題。同時相對于Java來說,C#的語法更為清晰。當(dāng)然,我推薦您將C#和下面將要提到的Unity結(jié)合起來使用。
5.Unity
Unity是一款“游戲引擎”,它提供諸如物理計算、3D圖形渲染、以及類似Android Studio的IDE。它是一個開源的工具,您能很容易地創(chuàng)建出自己的游戲,并能獲得其強大社區(qū)的支持。只需幾行代碼,您就可以在一小時之內(nèi)搭建出一個基本的游戲平臺。作為Google Play Store里大多數(shù)游戲工作室所使用的工具,它是跨平臺的。由于一直使用的是對象,其開發(fā)模式還能提供學(xué)習(xí)面向?qū)ο缶幊痰膶崙?zhàn)方法。
Unity雖然對于開發(fā)游戲非常實用,但面對創(chuàng)建標(biāo)準(zhǔn)的Android應(yīng)用,特別是要符合Google材料設(shè)計語言(Material Design)的要求,則支持欠佳。
如果您想成為一名專業(yè)的Android開發(fā)人員,那么這條“非標(biāo)準(zhǔn)”的路線將會限制您的就業(yè)發(fā)展,除非您的目標(biāo)只是想成為一名游戲開發(fā)者。
C#也可以用在Visual Studio的Xamarin之中。與傳統(tǒng)的Android開發(fā)相比,它不但具有跨平臺的優(yōu)勢,還具有適用于Android和iOS的代碼庫。
對于入門級的初學(xué)者來說,這條路并不一定適合,但對于一個想同時為iOS和Android平臺創(chuàng)建應(yīng)用的小公司來說,此路完全值得嘗試。
6.BASIC
BASIC(Beginners All-Purpose Symbolic Instruction Code,初學(xué)者通用符號指令代碼)是初學(xué)者理想的切入點。
可惜,它并不被Android Studio官方所支持,您不能在Unity或Xamarin中使用它。不過好消息是:您可以用到一個鮮為人知的工具--Anywhere Software的B4A(BASIC 4 Android),來運用BASIC開發(fā)Android應(yīng)用。正如您所期望的那樣,它可讓您使用BASIC來編寫Android應(yīng)用程序。
B4A是為RAD(Rapid Application Development,快速應(yīng)用開發(fā))環(huán)境所設(shè)計的。它有著非常強大的支持社區(qū)。
由于“非官方”語言的因素,您用它制作出的高端游戲可能會不太理想,而且也很難完全符合材料設(shè)計語言的規(guī)范。這同時也會限制您的專業(yè)發(fā)展道路。另外,BASIC還有一個重大的缺點:它并不免費。
7.Corona
Corona作為開發(fā)Android應(yīng)用的另一個選項,同樣為您提供了相當(dāng)強大的控制功能。比Java簡單的是:您可以在LUA中進(jìn)行編碼,而且Corona SDK能夠支持所有的本地原生庫,并允許您將應(yīng)用發(fā)布到多個平臺之上。
除了被廣泛地運用到創(chuàng)建游戲,您還可以在其他方面使用它。您可以使用Notepad++之類的文本編輯器來輸入代碼,并在模擬器上運行,而無需提前進(jìn)行編譯。在準(zhǔn)備創(chuàng)建APK并予以部署時,您完全可以使用在線的工具來完成此操作。
由于確實需要一定的編程基本技巧,它提供了全面的使用介紹。不過,它也有自己的局限性:對于想要創(chuàng)建簡單應(yīng)用、又不想提高自己的編碼技能與專業(yè)度的人來說,它是夠用的;而如果您想用到“應(yīng)用內(nèi)購買”和原生Android API等功能的話,您就需要支付額外費用了。
8.PhoneGap
除非您想使用應(yīng)用程序生成器,不然PhoneGap將是您“簡化” Android應(yīng)用開發(fā)的最后選項。
由Apache Cordova帶來的PhoneGap,允許您使用HTML、CSS和JavaScript這些常用于創(chuàng)建網(wǎng)站的編程語言。PhoneGap就像橋梁一樣,允許開發(fā)者訪問手機或平板電腦上的一些原生功能,如計算器或相機等。
PhoneGap實際上不是真正的“Android”開發(fā),而只是用到了JavaScript進(jìn)行編程。因此它所完成的只是一些基本的任務(wù),而如果您想成為真正的Android應(yīng)用開發(fā)者的話,還是請從前面的列表中選擇語言吧。
原文標(biāo)題:Top Programming Languages for Android App Development,作者:Mohit Maheshwari
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】