Kotlin 语言自从获得 Google 的官方认定以后,在 Android 开发这条路上的发展可谓是一马平川。不只是 Android Studio 3.0 开始默认自动支持 Kotlin 语言,还有一件更为惊喜的事。java
Google 于上周正式对外发布 Android KTX 预览版。android
Android KTX 是什么呢?简单来讲,它就是相似于咱们开发中经常使用的 Support Library 这种支持类库,提供一些很是人性化的 APIs 来帮助使用开发人员更简洁、更符合编程习惯地编写 Kotlin 代码。git
接下来举几个例子,来见证一下使用 Android KTX 框架先后,咱们的 Kotlin 代码究竟变化多少,是否是更加简洁、天然一些。程序员
String to Urigithub
使用 Kotlin 将一个 String 对象转化成 Uri 对象是这么写的:编程
val uri = Uri.parse(myUriString)
复制代码
Android KTX 框架在 String 的基础上进行扩展,增长更多的方法,因此上面这行代码便能这么写:canvas
val uri = myUriString.toUri()
复制代码
这样的话,你没必要再单独引入 Uri 类,写起来是否是有一种行云流水、一鼓作气的感受?微信
SharedPreferencesapp
Kotlin:框架
sharedPreferences.edit()
.putBoolean(key, value)
.apply()
复制代码
Kotlin with Android KTX:
sharedPreferences.edit {
putBoolean(key, value)
}
复制代码
canvas path 操做
Kotlin:
val pathDifference = Path(myPath1).apply {
op(myPath2, Path.Op.DIFFERENCE)
}
val myPaint = Paint()
canvas.apply {
val checkpoint = save()
translate(0F, 100F)
drawPath(pathDifference, myPaint)
restoreToCount(checkpoint)
}
复制代码
Kotlin with Android KTX:
val pathDifference = myPath1 - myPath2
canvas.withTranslation(y = 100F) {
drawPath(pathDifference, myPaint)
}
复制代码
View onPreDraw 动做
Kotlin:
view.viewTreeObserver.addOnPreDrawListener(
object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
viewTreeObserver.removeOnPreDrawListener(this)
actionToBeTriggered()
return true
}
})
复制代码
Kotlin with Android KT:
view.doOnPreDraw { actionToBeTriggered() }
复制代码
诸如此类的例子还有不少。能够看出,使用 Android KTX 极大地简化咱们的 Kotlin 代码。
只要你在 app/build.gradle 文件中引入 Android KTX 的依赖配置:
repositories {
google()
}
dependencies {
// Android KTX for framework API
implementation 'androidx.core:core-ktx:0.1'
...
}
复制代码
开发时,IDE 会自动根据你的代码智能提示,自动补全相关代码。
还有一点值得一提的是,Android KTX 使用一个全新的 包名前缀:androidx。Google 但愿未来提供 Android Support Library 包时,开发人员可以明显地区分出 *android. **与 *androidx. **这两种 API 的使用。这是一个体贴入微的设计细节,Google 想得很是周到。
Android KTX 的源码已经放在 GitHub 仓库中,目前还在完善改进当中:
关于我:亦枫,博客地址:yifeng.studio/,新浪微博:IT亦枫
微信扫描二维码,欢迎关注个人我的公众号:安卓笔记侠
不只分享个人原创技术文章,还有程序员的职场遐想
![]()