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