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(),调用一下,就解决问题了。

2 写入 SharedPreferences

读写 SharedPreferences 是一个非常常见的操作,之前还需要 调用 edit() 获取一个用于编辑的对象。现在这个操作又被 Android KTX 简化了。

3 监听 onPreDraw 回调

如果你想增加 OnPreDrawListener 的监听,Android KTX 可以帮你节省很多代码。

这几个例子都是 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 的文档,其实内容还是很多的,不仅仅是前面举的那些例子。

从动画到 Text 以及 View 的处理,其实都被 Android KTX 涉及到了,算是已经包含了大部分我们的常用操作了。

拿前面举例的 SharePreferences 写入的例子来看,它在 androidx.context 包下面。

看文档写的很清晰了,随手试一试就能知道怎么用。

不过代码更简单。

有兴趣可以看看文档和 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,到底帮你干了什么?的更多相关文章

  1. Kotlin语言Web库又添一虎将:Kweb

    Kweb是一个库,您可以利用它使用Kotlin编程语言轻松构建Web应用程序.从程序员的角度来看,它基本上消除了浏览器和服务器之间的分离.这意味着只操纵DOM的事件不需要进行服务器往返.由于Kweb是 ...

  2. 微软官方的.net命令行参数库

    虽然现在是图形化大行其道的时代,但让程序支持命令行启动对于专业的领域还是有不少需求的..net本身并没有内置对命令行解析的支持,我之前就写过一篇文章让.Net程序支持命令行启动介绍了几个第三方的命令行 ...

  3. 解决因为使用了官方xbean-2.4.0.jar 的库造成的性能问题

    最近我们游戏经常收到玩家投诉卡进度条的问题.而且后台显示执行队列和CPU使用率异常高 根据调用的JDB分析出 使用xbean 时候会调用以下代码 在设置xmlobject 时候会有一个 GlobalL ...

  4. Centos下yum安装 apache+php环境 以及redis扩赞

    一 : 安装apache 1.首先保证yum源没问题 在此不再阐述 2.安装apache yum -y install httpd 3.设置开机启动apache chkconfig --levels ...

  5. Kotlin Coroutines不复杂, 我来帮你理一理

    Coroutines 协程 最近在总结Kotlin的一些东西, 发现协程这块确实不容易说清楚. 之前的那篇就写得不好, 所以决定重写. 反复研究了官网文档和各种教程博客, 本篇内容是最基础也最主要的内 ...

  6. 远程控制你的智能电视,按键|输入|安装App等都已实现,已开源!

    一.序 Hi,大家好,我是承香墨影! 智能电视或者智能盒子,不知道大家了解多少? 这两年各大厂商生产的电视设备,基本上都是搭载的 Android 系统.既然电视本身就是 Android 系统的,我们也 ...

  7. 【译】Gradle 的依赖关系处理不当,可能导致你编译异常

    文章 | Ashesh Bharadwaj 翻译 | 承香墨影 授权 承香墨影 翻译.编辑并发布 在 Android Studio 中,Gradle 构建过程对于开发者来说,很大程度上是抽象的.作为一 ...

  8. Lottie 动画里有图片怎么办?设计师小姐姐也能帮你减少开发量!

    一.序 Hi,大家好,我是承香墨影! Lottie 是 Airbnb 开源的一套跨平台的完整解决方案,设计师只需要使用 After Effectes (之后简称 AE)设计出动画之后,使用 Lotti ...

  9. 如何看待 Kotlin 成为 Android 官方支持开发语言?

    Google IO 2017宣布了 Kotlin 会成为 Android 官方开发语言.一时间朋友圈和Android圈被各种刷屏.当然我也顺势而为发布了一篇的文章<为什么我要改用Kotlin&g ...

随机推荐

  1. mysql数据库表结构与表约束

    表结构操作: 添加单列:alter table tb_name add [column] col_name 添加一列: alter table `sudty` add `aaa` int; 添加多列: ...

  2. 仿腾讯课堂固定滚动列表ReactNative组件

    前言 由于业务需要做成类似腾讯课堂课程详情滚动的效果,考虑到后面有可能有新的呈现方式,RN提供的组件没有这种滚动控件,不如自己封装,其实去年已经写了一篇但是写的比较乱,周末花了点时间重写梳理下做的东西 ...

  3. hihoCoder #1094 : Lost in the City(枚举,微软苏州校招笔试 12月27日 )

    #1094 : Lost in the City 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi gets lost in the city. He ...

  4. c++(排序二叉树线索化)

    前面我们谈到了排序二叉树,还没有熟悉的同学可以看一下这个,二叉树基本操作.二叉树插入.二叉树删除1.删除2.删除3.但是排序二叉树也不是没有缺点,比如说,如果我们想在排序二叉树中删除一段数据的节点怎么 ...

  5. 《SpringMVC从入门到放肆》五、SpringMVC配置式开发(处理器适配器)

    上一篇我们大致讲解了处理器映射器的处理流程以及跟了一下源码的执行流程.今天我们来了解一下处理器适配器. 一.适配器模式 在阎宏博士的<JAVA与模式>一书中开头是这样描述适配器(Adapt ...

  6. POJ 3041 Asteroids(模板——二分最大匹配(BFS增广))

    题目链接: http://poj.org/problem?id=3041 Description Bessie wants to navigate her spaceship through a da ...

  7. 阿里云邮件服务器怎么设置才能在QQ邮箱访问,互发邮件?

    必须要在阿里云邮上打开IMAP和SMTP IMAP能够代发代收.在线更改.垃圾拦截,比POP3好: 记住打开的协议号: IMAP:143 带SSL:993 SMTP: 25 带SSL:465 前提是能 ...

  8. eclipse出现错误:he type java.util.Map$Entry cannot be resolved. It is indirectly referenced

    eclipse出现错误:he type java.util.Map$Entry cannot be resolved. It is indirectly referenced jre 换成6的就好了选 ...

  9. [知了堂学习笔记]_牵线Eclipse和Tomcat第二篇 —— 安装Tomcat&&添加Tomcat到Eclipse

    来了来了~~~~~我们的"织女"--Tomcat来了,牛郎们等急了吧!哈哈! 一.安装Tomcat 下载地址:http://tomcat.apache.org/download-7 ...

  10. JXLS使用方法(文件上传读取)xlsx文件读取

    1.官方文档:http://jxls.sourceforge.net/reference/reader.html 2.demo git地址:https://bitbucket.org/leonate/ ...