我想開發(fā) Android 應(yīng)用程序——我應(yīng)該學(xué)習(xí)哪些語言?(開發(fā)android app都用什么語言)
關(guān)注留言點贊,帶你了解最流行的軟件開發(fā)知識與最新科技行業(yè)趨勢。
那么,您已經(jīng)決定要學(xué)習(xí)如何開發(fā) Android 應(yīng)用程序了嗎?偉大的!不幸的是,意圖只能帶你走這么遠。學(xué)習(xí)編碼可能很復(fù)雜。有時甚至不清楚從哪里開始!因此,在開始之前,您可能有很多問題需要回答。
- 你應(yīng)該學(xué)習(xí)什么編程語言?
- 您可以從哪里了解您選擇的語言?
- 一旦掌握了基礎(chǔ)知識, 您甚至可以從哪里開始輸入代碼?
在這篇文章中,我們將嘗試回答第一個問題。為此,您將不得不進行一些自我反省,因為決定從哪種編程語言入手將完全取決于您希望實現(xiàn)的目標(biāo)。
另請閱讀:用于創(chuàng)建應(yīng)用程序并使用零代碼構(gòu)建它們的最佳 Android 應(yīng)用程序制造商
隨你挑
如果您想開發(fā) Android 應(yīng)用程序,第一步是選擇一種語言。各種 Android 編程語言之間的差異可能有些復(fù)雜和微妙。
但比語言本身更重要的是它所依附的工具,以及該工具的主要特性和目標(biāo)。
您可能考慮學(xué)習(xí)用于 Android 開發(fā)的語言包括:
- Java – Java 是 Android 開發(fā)的官方語言,受Android Studio支持。它成為官方語言的時間比 Kotlin 長,而且出于許多其他目的,它在 Kotlin 開發(fā)之外也很受歡迎。然而,Java 和 Android Studio 的學(xué)習(xí)曲線陡峭。
- Kotlin – Kotlin 是另一種官方 Android 語言。它在許多方面與 Java 相似,但更容易理解。它現(xiàn)在也是 Google 的 首選 語言,盡管它在 Android Studio 之外沒有被廣泛使用。對于那些希望在眾多項目中擔(dān)任開發(fā)人員的人來說,這可能會稍微降低它的吸引力。
- C — Android Studio 還支持使用 Java NDK 的 C 。這允許原生編碼應(yīng)用程序,這對于游戲之類的東西來說非常方便。C 雖然更復(fù)雜,但這個選項主要只對大型專業(yè)團隊有吸引力。Unreal Engine 也支持 C 。
- C# — C# 是一種對初學(xué)者更友好的 C 或 C 替代品,它混淆了更多代碼。它也比 Java 難一點,盡管這兩種語言非常相似。它得到一些非常方便的工具(如 Unity 和 Xamarin)的支持,這些工具非常適合游戲開發(fā)和跨平臺開發(fā)。C# with Unity 是許多移動游戲開發(fā)人員的最佳選擇。
- LUA (Corona) – 另一個基于 LUA 構(gòu)建的跨平臺工具。它極大地簡化了應(yīng)用程序構(gòu)建過程,同時仍然允許您調(diào)用本機庫。
- JavaScript (PhoneGap) – 如果您已經(jīng)知道如何構(gòu)建交互式網(wǎng)頁,那么您可以將這些知識與 PhoneGap 結(jié)合使用來構(gòu)建更基本的跨平臺應(yīng)用程序。
Java
- 當(dāng)需要開發(fā) Android 應(yīng)用程序時,Jave 仍然是兩個官方選項之一。這意味著它得到了谷歌的大力支持。大多數(shù)非游戲應(yīng)用程序可能是使用 Java 或 Kotlin 構(gòu)建的。
開發(fā) Android 應(yīng)用程序的第一種方法是繼續(xù)下載Android Studio。這是一個稱為 IDE 或集成開發(fā)環(huán)境的軟件。它將與Android SDK (一組專門用于促進 Android 開發(fā)的工具)打包在一起,這將為您提供啟動和運行所需的一切。
Google 的官方文檔將提及 Android Studio 和 Java(或 Kotlin),您可以在線找到大量支持。
Java 本身于 1995 年由 Sun Microsystems 發(fā)布,并用于廣泛的編程應(yīng)用程序。盡管谷歌已經(jīng)明確表示偏愛 Kotlin,但 Java 是如此根深蒂固和熟悉,以至于許多開發(fā)團隊選擇堅持使用它。
不幸的是,Java 也很復(fù)雜并且不是一種很好的“第一語言”。一旦將 Android SDK 添加到組合中,事情就會變得更加復(fù)雜;第一次編碼的人可能很難知道什么是 Java 什么是 Android!Java 是一種面向?qū)ο蟮木幊陶Z言,包含構(gòu)造函數(shù)、空指針異常、檢查異常等令人困惑的主題。它的可讀性不是很好,您將使用大量“樣板”代碼來做一些簡單的事情。使用此路線進行開發(fā)還需要對Gradle、Android Manifest和標(biāo)記語言XML等概念有基本的了解。
這并不是說 Java 是一種糟糕的語言——遠非如此。將任何語言稱為“糟糕”不僅是錯誤的,而且 Java 的大部分不便之處實際上都是為了我們自己的利益而存在的,并且鼓勵干凈的代碼。由于這個原因,很多人都喜歡 Java,它也是用途最廣、使用最廣泛的語言之一。根據(jù) PYPL(PopularitY of Programming Languages)表,Java 是最受雇主追捧的編程語言。
Android Studio 在過去幾年中也不斷壯大。視覺設(shè)計器和建議等功能使流程更加順暢,同時不斷添加高級、強大的功能,使開發(fā)人員能夠輕松實現(xiàn)云存儲等功能。值得加入,即使這種快速的進步有時確實讓人難以跟上(特別是如果你是一個以寫這些東西為生的窮人?。?/p>
這并不是說 Java 是一種糟糕的語言——遠非如此。將任何語言稱為“糟糕”不僅是錯誤的,而且 Java 的大部分不便之處實際上都是為了我們自己的利益而存在的,并且鼓勵干凈的代碼。由于這個原因,很多人都喜歡 Java,它也是用途最廣、使用最廣泛的語言之一。根據(jù) PYPL(PopularitY of Programming Languages)表,Java 是最受雇主追捧的編程語言。
Android Studio 在過去幾年中也不斷壯大。視覺設(shè)計器和建議等功能使流程更加順暢,同時不斷添加高級、強大的功能,使開發(fā)人員能夠輕松實現(xiàn)云存儲等功能。值得加入,即使這種快速的進步有時確實讓人難以跟上(特別是如果你是一個以寫這些東西為生的窮人?。?/p>
Kotlin
Kotlin 已經(jīng)成為 Android 開發(fā)的官方語言已有一段時間了,谷歌甚至將其作為 Android 開發(fā)的首選。也就是說,由于許多開發(fā)團隊已經(jīng)深入投資于 Java,因此許多人選擇不進行轉(zhuǎn)換。
與 Java 一樣,Kotlin 運行在 Java 虛擬機上。它還可以與 Java 完全互操作,并且不會導(dǎo)致文件大小變慢或增加。不同之處在于,Kotlin 需要更少的“樣板”代碼,這意味著它是一個更加精簡和易于閱讀的系統(tǒng)。它還消除了諸如空點異常之類的錯誤,甚至可以免除每行以分號結(jié)尾的錯誤。簡而言之,如果您只是第一次學(xué)習(xí)開發(fā) Android 應(yīng)用程序,那么這很棒。
因此,對于初學(xué)者來說,Kotlin 絕對是一個更容易的起點,而且您仍然可以使用 Android Studio 這一事實是一大優(yōu)勢。也就是說,它本身仍然是一種復(fù)雜的語言,您仍然需要找出大量額外的“東西”才能以這種方式構(gòu)建 Android 應(yīng)用程序。在 Android 開發(fā)之外,Kotlin 的使用不太廣泛也有一個小缺點。
在此處了解您應(yīng)該嘗試 Kotlin 的原因。
Kotlin 已經(jīng)成為 Android 開發(fā)的官方語言已有一段時間了,谷歌甚至將其作為 Android 開發(fā)的首選。也就是說,由于許多開發(fā)團隊已經(jīng)深入投資于 Java,因此許多人選擇不進行轉(zhuǎn)換。
與 Java 一樣,Kotlin 運行在 Java 虛擬機上。它還可以與 Java 完全互操作,并且不會導(dǎo)致文件大小變慢或增加。不同之處在于,Kotlin 需要更少的“樣板”代碼,這意味著它是一個更加精簡和易于閱讀的系統(tǒng)。它還消除了諸如空點異常之類的錯誤,甚至可以免除每行以分號結(jié)尾的錯誤。簡而言之,如果您只是第一次學(xué)習(xí)開發(fā) Android 應(yīng)用程序,那么這很棒。
因此,對于初學(xué)者來說,Kotlin 絕對是一個更容易的起點,而且您仍然可以使用 Android Studio 這一事實是一大優(yōu)勢。也就是說,它本身仍然是一種復(fù)雜的語言,您仍然需要找出大量額外的“東西”才能以這種方式構(gòu)建 Android 應(yīng)用程序。在 Android 開發(fā)之外,Kotlin 的使用不太廣泛也有一個小缺點。
在此處了解您應(yīng)該嘗試 Kotlin 的原因。
C/C
可以公平地說,大多數(shù)閱讀本文的人不應(yīng)該選擇這條路線來開發(fā) Android 應(yīng)用程序。Android Studio 使用Android NDK (本機開發(fā)工具包)提供對 C/C 代碼的支持。這意味著您將編寫不在 Java 虛擬機上運行的代碼,而是在設(shè)備上本地運行的代碼,讓您可以更好地控制諸如內(nèi)存分配之類的事情。對于 3D 游戲等密集型應(yīng)用程序,這可以讓您從 Android 設(shè)備中榨取額外的性能。這也意味著您將能夠使用用 C 或 C 編寫的庫。
然而,它也往往更難設(shè)置,它引入了更多的錯誤并且不太靈活。如果你確實想創(chuàng)建一個電腦游戲,你可能最好使用現(xiàn)成的游戲引擎,比如 Unity。
可以公平地說,大多數(shù)閱讀本文的人不應(yīng)該選擇這條路線來開發(fā) Android 應(yīng)用程序。Android Studio 使用Android NDK (本機開發(fā)工具包)提供對 C/C 代碼的支持。這意味著您將編寫不在 Java 虛擬機上運行的代碼,而是在設(shè)備上本地運行的代碼,讓您可以更好地控制諸如內(nèi)存分配之類的事情。對于 3D 游戲等密集型應(yīng)用程序,這可以讓您從 Android 設(shè)備中榨取額外的性能。這也意味著您將能夠使用用 C 或 C 編寫的庫。
然而,它也往往更難設(shè)置,它引入了更多的錯誤并且不太靈活。如果你確實想創(chuàng)建一個電腦游戲,你可能最好使用現(xiàn)成的游戲引擎,比如 Unity。
C#
C# 由 Microsoft 開發(fā),旨在結(jié)合 C 的強大功能和 Visual Basic 的易用性。它讀起來很像 Java,如果您了解其中一種語言,那么切換到另一種語言會相對簡單。與 Java 一樣,C# 是垃圾回收的,這意味著您無需擔(dān)心內(nèi)存泄漏和自行釋放內(nèi)存等問題。但與此同時,C# 比 Java 更現(xiàn)代,語法更清晰——盡管這可能只是我自己的偏見。開發(fā) Android 應(yīng)用程序的最佳語言往往歸結(jié)為品味!
如果你想要一個特別簡單和受歡迎的 Android 應(yīng)用程序開發(fā)介紹,我推薦C# 和 Unity的組合。Unity 是一個游戲引擎(意味著它提供物理計算和 3D 圖形渲染等功能)和一個 IDE(如 Android Studio)。這是一款免費工具,可讓您輕松創(chuàng)建自己的游戲——只需幾行代碼,您就可以在不到一個小時的時間內(nèi)設(shè)置一個基本的平臺游戲。毫不夸張!而且它也非常強大,是 Google Play 商店中大多數(shù)游戲工作室使用的工具。作為跨平臺解決方案,Unity 還可以讓您將游戲移植到其他操作系統(tǒng),例如 iOS 和 Windows。您甚至可以制作主機游戲!最重要的是,以這種方式開發(fā)提供了一種非常實用的方法來學(xué)習(xí)面向?qū)ο蟮木幋a(因為在這種情況下,大多數(shù)時候?qū)ο?strong>實際上是對象?。?。對于那些希望開始游戲開發(fā)職業(yè)生涯的人來說,學(xué)習(xí) Unity 是極好的第一步。
限制?Unity 對于創(chuàng)建游戲很有用,但對于創(chuàng)建標(biāo)準(zhǔn)的Android 應(yīng)用程序來說卻不盡如人意,特別是如果您想符合 Google 的 Material Design 語言。
不喜歡 Unity?然后你可以考慮使用Unreal (更好的圖形,不太適合移動設(shè)備)或像GameMaker Studio這樣的簡化游戲制作者。
另請閱讀: 哪個更好?用于 Android 應(yīng)用程序開發(fā)的 Unity 與 Unreal 游戲引擎
C# 也可以通過 Visual Studio 與Xamarin一起使用。這更類似于傳統(tǒng)的 Android 開發(fā),具有跨平臺的優(yōu)勢(Android 和 iOS 的一個代碼庫)。對于一個完全的初學(xué)者來說,這條路線又是一個略顯遲鈍的 Android 開發(fā)切入點。但對于想要為 iOS 和 Android 創(chuàng)建應(yīng)用程序的小公司來說,這是有道理的,并且有大量的支持和信息可以幫助您。
C# 由 Microsoft 開發(fā),旨在結(jié)合 C 的強大功能和 Visual Basic 的易用性。它讀起來很像 Java,如果您了解其中一種語言,那么切換到另一種語言會相對簡單。與 Java 一樣,C# 是垃圾回收的,這意味著您無需擔(dān)心內(nèi)存泄漏和自行釋放內(nèi)存等問題。但與此同時,C# 比 Java 更現(xiàn)代,語法更清晰——盡管這可能只是我自己的偏見。開發(fā) Android 應(yīng)用程序的最佳語言往往歸結(jié)為品味!
如果你想要一個特別簡單和受歡迎的 Android 應(yīng)用程序開發(fā)介紹,我推薦C# 和 Unity的組合。Unity 是一個游戲引擎(意味著它提供物理計算和 3D 圖形渲染等功能)和一個 IDE(如 Android Studio)。這是一款免費工具,可讓您輕松創(chuàng)建自己的游戲——只需幾行代碼,您就可以在不到一個小時的時間內(nèi)設(shè)置一個基本的平臺游戲。毫不夸張!而且它也非常強大,是 Google Play 商店中大多數(shù)游戲工作室使用的工具。作為跨平臺解決方案,Unity 還可以讓您將游戲移植到其他操作系統(tǒng),例如 iOS 和 Windows。您甚至可以制作主機游戲!最重要的是,以這種方式開發(fā)提供了一種非常實用的方法來學(xué)習(xí)面向?qū)ο蟮木幋a(因為在這種情況下,大多數(shù)時候?qū)ο?strong>實際上是對象?。?。對于那些希望開始游戲開發(fā)職業(yè)生涯的人來說,學(xué)習(xí) Unity 是極好的第一步。
限制?Unity 對于創(chuàng)建游戲很有用,但對于創(chuàng)建標(biāo)準(zhǔn)的Android 應(yīng)用程序來說卻不盡如人意,特別是如果您想符合 Google 的 Material Design 語言。
不喜歡 Unity?然后你可以考慮使用Unreal (更好的圖形,不太適合移動設(shè)備)或像GameMaker Studio這樣的簡化游戲制作者。
另請閱讀: 哪個更好?用于 Android 應(yīng)用程序開發(fā)的 Unity 與 Unreal 游戲引擎
C# 也可以通過 Visual Studio 與Xamarin一起使用。這更類似于傳統(tǒng)的 Android 開發(fā),具有跨平臺的優(yōu)勢(Android 和 iOS 的一個代碼庫)。對于一個完全的初學(xué)者來說,這條路線又是一個略顯遲鈍的 Android 開發(fā)切入點。但對于想要為 iOS 和 Android 創(chuàng)建應(yīng)用程序的小公司來說,這是有道理的,并且有大量的支持和信息可以幫助您。
二Corona
Corona為開發(fā) Android 應(yīng)用程序提供了另一種相當(dāng)簡單的選擇,同時仍然為您提供相當(dāng)大的權(quán)力和控制權(quán)。您將使用比 Java 簡單得多的 LUA 進行編碼。Corona SDK(軟件開發(fā)工具包)將使事情變得更加容易。它支持所有本機庫,并允許您發(fā)布到多個平臺。它主要用于創(chuàng)建游戲,但也可以用于其他各種方式。你需要使用像 Notepad 這樣的文本編輯器來輸入你的代碼,你甚至不需要先編譯就可以在模擬器上運行所述代碼。當(dāng)您準(zhǔn)備好創(chuàng)建 APK 并進行部署時,您將能夠使用在線工具執(zhí)行此操作。
這確實需要基本的編碼技能,但它提供了對代碼世界的友好而溫和的介紹。但與此同時,它能完成的工作肯定是有限的,距離進入“應(yīng)用程序構(gòu)建器”領(lǐng)域僅幾步之遙。這對于想要創(chuàng)建相對簡單的東西并且不太關(guān)心發(fā)展他們的編碼技能或成為專業(yè)人士的人來說更有用。如果您想使用應(yīng)用內(nèi)購買等功能,則需要付費。使用本機 Android API 也是如此。
Corona為開發(fā) Android 應(yīng)用程序提供了另一種相當(dāng)簡單的選擇,同時仍然為您提供相當(dāng)大的權(quán)力和控制權(quán)。您將使用比 Java 簡單得多的 LUA 進行編碼。Corona SDK(軟件開發(fā)工具包)將使事情變得更加容易。它支持所有本機庫,并允許您發(fā)布到多個平臺。它主要用于創(chuàng)建游戲,但也可以用于其他各種方式。你需要使用像 Notepad 這樣的文本編輯器來輸入你的代碼,你甚至不需要先編譯就可以在模擬器上運行所述代碼。當(dāng)您準(zhǔn)備好創(chuàng)建 APK 并進行部署時,您將能夠使用在線工具執(zhí)行此操作。
這確實需要基本的編碼技能,但它提供了對代碼世界的友好而溫和的介紹。但與此同時,它能完成的工作肯定是有限的,距離進入“應(yīng)用程序構(gòu)建器”領(lǐng)域僅幾步之遙。這對于想要創(chuàng)建相對簡單的東西并且不太關(guān)心發(fā)展他們的編碼技能或成為專業(yè)人士的人來說更有用。如果您想使用應(yīng)用內(nèi)購買等功能,則需要付費。使用本機 Android API 也是如此。
HTML/CSS/JavaScript (PhoneGap)
PhoneGap由 Apache Cordova 提供支持,基本上允許您使用通常用于創(chuàng)建網(wǎng)站的相同代碼創(chuàng)建應(yīng)用程序:HTML、CSS 和 JavaScript。然后通過“WebView”顯示——一個在應(yīng)用程序中顯示網(wǎng)站的小部件。PhoneGap 就像一座橋梁,允許開發(fā)人員訪問手機或平板電腦的一些基本本機功能,例如加速度計或相機。
但這并不是真正“真正的”Android 開發(fā),唯一真正的編程將是 JavaScript。對于許多基本任務(wù),它可以勝任,但如果您希望能夠宣稱自己是真正的“Android 應(yīng)用程序開發(fā)者”(那是一件事),那么您應(yīng)該勇敢地選擇此列表中的其他選擇之一。
PhoneGap由 Apache Cordova 提供支持,基本上允許您使用通常用于創(chuàng)建網(wǎng)站的相同代碼創(chuàng)建應(yīng)用程序:HTML、CSS 和 JavaScript。然后通過“WebView”顯示——一個在應(yīng)用程序中顯示網(wǎng)站的小部件。PhoneGap 就像一座橋梁,允許開發(fā)人員訪問手機或平板電腦的一些基本本機功能,例如加速度計或相機。
但這并不是真正“真正的”Android 開發(fā),唯一真正的編程將是 JavaScript。對于許多基本任務(wù),它可以勝任,但如果您希望能夠宣稱自己是真正的“Android 應(yīng)用程序開發(fā)者”(那是一件事),那么您應(yīng)該勇敢地選擇此列表中的其他選擇之一。
結(jié)論
所以選擇你!那里有很多用于開發(fā) Android 應(yīng)用程序的選項:從 Java 和 Kotlin,到 C、C# 和 JavaScript!
正確的選擇將取決于您的敏感性和目標(biāo),但無論您做出什么決定,您都會發(fā)現(xiàn)學(xué)習(xí)編碼是一種非常有益的體驗,并且會為您打開一扇扇大門。學(xué)習(xí)使用 Android 編程是一個完美的起點。希望現(xiàn)在您至少現(xiàn)在對如何開發(fā) Android 應(yīng)用程序有了更多的了解,但如果您有任何問題,請在評論中大聲疾呼,我們的團隊——以及我們的讀者——將盡力回答。祝你好運!
所以選擇你!那里有很多用于開發(fā) Android 應(yīng)用程序的選項:從 Java 和 Kotlin,到 C、C# 和 JavaScript!
正確的選擇將取決于您的敏感性和目標(biāo),但無論您做出什么決定,您都會發(fā)現(xiàn)學(xué)習(xí)編碼是一種非常有益的體驗,并且會為您打開一扇扇大門。學(xué)習(xí)使用 Android 編程是一個完美的起點。希望現(xiàn)在您至少現(xiàn)在對如何開發(fā) Android 應(yīng)用程序有了更多的了解,但如果您有任何問題,請在評論中大聲疾呼,我們的團隊——以及我們的讀者——將盡力回答。祝你好運!