使用 Kotlin 構建的常見問題解答 | Kotlin 遷移指南 (下篇)

  • 2019 年 11 月 12 日
  • 筆記

今年五月份的 Google I/O 上,我們正式向全球宣布 Kotlin-first 的這一重要理念,Kotlin 將成為 Android 開發者的首選語言,十月份舉辦的 Android Dev Summit 2019 大會上,我們發布了使用 Kotlin API 開發的 Jetpack Compose 開發者預覽版。

我們於近期開始連載了關於 Kotlin 遷移指南的系列文章,幫助開發者們順利遷移並開始使用 Kotlin 構建 Android 應用。本篇是本系列的下篇,我們將為您解答一些使用 Kotlin 構建應用時的常見問題。

您可以點擊下面鏈接回顧本系列的上篇和中篇:

在 Android 開發中使用 Kotlin 語言的常見問題解答

Android 為何將 Kotlin 語言列為一級支援語言?

Kotlin 是一種與 Android 兼容的語言,它不僅語法簡潔、更具表達性,還具備類型安全和空值安全的特性。它與 Java 語言可以無縫互通,熱愛 Java 語言的開發者可以在繼續使用 Java 語言的同時,逐步加入 Kotlin 程式碼並充分利用 Kotlin 庫,輕鬆完成轉換。此外,許多 Android 開發者已經發現 Kotlin 不僅可以提高開發速度,還能為編程帶來更多樂趣,因此,我們希望為這些 Kotlin 用戶提供更好的支援。您可以參閱 Kotlin 官方網站,詳細了解 Kotlin 和 Android。

我已經在使用 Kotlin 語言,有哪些變化值得關注?

短期內您將注意到的最大變化是: Android Studio 3.0 及更高版本中包含了經過全面測試的 Kotlin 支援工具。我們相信,這一變化將為您帶來更輕鬆、更穩定的開發體驗。

如何在 Android Studio 中使用 Kotlin?

Android Studio 3.0 及更高版本全面支援 Kotlin。以前,您需要添加 Kotlin 插件才能使用 Kotlin;而現在,所有新發布的 Android Studio 版本中都內置了這些工具。因此,您無需執行任何額外步驟,就可以直接使用 Kotlin 文件創建新項目,將 Java 語言程式碼轉換成 Kotlin 程式碼,調試 Kotlin 程式碼以及執行其他操作。詳情請參閱 "Kotlin 使用入門"。

如何在 Android Studio 中調試 Kotlin 程式碼?

Kotlin 程式碼的調試方法與 Java 程式碼相同。您不需要執行任何其他操作。

IDE 還為 Kotlin 提供其他哪些類型的支援 (例如 Lint、自動填充、重構等)?

從 Android Studio 3.0 開始,我們的 IDE 已為 Kotlin 提供全面的工具支援。但是,目前還存在一些已知問題和限制,我們正在努力解決。

Kotlin 前景如何?

JetBrains 開發的 Kotlin 語言有著深思熟慮的設計理念,這是我們採納該語言的原因之一。Google 正在與 JetBrains 開展合作,確保開發者在整個開發過程中 (從語言到框架再到工具) 都能獲得出色的體驗。此外,我們非常期待通過雙方的努力,為 Kotlin 語言創建一個非營利基金會以便進行後續的開發。

Kotlin 是開源語言嗎?

Kotlin 的首選許可是 Apache Software License 2.0 版 ("Apache 2.0"),Kotlin 軟體的大部分內容都是根據 Apache 2.0 授權用戶使用。儘管該項目將儘可能遵循此首選許可,但也可能存在根據具體情況進行處理的例外情況。例如,Kotlin 使用的部分第三方依賴項可能使用不同的開放源程式碼許可,但這些許可與 Apache 2 許可並不衝突。

如何在 Java 和 Kotlin 語言之間做出選擇?

您無需二選一!您可以根據需要同時使用兩種語言。如果您需要了解 Kotlin 是否適合自己,可以在 Android 開發中試用 Kotlin 語言,也可以參閱這些 Kotlin 資源,詳細了解該語言。

我可以在 Kotlin 中調用 Android 或其他 Java 語言庫的 API 嗎?

可以。Kotlin 與 Java 語言具有互操作性。此設計讓 Kotlin 程式碼可以透明地調用 Java 語言方法;對於 Kotlin 獨有的功能,可採用注釋輕鬆向 Java 程式碼公開。對於未使用任何 Kotlin 特有語義的 Kotlin 文件,Java 程式碼可以直接引用,無需添加任何注釋。兩相結合,您就可以同時使用 Java 程式碼和 Kotlin 程式碼。要了解詳情,請參閱 Kotlin 互操作文檔。

你們有 Android API 的 Kotlin 參考文檔嗎?

有!我們正努力使所有 Android API 文檔都包含慣用 Kotlin 參考。它們尚未準備就緒,但您可以在 Android 參考概覽中找到指向可用 Kotlin 參考的鏈接。如果您要尋找核心 Kotlin 語言參考,請查看 Kotlin 標準庫參考。

我可以在同一個項目中同時使用 Java 文件和 Kotlin 文件嗎?

可以。您可以根據自己的喜好或多或少採用 Kotlin 語言進行開發,然後利用 Kotlin 與 Java 的互操作性將 Kotlin 程式碼與 Java 程式碼結合在一起。

我可以在 Kotlin 程式碼中使用 C++ 程式碼嗎?

可以,Kotlin 完全支援 JNI。您只需使用 external 修飾符標記 JNI 方法即可。

如何將 Kotlin 程式碼添加到我的新項目中?

當您在 Android Studio 中創建新項目時,只需選中 Include Kotlin support 複選框即可。有關詳情,請參閱 Kotlin 使用入門。

如何將 Kotlin 程式碼添加到我的現有項目中?

在 Project 窗口中選擇相應模組,然後依次選擇 File > New,選擇任意 Android 模板,然後選擇 Kotlin 作為 Source language。有關詳情,請參閱 Kotlin 使用入門。

如何將 Java 語言程式碼轉換成 Kotlin 程式碼?

打開 Java 文件,然後依次選擇 Code > Convert Java File to Kotlin File。您也可以新建一個 Kotlin 文件 (File > New > Kotlin File/Class),然後將 Java 程式碼粘貼到此文件中。介面上出現提示時,點擊 Yes,即可將 Java 程式碼轉換成 Kotlin 程式碼。有關詳情,請參閱 Kotlin 使用入門。

你們會提供有關 Kotlin 的配套文檔、示例、codelab 和模板嗎?

為了向 Java 和 Kotlin 語言用戶儘可能提供最實用的幫助,我們正在努力完善我們的文檔和教程資料。與此同時,開發者可以藉助 Kotlin 與 Java 語言之間出色的互操作性,並利用相關功能在 Android Studio 中將 Java 語言程式碼自動轉換成 Kotlin 程式碼。

Kotlin 在 Android 開發中能實現協程嗎?能實現非同步/等候嗎?

Kotlin 協程目前應該可以實現,但這些特性還處於實驗設計階段。因此,Kotlin 不能保證它們未來的可用狀態,Android 自然也無法做出承諾。

Kotlin 對 APK 大小/方法數有什麼影響?

Kotlin 運行時會導致您的調試 APK 增加大約 7,000 個方法和約 1MB 的大小。如果您使用 Kotlin 替換項目中的另一個庫 (例如 Guava 或 RxJava),凈影響可能會降低。如果您像優化其他應用程式碼和庫一樣,使用 ProGuard 對 APK 進行發布前優化,APK 的大小也會減小。

使用 Kotlin 會影響性能嗎?

使用 Kotlin 不會對性能產生直接影響,但就像使用 Java 語言一樣,您應該精心考慮如何使用這種語言。例如,在新的集合實例間重複複製會影響 GC 性能,調用允許非空類型的方法會導致調用空值檢查方法 (當然,您可以在編譯器中使用 -Xno-param-assertions 停用運行時空值檢查)。

Kotlin 支援哪些 Android 版本?

所有版本都支援!Kotlin 與 JDK 6 兼容,因此使用 Kotlin 語言開發的應用可以在較早版本的 Android 上安全運行。

如果您對在 Android 開發中使用 Kotlin 有任何疑問或者想法,歡迎在評論區和我們分享。

點擊這裡即刻使用 Kotlin 打造精彩 Android 應用

Tags: