今年五月份的 Google I/O 上,咱們正式向全球宣佈 Kotlin-first 的這一重要理念,Kotlin 將成爲 Android 開發者的首選語言,十月份舉辦的 Android Dev Summit 2019 大會上,咱們發佈了使用 Kotlin API 開發的 Jetpack Compose 開發者預覽版。html
咱們於近期開始連載了關於 Kotlin 遷移指南的系列文章,幫助開發者們順利遷移並開始使用 Kotlin 構建 Android 應用。本篇是本系列的下篇,咱們將爲您解答一些使用 Kotlin 構建應用時的常見問題。android
您能夠點擊下面連接回顧本系列的上篇和中篇:編程
Android 爲什麼將 Kotlin 語言列爲一級支持語言?api
Kotlin 是一種與 Android 兼容的語言,它不只語法簡潔、更具表達性,還具有類型安全和空值安全的特性。它與 Java 語言能夠無縫互通,熱愛 Java 語言的開發者能夠在繼續使用 Java 語言的同時,逐步加入 Kotlin 代碼並充分利用 Kotlin 庫,輕鬆完成轉換。此外,許多 Android 開發者已經發現 Kotlin 不只能夠提升開發速度,還能爲編程帶來更多樂趣,所以,咱們但願爲這些 Kotlin 用戶提供更好的支持。您能夠參閱 Kotlin 官方網站,詳細瞭解 Kotlin 和 Android。安全
我已經在使用 Kotlin 語言,有哪些變化值得關注?框架
短時間內您將注意到的最大變化是: Android Studio 3.0 及更高版本中包含了通過全面測試的 Kotlin 支持工具。咱們相信,這一變化將爲您帶來更輕鬆、更穩定的開發體驗。異步
如何在 Android Studio 中使用 Kotlin?jvm
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 應用