1. 程式人生 > >Kotlin在android studio下的初次使用

Kotlin在android studio下的初次使用

一覺醒來,發現微信群和qq群裡不再是各種鬥圖了,而是谷歌在今日舉行的I/O開發者大會上宣佈,將Kotlin語言作為安卓開發的一級程式語言。Kotlin由JetBrains公司開發,與Java 100%互通,並具備諸多Java尚不支援的新特性。。那麼你知道Kotlin是什麼嗎?如果還不知道那就趕緊自行百度一下。
好了咱們言歸正傳,首先看下Kotlin的基本語法片段:

fun main(args: Array<String>) {
  var x = 5 // 變數推匯出Int型別
  val a: Int = 1  // 常量立即初始化
  val b = 2   // 推匯出Int型
  val c: Int  // 當沒有初始化值時必須宣告型別
  c = 3       // 賦值
  println("a = $a, b = $b, c = $c")
}
class MyView : View { //繼承關係 constructor(ctx: Context) : super(ctx) { } constructor(ctx: Context, attrs: AttributeSet) : super(ctx,attrs) { } }

這只是程式碼中的一小部分摘出來的,想要了解更多,請大家去移步官方給出的基本語法中文版Kotlin的基本語法

Kotlin作為Android社群當前比較熱的討論內容, 已經發布了1.1.1版本, 並且得到了一些Google開發者的關注, 畢竟Android Studio是基於JetBrains的框架. Java檔案可以直接轉換為Kotlin檔案, 兩者具有非常強的互操作性.
現在咱們的目的是用Kotlin寫出 Hello Kotlin!那麼現在咱們的問題是如何整合Kotlin在android studio中,大家都知道android studio 3.0預設支援Kotlin ,可是現在同學們使用的大部分是2.2~2.3,所以需要整合外掛。怎麼配置呢?彆著急,Follow me
1.配置專案


新建一個空的Android專案.
專案gradle:
新增Kotlin的版本號, 使用目前最新的1.1.1, 保持版本一致.大家可以自行去看下最新版本。

buildscript {
    ext.kotlin_version = "1.1.1"
}

模組gradle:
新增類的路徑, 必須在模組中新增, 因為kotlin-android-extensions外掛會使用依賴.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version
"
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version" } }

新增Kotlin支援Android的外掛

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

kotlin-android用於編譯Android程式碼, kotlin-android-extensions用於擴充套件繫結關係.

新增Java的編譯路徑, 在main中建立kotlin資料夾, 用於存放kotlin程式碼(建議).

 sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

新增maven的依賴.

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

完整的支援Kotlin的模組build.gradle.

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.example.jmf.kotlin"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.0'
    testCompile 'junit:junit:4.12'
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

2. 安裝外掛
Android Studio的Kotlin外掛, 用於支援Kotlin的語言特性.
選擇: Preferences -> Plugins -> Install JetBrains plugin -> kotlin
這裡寫圖片描述

只需要安裝Kotlin即可, 因為Kotlin Extensions已經包含在Kotlin中了

3. 轉換程式碼
選中需要轉換的Java檔案, 如MainActivity.java,
使用Ctrl+Shift+A, 啟動Action, 輸入Convert, 找到命令, 即可轉換, 如
這裡寫圖片描述

選擇Code -> Convert Java File to Kotlin File, 也可以使用快捷鍵.

把.kt的檔案剪下到kotlin資料夾下, 即可使用.

推薦Kotlin檔案和Java檔案分開存放, 不過放在一起也可以使用.

4. 新增資源
Kotlin的程式碼非常簡潔, 設定屬性也比較方便.

import android.os.Bundle
import android.support.v7.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        main_tv_message.text = "Hello Kotlin!"
        main_tv_message.textSize = 20.0f
    }
}

id是main_tv_message的TextView, 設定text為”Hello Kotlin”.
程式碼風格與Python等指令碼語言非常類似, 容易編寫.

顯示結果
這裡寫圖片描述
到這裡,你已經不知不覺的寫出了Hello Kotlin。慶祝一下吧,注意下方襲來高能,一大波幹活正在接近中…

5.你不得不收藏的乾貨–學習資料整理
1.官方資料
首發的肯定是kotlin的官方github地址了:

首發的肯定是kotlin的官方github地址了:

晚上看了下trending,穩穩的站在第一。

Readme中包含官方的tutorials、推薦的圖書《Kotlin in Action》、《Kotlin for Android Developers》以及其他資源。

英文不太好的不要擔心,有官方中文翻譯站點:

(2)《Kotlin for android developers》中文版翻譯

支援線上閱讀和下載pdf~

(3)張濤的開源實驗室

之前在推送中推薦過張濤的部落格,部落格質量都很高,在很早的時候就開始編寫Kotlin相關部落格,此外還有很多比較新的知識~

(4)大精-wing的地方酒館

(5)Kotlin 視訊教程
竟然還有視訊教程~~

Kotlin從入門到『放棄』系列 視訊教程
隨著Kotlin越來越成熟穩定,我已經開始在生產環境中使用它。考慮到目前國內資料較少,我錄製了一套視訊教程,希望以此拋磚引玉,讓 Kotlin 在國內火起來。
https://github.com/enbandari/Kotlin-Tutorials

可以百度雲下載或者騰訊視訊線上觀看。

這個是我從俊林的文章中偷來的,如果有推薦可以留言~

(7)其他文章

最後要非常感謝,今天給我投稿的朋友(彙總資料,就直接放出了連結啦)~

好文有很多,感謝所有人的分享~

在學習Kotlin中難免會遇到一些不懂的和一些坑,這時候就需要大家相互分享和提點,這裡推薦一下Kotlin社群,歡迎大家來交流。
下面附上qq群:302755325
這裡寫圖片描述