众所周知,现在Kotlin已经成为Android开发的官方语言了,而Kotlin也发布了1.1.1的正式版。Kotlin相比于Java语言有很多优势,比如空指针安全和支持高阶函数等。在Android开发中,已经有很多产品正在使用kotlin了。下面来研究一下Kotlin对Android开发究竟有哪些好处。
准备工作 首先在Android Studio中安装Kotlin插件。在Settings中的Plugin中安装。然后在配置文件中进行如下配置。
1 2 3 4 5 6 7 8 9 10 11 12 13 项目gradle文件 apply plugin: 'com.android.application' apply plugin:'kotlin-android' apply plugin:'kotlin-android-extensions' dependencies { classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.1' } app gradle文件 compile 'org.jetbrains.kotlin:kotlin-stdlib:1.1.1' compile 'org.jetbrains.anko:anko-sdk25:0.10.0-beta-1'// sdk15, sdk19, sdk21, sdk23 are also available compile 'org.jetbrains.anko:anko-appcompat-v7:0.10.0-beta-1'
从gradle配置文件中可以看到配置了kotlin-android插件,还有Anko库。Anko是Kotlin官方开发的一个让开发Android应用更快速更简单的Kotlin库,并且能让我们书写的代码更简单清楚更容易阅读。
创建项目 与往常一样,创建一个空白Activity的项目。根据准备工作 进行配置,并且Sync。同步刷新之后,需要把android studio自动生成的Java代码转换为Kotlin代码,这时需要使用Kotlin插件。 使用Java进行开发android的时候经常使用findviewbyid()这个方法,虽然说有ButterKnife的帮助,但还是很麻烦。但是Kotlin可以直接使用控件的id进行操作。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 XML布局: <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button" android:text="按钮"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text" android:text="Hello Kotlin-Android"/> Activity: import android.support.v7.app.AppCompatActivity import android.os.Bundle import kotlinx.android.synthetic.main.activity_main.* import org.jetbrains.anko.onClick class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button.onClick { text.text = "按钮生效" } // 只需要一行 } }
在Java中需要很多行的代码,在Kotlin中只需要一行就可以点击按钮改变文字,很方便吧。
除此之外再举一个例子,比如Activity的跳转,在Java代码中需要new一个Intent,然后赋值,最后跳转,至少三行代码。然而在kotlin中也只需要一行代码。
1 2 3 4 5 6 7 MainActivity: button2.onClick { startActivity<SecondActivity>("key" to "value") // 传值 } SecondActivity: text.text = intent.extras["key"]?.toString() // 接收值
总结 从上面的例子可以看出使用Kotlin开发Android项目是不是简洁了不少。Anko能做的不止这些,更多的内容请访问Gihub Anko