昨晚,最近一屆的谷歌IO大會正式將Kotlin確定為了官方開發語言,作為一名Android開發鳥,怎么能不及時嘗嘗鮮呢?
Kotlin的簡要介紹
在開發之前,很多同學一定有很多疑問,Kotlin到底有啥好處,怎么和現有的項目共存呢?Java那么些特性Kotlin都有嗎?嗯,讓我們一一來看。
Kotlin 非常適合開發 Android 應用程序,將現代語言的所有優勢帶入 Android 平臺而不會引入任何新的限制:
Kotlin 用于 Android 的案例學習
Kotlin 已被一些大公司成功采用,其中一些公司分享了他們的經驗:
Kotlin 團隊為 Android 開發提供了一套超越標準語言功能的工具:
下一步
使用Kotlin開發Android應用
在開始學習使用Kotlin開發Android應用之前,我們首先需要準備好手中的環境,那就是必須先配置好Android Studio 3.0的環境。
創建Kotlin開發工程
這里的工程創建與普通的Android應用工程創建并無不同,唯一的不同之處在于創建工程時勾選 Include Kotlin support 選項。如圖:

在默認創建好的Activity中便已經是Kotlin的代碼,看起來與Java代碼本身非常相似:

Kotlin文件以.kt結尾。
默認創建好的Kotlin文件還是會放在和Java文件一樣的位置,如果需要使kotlin文件與Java文件分開放的話,那么可以在對應的gradle文件中加入以下配置:
android { sourceSets { main.java.srcDirs += 'src/main/kotlin' }}這樣的話,所有默認創建的Kotlin文件就會被放在/kotlin/目錄下了。
在現有的工程中添加Kotlin
如果需要在已有的工程中添加Kotlin的支持,那么只需要在新創建Activity時在Source language選項中選擇Kotlin就可以:

將Java代碼轉換為Kotlin代碼
在Android Studio 3.0中提供了可以將Java代碼轉化為Kotlin代碼的工具。使用時只需要將對應的Java文件打開,然后選擇菜單欄上的 Code -> Convert Java File to Kotlin File 就可以完成轉換。

不過需要注意的是,這個工具可以完成大部分的語法轉換,個別類型,比如數組在轉換的時候可能有些問題,需要自己手動調整。博主我在練習的時候發現了這個問題,不過通過語法文檔迅速做了修正。發現Kotlin在語法簡潔方面確實要優于Java很多。例如下面一段代碼:
val bitmaps = LargePicLoadHelper.cutItemImage(cutImage, itemImageHeight) cutImage.recycle() for (i in bitmaps) { val imageView = ImageView(this) imageView.setImageBitmap(i) linearLayout.addView(imageView) } textView.postDelayed({ for (i in bitmaps) { i.recycle() } }, 1000)這段代碼在輪詢數組時,比Java的foreach循環要簡潔很多,i在這里代表了一個Bitmap對象,bitmaps是一個數組。是不是很簡單呢?
通過Kotlin使用Java代碼
Kotlin提供了很強大的互操作性,這個互操作性是個什么鬼呢?就是說Kotlin可以很方便的調用Java代碼,Java代碼也可以很方便的調用Kotlin代碼。這個方便到什么程度呢?Kotlin可以直接調用Java代碼。如果你了解JNI的話,那就知道Kotlin的互操作性有多么簡潔多么方便了。
使用Kotlin聲明Activity:
class MyActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity) }}使用Kotlin設置點擊事件:
val textView = findViewById(R.id.text) as TextViewtextView.setOnClickListener { Toast.makeText(this,"Hello Kotlin!",Toast.LENGTH_SHORT).show()}看到沒有,上面的setContentView以及下面的Toast就是Android提供的API,我們可以直接使用。并且setOnClickListener方法內部并不需要new OnClickListener對象!直接寫點擊實現就可以了!還有Toast的第一個參數this在Java中是一定要寫Activity.this的,而這里只用寫this就可以了!是不是很niubility?
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答