对于近两年Android开发中出现的一些新技术比如RxJava、React Native、Retrofit、HotFix等,在实际开发中已经使用的比较普遍,就个人而言,这些接触的也不算少了,但Kotlin并没有在实际开发中使用过,就自己练着玩了一下,大神绕过~
一 、简介
Kotlin 是一个基于 JVM 的新的编程语言,由JetBrains开发。JetBrains,作为目前广受欢迎的 Java IDE IntelliJ 的提供商,在 Apache 许可下已经开源其Kotlin 编程语言。
Kotlin可以理解为类似于iOS的Swift。其主要特性就是:
1.轻量级:Android对于方法数量有严格的限制,Kotlin只额外增加了大约6000个方法。
2.互操作:Kotlin可与Java语言无缝通信。这意味着我们可以在Kotlin代码中使用任何已有的Java库;因此,即便这门语言还很年轻,但却已经可以使用成百上千的库了。除此之外,Kotlin代码还可以为Java代码所用,这意味着我们可以使用这两种语言来构建软件。你可以使用 Kotlin开发新特性,同时使用Java实现代码基的其他部分。
3.强类型:我们很少需要在代码中指定类型,因为编译器可以在绝大多数情况下推断出变量或是函数返回值的类型。这样就能获得两个好处:简洁与安全。
4.Null安全:Java最常见的一个问题就是null。如果没有对变量或是参数进行null判断,那么程序当中就有可能抛出大量的 NullPointerException,然而在编码时这些又是难以检测到的。Kotlin使用了显式的null,这会强制我们在必要时进行null检查
Kotlin官网
l Kotlin-github地址
二 、Android Studio配置
1.下载插件
Settings -> plugins -> BrowseRepositories中搜索“Kotlin”,然后安装Kotlin和Kotlin Extension。
2.使用Kotlin创建Kotlin File/Class或者是Kotlin Activity
重启Android Studio后,在任意一个包下右键New , 会发现多了一个"Kotlin File/Class" 和 "Kotlin Activity"。"Kotlin File/Class"即 Kotlin类或者文件"Kotlin Activity"即 Kotlin的Activity类。
3.第一次创建Kotlin类后会弹出配置弹窗,点击进入配置页面。
4.最后会进入到build.gradle文件下。你会发现app下的build.gradle和根目录下的build.gradle文件都会出现变化。
buildscript {
ext.kotlin_version = '1.1.2-4'
ext.support_version = '23.1.1'
ext.anko_version = '0.8.2'
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
app目录下的build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
...
}
lintOptions {
abortOnError false
}
buildTypes {
debug {
...
}
release {
...
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support:support-v4:25.3.1'
compile 'com.github.bumptech.glide:glide:3.6.1'
compile 'com.jph.takephoto:takephoto_library:4.0.3'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile "org.jetbrains.anko:anko-common:$anko_version"
}
repositories {
mavenCentral()
}
三 、基本使用示例
就先对比一下java文件与kotlin类文件(以一个bean文件示例)
java文件:
public class Person {
private String name; //姓名
private int age; //年龄
private int sex; //性别 1、男 2、女
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", sex=" + sex +
'}';
}
}
对应的Kotlin文件:
class Person {
var name: String? = null //姓名
var age: Int = 0 //年龄
var sex: Int = 0 //性别 1、男 2、女
override fun toString(): String {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", sex=" + sex +
'}'
}
}
具体的关于Kotlin基本数据类型、语法格式及使用,会在接下来的文章中示例,谢谢!