雖然 Android Studio 的負責人 Jeffery 已經澄清,只是 Kotlin-First 而不是 Kotlin-Must,並不須要將 App 用 Kotlin 重寫一遍。可是 OkHttp 已經開始用 Kotlin 重寫的工做,咱們來看看此次重寫後帶來的差別。git
在今年的 Google I/O 大會上,Google 宣佈將以 Kotlin 做爲 Android 開發的一級編程語言。而同天,Google 就開源了只支持 Kotlin 的 Jetpack Compose,以藉此呼應這一戰略。程序員
消息一出,很多 Android 開發就擔憂之後是否是隻能用 Kotlin 開發了。Android Studio 的負責人 Jeffery Van Gogh,馬上發文表示,"Kotlin-First" 只是表示 Kotlin 將比 Java 在 Android 中佔據更重要的地位,可是並不須要將現有 Java 開發的 Android App 使用 Kotlin 重寫一遍。github
Jeffer 也表示,在 Android Studio 的十幾萬代碼中,大約只有 10% 的 Kotlin 代碼,也只會用 Kotlin 來編寫新功能。編程
只是 Kotlin-First,而非 Kotlin-Must。markdown
雖然說 Google 也不建議咱們將現有的 App 用 Kotlin 重寫一遍,可是 OkHttp 這個 Android 下最火的網絡框架開源庫,已經開始着手用 Kotlin 將整個庫重寫一遍。網絡
接下來咱們看看此次升級的細節吧。框架
Kotlin 是由 JetBrains 公司開發,與 Java 100% 互通,而且具有諸多 Java 尚不支持的新特性。就我我的的使用體驗來講,Kotlin 仍是很是不錯的,惟一有問題的可能就是寫 Kotlin 太爽了,致使在同項目中編寫 Java 代碼時,有那麼零點幾秒的恍惚。編程語言
近期 Jesse Wilson 表示,已經使用 Kotlin 語言,把 OkHttp 3.0 所有重寫一遍,並將其命名爲 OkHttp4。oop
這次升級主要是受到了 Okio 2 的啓發,而 OkHttp 4 的功能和邏輯,與 OkHttp 3.0 徹底一致,等於只是用 Kotlin 將以前的 Java 版本,復刻了一遍。學習
在僅用 Kotlin 將原項目重寫一遍,帶來了一些數據指標的變化,咱們一塊兒來看看。
從代碼行數,能夠看到,Kotlin 的編寫代碼量在減小。
代碼行減小了 7%,可是若是嚴格利用 Kotlin 的特性,相似 ConnectionSpec 這個類,能夠減小 40% 的代碼。
Kotlin 的編譯時間是增長了。
能夠看到,Kotlin 的編譯速度,相較於 Java 是變慢了。這主要是由於 Kotlin 的編譯器比通用 Java 編譯器要慢的緣故。
由於編譯器的差別,也將致使 Kotlin 編譯後的文件,會比 Java 編譯後的代碼要大。
大約大了 60%,這仍是挺使人驚訝的。經過反編譯能夠發現,這些額外的代碼,主要來自 JVM 重載、Kotlin 元數據、空檢查以及伴生對象的代碼。
做爲 Android 開發,如今是時候使用 Kotlin 了。在 Android 開發中,Kotlin 將比 Java 得到更重要的地位,更多的在線培訓中以及官方 Demo 都會優先使用 Kotlin 作支持,而對 Java 只是 「儘可能知足」,而且有一些功能,可能只提供 Kotlin 的支持,例如本次開源的 Jetpack Compose。
從 OkHttp 的重寫這個事情上來看,Kotlin 編寫的代碼,雖然編譯速度更慢、編譯的二進制文件更大,可是咱們開發人員編寫的代碼將更少。
這些也符合趨勢,程序員作的更少,機器作的更多,不過我相信 Google 在後期應該也會針對這些狀況作一些優化,以達到知足生產的需求。
reference:
本文對你有幫助嗎?留言、轉發、點好看是最大的支持,謝謝!
公衆號後臺回覆成長『成長』,將會獲得我準備的學習資料,也能回覆『加羣』,一塊兒學習進步;你還能回覆『提問』,向我發起提問。