Kotlin 語言入門寶典 | Android 開發者 FAQ Vol.5

谷歌開發者_發表於2017-07-21

640?wx_fmt=gif


640?wx_fmt=jpeg

隨著 Kotlin 的快速崛起,我們注意到越來越多的開發者開始關注這個新興的語言。本期《Googel Play 開發者 FAQ》,我們特別推出了 Kotlin 語言專題,希望這些內容有助於您更好地瞭解 Kotlin 語言的特性和發展現狀,並嘗試使用 Kotlin 語言進行 Android 開發。



為什麼我們要使用 Kotlin 作為 Android 的最佳支援語言?

640?wx_fmt=png

Kotlin 做為 Android 所支援的開發語言,擁有簡潔、強大以及型別和空指標安全的特性。它能與 Java 語言完美地融合工作,這樣就使得那些熱愛 Java 語言的開發者們能繼續使用 Java,同時還能額外新增 Kotlin 程式碼以及使用 Kotlin 語言的程式碼庫。另外,許多 Android 開發者已經發現使用 Kotlin 進行開發更加快捷且樂趣十足,所以我們決定更好地支援這些開發者。您可以在我們的官方文件裡閱讀到更多關於 Kotlin 和 Android 的說明。



我很久之前就用了 Kotlin,現在有什麼變化呢?

640?wx_fmt=png

我們推出了 Android Studio 3.0 以及更高版本,它包含完整的 Kotlin 支援。這將會為您帶來更容易、更穩定的開發體驗。



使用 Kotlin 開發具有哪些優勢?

640?wx_fmt=png

  • 表達清晰、簡潔、擴充套件性強

  • 型別安全

  • 空指標安全

  • 和 JAVA、C++ 無縫對接

因此,我們對使用 Kotlin 的開發者做了更好的支援,如果您對 Kotlin 感興趣,首先需要將 Android Stuido 升級到 3.0 版本,Kotlin 工具直接繫結到了這個版本當中。如果您在使用中遇到了問題請參考以下連結中的 “Kotlin 在 Android Studio 的常見問題

(https://developer.android.google.cn/studio/preview/kotlin-issues.html)



如何在 Android Studio 中使用 Kotlin?

640?wx_fmt=jpeg

Android Studio 3.0 上您可以很方便的建立一個 Kotlin 檔案專案,轉換 Java 語言為 Kotlin 語言,並且繼續使用您熟悉的 Andoid Studio 的工具,例如 autocomplete, lint checker, refactoring, debugging 等。

建立一個包含 Kotlin 的專案

  1. 在 Android Studio 中, 點選 “File > New > New Project”.

  2. 在初始頁面,點選 Include Kotlin support

  3. 點選下一步繼續,直到您的專案建立完成

640?wx_fmt=png

這樣在選擇了一個 Activity 模版後,原始碼會以 Kotlin 程式碼的形式提供,但目前只是一些手機或者平板的模版程式碼提供了原生的 Kotlin 程式碼,其餘的只會從 Java 程式碼轉換而成,這些程式碼可能並沒有用到 Kotlin 最好的語言特徵。



在 Android Studio 中如何 Debug Kotlin?

640?wx_fmt=jpeg

在 Debug 方面,您可以像以前 Debug Java 來除錯您的應用。



為 Kotlin 提供了什麼其他 IDE 支援?(比如 Link,autocomplete,refactoring 等)

在 Android Stuido 3.0 上,Kotlin 提供了全部工具的支援,如果在使用中發現了問題,請參考以下連結中的 “Kotlin 互操作文件”。

(https://kotlinlang.org/docs/reference/java-interop.html)



Kotlin 在未來的發展方向?

640?wx_fmt=png

我們使用 Kotlin 的一個原因是因為 JetBrains 公司在設計這門語言時十分周到和有啟發性的工作。Google 和 Kotlin 的合作確保了使用Kotlin的過程是一個完整而美妙的故事 —— 從語言、框架到工具。我們非常高興這樣的合作能使 Kotlin 成為一個非盈利的工具來為廣大開發者所用。



Kotlin 是開源的嗎?

640?wx_fmt=png

在 Kotlin 上,我們首選的開源協議是 “Apache Software License, Version 2.0” (http://www.apache.org/licenses/LICENSE-2.0) "Apache 2.0"。


並且主要的 Kotlin 軟體都使用了 Apache 2.0。雖然 Kotlin 專案都會遵循這個協議,但可能有例外的情況會有特殊的處理。比如,Kolint 使用的某些第三方庫可能使用與 Apache 2.0 相容的其他開源協議。



在 Kotlin 和 Java 之間我應該如何選擇?

640?wx_fmt=png

您不必擔心這個問題,您可以兩個一起使用,如果您想知道 Kotlin 是否適用您,您可以在 Android 上試一試或者學習更多有關於 Kotlin 語言資料。

文件:

  • Kotlinlang.org” (https://kotlinlang.org/) Kotlin 的官方網站,包含了所有的 “基本語法” (https://kotlinlang.org/docs/reference/basic-syntax.html) 和 “標準庫參考” (https://kotlinlang.org/api/latest/jvm/stdlib/index.html)

  • Kotlin Koans Online” (https://try.kotlinlang.org/) 線上 IDE 中的一系列練習,可幫助您學習 Kotlin 語法


視訊:


△ “Introduction to Kotlin” Google I/O 2017大會上介紹 Kotlin 成為官方支援語言

  • “O'Reilly course” (http://shop.oreilly.com/product/0636920052982.do) 一個 8 小時的 Kotlin 課程,視訊的講師是 JetBrains 公司的開發者 Hadi Hariri,介紹 Kotlin 程式設計設計。需要購買訂閱,7 天免費試用

  • “Treehouse course” (https://teamtreehouse.com/library/kotlin-for-java-developers)

  • “Udemy course” (https://www.udemy.com/kotlin-course/) “Kotlin 初學者”,從頭教起,需要購買訂閱,初學者有折扣優惠


書籍:

640?wx_fmt=jpeg

  • “Kotlin in Action” (https://www.manning.com/books/kotlin-in-action) : 由 JetBrains 公司 Kotlin 的開發者 Dmitry Jemerov 和 Svetlana Isakova 編寫

  • “Kotlin for Android Developers” (https://leanpub.com/kotlin-for-android-developers) 最早的 Kotlin 書籍之一,由 Antonio Leiva 編寫


社交渠道:

  • “Kotlin Community” (https://kotlinlang.org/community/) kotlinlang.org 的線下社群專案與小組

  • “Kotlin Slack” (http://slack.kotlinlang.org/) Kotlin 使用者討論社群

  • “Talking Kotlin” (http://talkingkotlin.com/) Kotlin 的半月刊部落格



我可以在 Kotlin 中呼叫 Android 或者其他 Java 語言的庫嗎?

Kotlin 提供了Java 語言的互通性,這表示 Kotlin 檔案中您可以不用 annotation 或 Kotlin 指定語意義,就可以在直接在 Kotlin 裡面呼叫 Java 的方法,這意味著您的專案中可以並存 Java 和 Kotlin 的程式碼。



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

當然可以,JNI 是完全支援 Kotlin 的。

要呼叫 native 的 C 或 C ++程式碼,只需提前使用 external modifier 來標記一下即可:


external fun foo(x: Int): Double



我怎麼在現有的專案中增加 Kotlin 檔案?

如果想將 Kotlin 增加到已經存在的專案中,點選  “File > New” 選擇一個模版。如果您沒有看到這個選單,需要首先開啟 Project 視窗並選擇您的 app 元件。


640?wx_fmt=png

當配置嚮匯出現,選擇 “Source Language” 選擇 “Kotlin”


640?wx_fmt=png

至於其他的方式,您可以通過 “File > New > Kotlin File/Class” 去建立一個基本的檔案,“New Kotlin File/Class” 視窗提供了一些檔案的選擇,因為在您更改了型別之後,Kotlin 會自動轉換檔案型別,所以您選擇什麼都不重要。


Kotlin 檔案儲存在 “src/main/java/”, 您會發現 Kotlin 檔案和 Java 檔案在一個資料夾裡面,但是如果您想讓您的 Kotlin 檔案和 Java 檔案分開,您可以用 “src/main/kotlin/” 代替,如果您需要這樣做,只需要在您的配置中新增下面的語句就可以了。


Android {

  sourceSets {

      main.java.srcDirs += 'src/main/kotlin'

  }

}



我怎麼將 Java 程式碼轉換成 Kotlin 程式碼?

在 Android Studio 3.0, 開啟一個 Java 檔案然後選擇 “Code > Convert Java File to Kotlin File”.

或者建立一個 Kotlin 檔案 “(File > New > Kotlin File/Class)”, 然後複製您的 Java 程式碼到 Kotlin 檔案中。當有提示出現的時候,點選 “Yes” 將 Java 程式碼轉換為 Kotlin 程式碼,並且可以勾選 “Don't show this dialog next time” 來方便您下一次轉換。

640?wx_fmt=png



針對 Kotlin 也會提供(與 Java 相同)完整的對應文件、程式碼和模版嗎?

640?wx_fmt=png

我們正在努力的將我們的文件、程式碼、模版儘可能的同時覆蓋於 Java 和 Kotlin。與此同時,開發者可以依賴 Java 和 Kotlin 的互操作性,將 Java 程式碼轉換為 Android Studio 中的 Kotlin 程式碼。



Kotlin 在 Android 上的協程使用怎麼樣?非同步、等待等操作如何?

Kotlin 的協程目前應該是可以使用,但由於 Kotlin 的這套機制尚在實驗設計階段,因此 Kotlin 對未來的狀態不會有任何的保證,同樣的 Android 也不會。



Kotlin 會影響 APK 大小嗎?會影響方法數嗎?

Kotlin 在執行時可能會在您的 debug APK 中增加 7000 個方法和 1M 的大小,如果您使用 Kotlin 替換如 Guava、RxJava 等其他的庫,影響可能會小一些。但是您可以在後期通過 ProGuard 來優化減小包的大小。



使用 Kotlin 會不會有什麼效能影響?

Kotlin 沒有直接的效能影響。但是它和 Java 一樣,效能方面的表現和您的使用息息相關。
比如說:在多個 collection 例項中,重複的複製操作會影響 GC 效能,呼叫一個接受非空型別的方法,會增加一個空檢查的方法呼叫(但是您可以通過設定 -Xno-param-assertions 來禁用編譯時執行空指標檢查)



哪一個版本支援 Kotlin?

640?wx_fmt=png

Kotlin 是相容 Java 6.0 的,所以您可以在所有的 Android 版本上安全的使用 Kotlin。

640?wx_fmt=jpeg

以上就是本期有關入門 Kotlin 語言的開發者 FAQ 了,如果您有其他問題,歡迎您通過留言的方式反饋給我們。



推薦閱讀:

新興市場裡有十億使用者在等著您的應用!

Material Design 設計師分享如何快速入門 UX 設計 | Google Play 開發者 FAQ 特別篇

Android 相容性 | Google Play 開發者 FAQ 特別版

四月刊 | Google Play 開發者 FAQ



640?wx_fmt=gif



相關文章