Kotlin是一个基于JVM的新的编程语言,由JetBrains开发,没错,没看错,编译器Android Studio就是其其中一产品。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。这些都是后话,关键是听说它还行,那就让它在我们手机上跑一下才行。
学习一门语言,关键是知道它的特性,学习它的API,这是最根本的。
Kotlin的特性
- Kotlin兼容Java语言;
- Kotlin比Java更安全,能够静态检测常见的陷进;
- Kotlin比Java更简洁,通过支持variable type inference,higher-order functions (closures),extension functions,mixins and first-class delegation等实现;
- Kotlin可与Java无缝通信;
- Kotlin很少需要在代码中指定类型,因为编译器可以在绝大多数情况下推断出变量或者函数返回值的类型;
总结:安全、简洁,学习成本低,可以尝试。
Kotlin的语法
语法方面就不做过多介绍,以官方为准。
Kotlin在Android Studio的配置
配置Gradle环境
- 首先在主工程配置引用
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.5-3"
}
}
- 在子工程配置
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
//...
}
dependencies {
//...
compile "org.jetbrains.kotlin:kotlin-stdlib:1.0.6"
}
安装Android Studio插件
进入File->Settings->Plugins->Browse Repositories输入Kotlin,如图
Kotlin的简单使用
创建Activity
右键New->Kotlin Activity
package com.amos.kotlinandroid.activity
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.widget.Toast
import com.amos.kotlinandroid.R
import kotlinx.android.synthetic.main.activity_main.*
/**
* Author : lkuan.
* Describe:
* Create at 2017/1/13 0013 12:19.
* Version: 1.0
*/
class KotlinActivity : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btn_kotlin.setOnClickListener { Toast.makeText(baseContext, "Only Test", Toast.LENGTH_SHORT).show() }
}
}
创建BroadcastReceiver
package com.amos.kotlinandroid.receiver
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.widget.Toast
/**
* Author : lkuan.
* Describe:
* Create at 2017/1/13 0013 12:24.
* Version: 1.0
*/
class KotlinReceiver : BroadcastReceiver(){
override fun onReceive(context: Context?, intent: Intent?) {
if (null != intent){
val msg = intent.getStringExtra("msg")
Toast.makeText(context, "msg = " + msg, Toast.LENGTH_SHORT).show()
}
}
}
简单的实体类bean
package com.amos.kotlinandroid.bean
/**
* Author : lkuan.
* Describe:
* Create at 2017/1/13 0013 12:28.
* Version: 1.0
*/
data class Worker (var name:String, var age:Int)
定义方法
var TAG = "Kotlin"
fun printDebugLog(msg : String){
Log.d(TAG, msg)
}
上面只是简单的操作,其实Kontlin和Java差不多,后续再慢慢深入......
网友评论