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

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

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

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

使用 Kotlin 構建 Android 應用

開始遷移到 Kotlin

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

Android 為何將 Kotlin 語言列為一級支持語言型豁?

Kotlin 是一種與 Android 兼容的語言僵蛛,它不僅語法簡潔、更具表達性迎变,還具備類型安全和空值安全的特性充尉。它與 Java 語言可以無縫互通,熱愛 Java 語言的開發(fā)者可以在繼續(xù)使用 Java 語言的同時衣形,逐步加入 Kotlin 代碼并充分利用 Kotlin 庫驼侠,輕松完成轉(zhuǎn)換。此外谆吴,許多 Android 開發(fā)者已經(jīng)發(fā)現(xiàn) Kotlin 不僅可以提高開發(fā)速度倒源,還能為編程帶來更多樂趣,因此句狼,我們希望為這些 Kotlin 用戶提供更好的支持笋熬。您可以參閱?Kotlin官方網(wǎng)站,詳細了解 Kotlin 和 Android腻菇。

我已經(jīng)在使用 Kotlin 語言突诬,有哪些變化值得關注苫拍?

短期內(nèi)您將注意到的最大變化是: Android Studio 3.0 及更高版本中包含了經(jīng)過全面測試的 Kotlin 支持工具。我們相信旺隙,這一變化將為您帶來更輕松、更穩(wěn)定的開發(fā)體驗骏令。

如何在 Android Studio 中使用 Kotlin蔬捷?

Android Studio 3.0 及更高版本全面支持 Kotlin。以前榔袋,您需要添加 Kotlin 插件才能使用 Kotlin周拐;而現(xiàn)在,所有新發(fā)布的 Android Studio 版本中都內(nèi)置了這些工具凰兑。因此妥粟,您無需執(zhí)行任何額外步驟,就可以直接使用 Kotlin 文件創(chuàng)建新項目吏够,將 Java 語言代碼轉(zhuǎn)換成 Kotlin 代碼勾给,調(diào)試 Kotlin 代碼以及執(zhí)行其他操作。詳情請參閱 "Kotlin 使用入門"锅知。

如何在 Android Studio 中調(diào)試 Kotlin 代碼播急?

Kotlin 代碼的調(diào)試方法與 Java 代碼相同。您不需要執(zhí)行任何其他操作售睹。

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

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

關于在 Android Studio 中使用 Kotlin 的已知問題:https://developer.android.google.cn/studio/preview/kotlin-issues.html

Kotlin 前景如何蚜厉?

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

Kotlin 是開源語言嗎?

Kotlin 的首選許可是 Apache Software License 2.0 版 ("Apache 2.0")伶椿,Kotlin 軟件的大部分內(nèi)容都是根據(jù) Apache 2.0 授權用戶使用辜伟。盡管該項目將盡可能遵循此首選許可氓侧,但也可能存在根據(jù)具體情況進行處理的例外情況。例如导狡,Kotlin 使用的部分第三方依賴項可能使用不同的開放源代碼許可约巷,但這些許可與 Apache 2 許可并不沖突。

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

您無需二選一独郎!您可以根據(jù)需要同時使用兩種語言。如果您需要了解 Kotlin 是否適合自己枚赡,可以在?Android 開發(fā)中試用 Kotlin 語言遮咖,也可以參閱這些 Kotlin 資源酷窥,詳細了解該語言酝碳。

我可以在 Kotlin 中調(diào)用 Android 或其他 Java 語言庫的 API 嗎畅姊?

可以。Kotlin 與 Java 語言具有互操作性卢肃。此設計讓 Kotlin 代碼可以透明地調(diào)用 Java 語言方法疲迂;對于 Kotlin 獨有的功能,可采用注釋輕松向 Java 代碼公開践剂。對于未使用任何 Kotlin 特有語義的 Kotlin 文件鬼譬,Java 代碼可以直接引用,無需添加任何注釋逊脯。兩相結合优质,您就可以同時使用 Java 代碼和 Kotlin 代碼。要了解詳情军洼,請參閱Kotlin 互操作文檔巩螃。

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

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

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

可以铆帽。您可以根據(jù)自己的喜好或多或少采用 Kotlin 語言進行開發(fā),然后利用 Kotlin 與 Java 的互操作性將 Kotlin 代碼與 Java 代碼結合在一起德谅。

我可以在 Kotlin 代碼中使用 C++ 代碼嗎爹橱?

可以,Kotlin 完全支持 JNI窄做。您只需使用 external 修飾符標記 JNI 方法即可愧驱。

如何將 Kotlin 代碼添加到我的新項目中慰技?

當您在 Android Studio 中創(chuàng)建新項目時,只需選中 Include Kotlin support 復選框即可组砚。有關詳情吻商,請參閱?Kotlin 使用入門

如何將 Kotlin 代碼添加到我的現(xiàn)有項目中糟红?

在 Project 窗口中選擇相應模塊手报,然后依次選擇 File > New,選擇任意 Android 模板改化,然后選擇 Kotlin 作為 Source language。有關詳情枉昏,請參閱 Kotlin 使用入門陈肛。

如何將 Java 語言代碼轉(zhuǎn)換成 Kotlin 代碼?

打開 Java 文件兄裂,然后依次選擇 Code > Convert Java File to Kotlin File句旱。您也可以新建一個 Kotlin 文件 (File > New > Kotlin File/Class),然后將 Java 代碼粘貼到此文件中晰奖。界面上出現(xiàn)提示時谈撒,點擊 Yes,即可將 Java 代碼轉(zhuǎn)換成 Kotlin 代碼匾南。有關詳情啃匿,請參閱?Kotlin 使用入門

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

為了向 Java 和 Kotlin 語言用戶盡可能提供最實用的幫助豹爹,我們正在努力完善我們的文檔和教程資料裆悄。與此同時,開發(fā)者可以借助 Kotlin 與 Java 語言之間出色的互操作性臂聋,并利用相關功能在 Android Studio 中將 Java 語言代碼自動轉(zhuǎn)換成 Kotlin 代碼光稼。

Kotlin 在 Android 開發(fā)中能實現(xiàn)協(xié)程嗎?能實現(xiàn)異步/等候嗎孩等?

Kotlin 協(xié)程目前應該可以實現(xiàn)艾君,但這些特性還處于實驗設計階段。因此瞎访,Kotlin 不能保證它們未來的可用狀態(tài)腻贰,Android 自然也無法做出承諾。

Kotlin 對 APK 大小/方法數(shù)有什么影響扒秸?

Kotlin 運行時會導致您的調(diào)試 APK 增加大約 7,000 個方法和約 1MB 的大小播演。如果您使用 Kotlin 替換項目中的另一個庫 (例如 Guava 或 RxJava)冀瓦,凈影響可能會降低。如果您像優(yōu)化其他應用代碼和庫一樣写烤,使用 ProGuard 對 APK 進行發(fā)布前優(yōu)化翼闽,APK 的大小也會減小。

使用 Kotlin 會影響性能嗎洲炊?

使用 Kotlin 不會對性能產(chǎn)生直接影響感局,但就像使用 Java 語言一樣,您應該精心考慮如何使用這種語言暂衡。例如询微,在新的集合實例間重復復制會影響 GC 性能,調(diào)用允許非空類型的方法會導致調(diào)用空值檢查方法 (當然狂巢,您可以在編譯器中使用 -Xno-param-assertions 停用運行時空值檢查)撑毛。

Kotlin 支持哪些 Android 版本?

所有版本都支持唧领!Kotlin 與 JDK 6 兼容藻雌,因此使用 Kotlin 語言開發(fā)的應用可以在較早版本的 Android 上安全運行。

如果您對在 Android 開發(fā)中使用 Kotlin 有任何疑問或者想法斩个,歡迎在評論區(qū)和我們分享胯杭。

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

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市受啥,隨后出現(xiàn)的幾起案子做个,更是在濱河造成了極大的恐慌,老刑警劉巖腔呜,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叁温,死亡現(xiàn)場離奇詭異,居然都是意外死亡核畴,警方通過查閱死者的電腦和手機膝但,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谤草,“玉大人跟束,你說我怎么就攤上這事〕蠛ⅲ” “怎么了冀宴?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長温学。 經(jīng)常有香客問我略贮,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任逃延,我火速辦了婚禮览妖,結果婚禮上,老公的妹妹穿的比我還像新娘揽祥。我一直安慰自己讽膏,他們只是感情好,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布拄丰。 她就那樣靜靜地躺著府树,像睡著了一般。 火紅的嫁衣襯著肌膚如雪料按。 梳的紋絲不亂的頭發(fā)上奄侠,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機與錄音载矿,去河邊找鬼遭铺。 笑死,一個胖子當著我的面吹牛恢准,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播甫题,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼馁筐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了坠非?” 一聲冷哼從身側響起敏沉,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炎码,沒想到半個月后盟迟,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡潦闲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年攒菠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歉闰。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡辖众,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出和敬,到底是詐尸還是另有隱情凹炸,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布昼弟,位于F島的核電站啤它,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜变骡,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一离赫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧锣光,春花似錦笆怠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至频丘,卻和暖如春办成,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搂漠。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工迂卢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人桐汤。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓而克,卻偏偏與公主長得像,于是被迫代替她去往敵國和親怔毛。 傳聞我的和親對象是個殘疾皇子员萍,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容