官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
Posted 承香墨影
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?相关的知识,希望对你有一定的参考价值。
![官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?](https://image.cha138.com/20210401/a427eee44b0a461d91242fba7741b8d5.jpg)
Kotlin KTX
大家好,我是承香墨影!
2月5号的时候,Google 发布了一款 Kotlin 的扩展库,叫 android KTX,不过现在还处于预览版的状态。它能使 Android 上的 Kotlin 代码更简洁,从而提高开发者的效率和使用体验。
Android KTX 其实就是一个 Kotlin 代码的扩展库,Google 把我们开发的时候,比较常用的一些代码块,进行封装,然后在这个基础上,提供更良好的 API,供开发者使用。举个例子:以前你需要些三五行代码才可以实现的功能,用上 Android KTX 之后,一行代码搞定了。意不意外,惊不惊喜!
说明白 Android KTX 是什么之后,你是不是想说,这不就是 Java 下的 XxxUtils 库么?
其实还真就是一样的,只是因为 Kotlin 的 Extensions 特性,让这个扩展库看着更无缝了,就像是在使用一些原生的 API 一样。
举个例子
说的那么好,我们上几个个官方提供的例子,来看看 Android KTX 的方便之处。
1 字符串转 URI
通常我们需要使用 Uri.parse()
方法,来将一个 String 对象转换成一个 Uri 对象。但是 Android KTX 为 String 增加了一个扩展函数toUri()
,调用一下,就解决问题了。
![官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?](https://image.cha138.com/20210401/f9a969b75e664ab389d2a38cfb717f33.jpg)
2 写入 SharedPreferences
读写 SharedPreferences 是一个非常常见的操作,之前还需要 调用 edit()
获取一个用于编辑的对象。现在这个操作又被 Android KTX 简化了。
![spdemo 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?](https://image.cha138.com/20210401/96fb1024351b4c588431d6135285e552.jpg)
3 监听 onPreDraw 回调
如果你想增加 OnPreDrawListener 的监听,Android KTX 可以帮你节省很多代码。
![doPreDraw 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?](https://image.cha138.com/20210401/7adc7d697fcb423cb2dd8eae914e6b80.jpg)
这几个例子都是 Google 博客中提及的例子,应该算是比较有代表性的了。从例子中可以看出 Android KTX 做的就是精简代码的事情,让我们开发起来更简洁和高效。
如何使用
虽然 Android KTX 现在还是预览版,但是你依然可以体验它。只需要在 Gradle 中添加依赖即可。
repositories {
google()
}
dependencies {
// Android KTX for framework API
implementation 'androidx.core:core-ktx:0.1'
...
}
同步一下即可使用,非常的方便。
需要注意的是,毕竟是预览版,可能会有不确定的问题,所以 Google 推荐在正式版来临之前,千万不要在商业项目中使用它。
同时 Google 表示,预览版只是一个开始,在接下来的几个月里他们会根据开发者的反馈和贡献,对 API 进行迭代,会在迭代的过程中,考虑 API 的兼容性。最终可能计划将 Android KTX 作为 Android Support Library 的一部分。
感受到 Google 的诚意了吧?让我们拭目以待吧!
Android KTX 的更多细节
毕竟是一个预览版,本身来说到这里就已经算是结束了,不过我们还是要看看文档和源码来分析一下。
简单阅读一下 Android KTX 的文档,其实内容还是很多的,不仅仅是前面举的那些例子。
![Packages 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?](https://image.cha138.com/20210401/096a19e147fa4211abdda9c72857eb04.jpg)
从动画到 Text 以及 View 的处理,其实都被 Android KTX 涉及到了,算是已经包含了大部分我们的常用操作了。
拿前面举例的 SharePreferences 写入的例子来看,它在 androidx.context
包下面。
![sp-dome 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?](https://image.cha138.com/20210401/1e4ec1146a0b46d7a8c56e72f012399f.jpg)
看文档写的很清晰了,随手试一试就能知道怎么用。
不过代码更简单。
有兴趣可以看看文档和 Github 上的代码。
Doc:
https://android.github.io/android-ktx/core-ktx/
Github:
https://github.com/android/android-ktx
Android KXT 的代码都很简单,不会包含大段的代码,都是一些小功能的封装,有兴趣直接上 Github 上阅读即可。
简单阅读了代码之后,感觉这个库吧,不会有什么大坑,自己公司有兴趣都可以参考着自己写一个扩展库出来。可以放心使用,不过还是期待正式版的发布。
你对 Google 发布的 Android KTX 有什么看法?不妨在留言区留言讨论一下!
推荐阅读:
以上是关于官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?的主要内容,如果未能解决你的问题,请参考以下文章
谷歌发布 Android KTX 预览版:提供相应 API 层,让Kotlin开发更简洁