FAQ | 使用 Kotlin 進行 Android 開發

自從 2017 年咱們宣佈支持 Kotlin 以來,收到了不少關於使用 Kotlin 進行 Android 開發的問題: 你們想知道如今是否適合學習 Kotlin,是否要在應用開發中引入 Kotlin,學習 Kotlin 的最佳課程或教程是什麼,Google 內部是否在使用 Kotlin,以及咱們對 Java 編程語言的規劃是怎樣的?本文將一一做答。java

問: 是否應該學習 Kotlin 進行 Android 開發?

最常說起的問題大都圍繞同一個話題:android

  • "對於初學者,應該選擇學習 Kotlin 仍是 Java 編程語言?"
  • "若是已經掌握了 Java 基礎知識,如今適合改用 Kotlin 進行 Android 開發嗎?"
  • "對於資深 Java 開發者若是學習 Android 開發,推薦直接上手 Kotlin 仍是使用 Java 入門呢?"

簡單來講:git

是的!開始學習和使用 Kotlin 吧!github

展開來回答:編程

Kotlin 與 Android

2017 年,咱們在 Google I/O 大會上宣佈支持 Kotlin。從那時起,咱們開始着手確保咱們的 API、文檔和示例適用於 Kotlin。2019 年,Kotlin 成爲 Android 開發的首選語言,這讓咱們開始更加依賴於 Kotlin 的功能。例如,協程成爲咱們實現異步操做的推薦方案。api

咱們還作了如下工做:安全

Kotlin 優先庫異步

首先在若干 Android Jetpack API (如 Room、LiveData、ViewModel 和 WorkManager) 中,咱們增長了對 Kotlin 協程的一流支持,從而轉變了在 Android 上執行異步操做的方式。Firebase Android SDK 和許多 Jetpack 庫都具備 Kotlin 擴展庫 (KTX),經過 Kotlin 使用起來更加流暢。編程語言

如今,咱們的不少庫都優先使用 Kotlin,如 Paging 3.0 和 DataStore。Jetpack Compose 是全新的、獨立的、聲明式 UI 工具包,它從頭至尾使用 Kotlin 編寫。工具

工具

開發效率源自強大的工具。所以,咱們對編譯工具鏈作了不少針對 Kotlin 的改進,包括對 Kotlin JVM 編譯器的改進、針對 Kotlin 的 R8 優化,甚至還開發了 Kotlin Symbol Processing 等新工具。咱們添加了內置 Android Kotlin Live 模板,供您使用簡寫語法將常見的 Android 代碼結構應用到 Kotlin 代碼。同時,針對 Kotlin 的 Lint 檢查可幫助您確保 Kotlin 代碼更符合語言習慣。該工具在您從 Java 編程語言過渡到 Kotlin 時尤爲有用。

問: Google 內部是否在使用 Kotlin?

在 Google 內部,咱們也在着力推廣使用 Kotlin。咱們有超過 60 個應用 (如 Google Home、Drive、Maps 等) 已將 Kotlin 添加到代碼庫中。咱們龐大的內部代碼庫中已有超過 200 萬行 Kotlin 代碼。

問: 是否應該將應用遷移到 Kotlin?

咱們常常收到這一問題,但最終的答案因人而異。若是您對當前的代碼庫和技術棧感到滿意,能熟練使用您的解決方案來管理異步任務,而且具備高效的錯誤捕獲方法,那麼遷移到 Kotlin 對您來講可能不是合適的解決方案。

若是您在試用 Kotlin 以後或經過下文提到的一些課程學習該語言以後,很喜歡它的效果,並且但願充分利用最新的 Jetpack API,那麼您應該考慮將 Kotlin 加入到應用開發中。Kotlin 的一大優點在於它與 Java 有很好的互操做性。您能夠按部就班地採用 Kotlin,好比能夠首先在測試中試用,而後在新功能中試用,在慢慢接觸的過程當中,再嘗試轉換部分舊代碼。

着手遷移到至 Kotlin,請查閱 Codelab 教程 - 轉換到 Kotlin

問: Java 編程語言在 Android 開發中將如何發展?

咱們在 Java 的基礎上增長了對 Kotlin 的支持,由於這兩種語言均可以編譯成相同的字節碼,而且能夠共存。咱們喜歡 Kotlin 是由於用它編寫代碼更易於表達、更安全,同時咱們也會繼續 維護並推進對 Java 語言的支持。例如,在 Android 11 中,從 OpenJDK 的較新版本一直到版本 13,咱們增長了對許多 API 的支持,Android Studio 甚至支持在全部 Android 設備上使用其中一些 API,而不受操做系統版本的限制。查閱文章,進一步瞭解 對 OpenJDK 中新 API 的支持狀況

問: 學習 Kotlin 的最佳途徑是什麼?

採納一門新語言並不是易事,但咱們正努力使其儘量簡單:

  • 首先從 培訓課程 開始,這些課程面向全部開發者,涵蓋初學者到專業開發者。既包含面向 沒有編程經驗 的初學者新開設的在線課程 使用 Kotlin 構建 Android 應用的基礎知識,也有講解如何 使用協程 的高級教程,幫助您提高使用 Kotlin 進行 Android 開發的技能。
  • 咱們的全部文檔頁面都包含 Kotlin 代碼段,方便您比較以兩種語言運行 API 的效果,而且全部 示例 都有 Kotlin 版本。
  • 您能夠查看 文章,觀看 視頻,從中學習各類 Kotlin 主題的內容。
  • 對於想要 改用 Kotlin開發者團隊,請訪問 官方文檔 瞭解相關的指南。

自從 3 年前正式增長對 Kotlin 的支持以來,咱們一直在加大力度對這一出色的語言和生態系統進行支持。咱們攜手 JetBrains 一塊兒爲 Kotlin 創建了堅實的基礎,確保該語言健康發展,例如,經過謹慎的流程來審覈重大變動。咱們的貢獻不止於此: Google 內部有一支專職研究 Kotlin 編譯器的工程師團隊;咱們正在構建的 Jetpack API 不只支持 Kotlin,並且以 Kotlin 爲首選語言;咱們還致力於爲使用 Kotlin 進行 Android 開發提供無縫的體驗。

Java 是 Oracle 公司和/或其子公司的註冊商標。

相關文章
相關標籤/搜索