Kotlin 被 Google 采纳为 Android 开发一级编程语言,到现在也一年多了,我们团队从去年 10 月份开始部分项目尝试用 Kotlin 开发,到现在决定推广到全部项目,因为一旦用上 Kotlin,你就不愿意回去了。

如果你所在的项目也想尝试,我建议你先对 Kotlin on Android 开发环境—其实就是必备的库做一个充分的了解,毕竟这是开发的土壤,只有土壤肥沃了,才能长出优质的果实。

接下来分别从基础库和拓展库两方面做一下介绍。

一、基础库

以下都是创建项目时 IDE 自动会添加的,做为 Kotlin 开发必须的基础库。

1、Kotlin 编译脚本

作用是提供编译 Kotlin 源文件(.kt 编译成 .class)的脚本,由 JetBrains 开发。 配置方法:

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
复制代码

2、Kotlin 语言

命名空间 kotlin.@,由 JetBrains 开发,是 Kotlin 语言核心。参考资料 kotlinlang.org/docs/refere…

配置方法: 首先,上面说的编译脚本要起作用,要添加 kotlin-android 插件。

apply plugin: 'kotlin-android'
复制代码

其次,依赖 Kotlin 标准库,这是语言的核心。

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
复制代码

3、Kotlin Android Extension

命名空间 kotlinx.android.@,由 JetBrains 开发,提供 View Binding、Parcelable 封装,提升开发体验,参考资料 kotlinlang.org/docs/tutori…。 配置方法:

apply plugin: 'kotlin-android-extensions'
复制代码

二、拓展库

上面说了基础库,有了基础库你就可以开始在项目中使用 Kotlin 了,解决了能不能用的问题。下面要介绍的拓展库,是解决你用得爽不爽的问题

1、Anko

命名空间 org.jetbrains.anko.@,由 JetBrains 开发的专门针对 Android 的集成库,目的在于提升开发体验,涉及 Intent、弹框、Toast、日志、资源、数据库、代码布局、协程,参考资料 github.com/Kotlin/anko… 配置方法: a. 添加依赖(包含所有模块):

implementation "org.jetbrains.anko:anko:$anko_version”
复制代码

b. 按需依赖:

// Anko Commons
implementation "org.jetbrains.anko:anko-commons:$anko_version"
复制代码
// Anko Layouts
implementation "org.jetbrains.anko:anko-sdk25:$anko_version" // sdk15, sdk19, sdk21, sdk23 are also available
implementation "org.jetbrains.anko:anko-appcompat-v7:$anko_version"
复制代码
// Coroutine listeners for Anko Layouts
implementation "org.jetbrains.anko:anko-sdk25-coroutines:$anko_version"
implementation "org.jetbrains.anko:anko-appcompat-v7-coroutines:$anko_version"
复制代码
// Anko SQLite
implementation "org.jetbrains.anko:anko-sqlite:$anko_version"
复制代码

2、Android KTX

命名空间 androidx.@,Google 官方开发的 Kotlin Android 拓展库,目的在于提供 Android API 的拓展,涉及 Android 开发的方方面面。属于 JetPack 的一部分。参考资料 developer.android.com/kotlin/ktx

配置方法,按模块添加依赖:

implementation 'androidx.core:core-ktx:1.0.0-alpha1'
implementation 'androidx.fragment:fragment-ktx:1.0.0-alpha1'
……
复制代码

模块列表参考上述地址。

3、Anko 和 Android KTX 的区别

根据 Android KTX 官方介绍:developer.android.com/kotlin/ktx

The purpose of Android KTX is to make Android development with Kotlin more concise, pleasant, and idiomatic by leveraging Kotlin language features such as extension functions/properties, lambdas, named parameters, and parameter default values. Android KTX does not add any new features to the existing Android APIs.

根据 Anko 官方介绍:github.com/Kotlin/anko

Anko is a Kotlin library which makes Android application development faster and easier. It makes your code clean and easy to read, and lets you forget about rough edges of the Android SDK for Java.

我们得出二者最根本的区别是:Android KTX 只是对 Android API 的拓展,不提供功能;而 Anko 提供了更多的 Android 没有的API。

4、Anko 和 Android KTX 使用建议

虽然 Android KTX 是趋势,Google 以后会大推。 但是,到目前为止 Android KTX 都没有发布第一个稳定版本;同时,如果是历史项目,成本会比较大,需要把之前的 android.support.@ 全部换成 androidx.@,否则出现此类错误:

error: failed linking references.
error: resource android:attr/fontStyle not found.
Message{kind=ERROR, text=error: resource android:attr/fontStyle not found., sources=[/Users/huangshibiao/.gradle/caches/transforms-1/files-1.1/appcompat-v7-25.4.0.aar/a7545949dee561c01597e2709420c243/res/values/values.xml:214:5-69], original message=, tool name=Optional.of(AAPT)}
error: resource android:attr/fontStyle not found.
Message{kind=ERROR, text=error: resource android:attr/fontStyle not found., sources=[/Users/huangshibiao/.gradle/caches/transforms-1/files-1.1/appcompat-v7-25.4.0.aar/a7545949dee561c01597e2709420c243/res/values/values.xml:214:5-69], original message=, tool name=Optional.of(AAPT)}
复制代码

另一方面,Anko 相对比较成熟。

所以,截止当前,最好的方式是优先使用 Anko,等 Android KTX 成熟,然后再各取所长

Kotlin on Android 开发环境介绍相关推荐

  1. 【Android 应用开发】Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载

    . 最新下载 : 2017年 8 月 28 日 : 平台 Android Studio 软件包 大小 SHA-1 校验和 Windows (64 位) android-studio-bundle-16 ...

  2. Android 开发环境下载地址

    Android 开发环境介绍 : 目前 Android 有两种开发环境, 一种是传统的 Eclipse + ADT, 一种就是目前最新并且得到 Google 推荐的 Android Studio; - ...

  3. 【转载】 Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载

    本文转自http://blog.csdn.net/shulianghan/article/details/38023959 Android Studio 最详细开发环境下载 (特别推荐) : http ...

  4. Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载

    http://blog.csdn.net/shulianghan/article/details/38023959 Android 开发环境介绍 : 目前 Android 有两种开发环境, 一种是传统 ...

  5. 【Android 应用开发】Android 开发环境下载地址

    此文章来自于[http://blog.csdn.net/shulianghan/article/details/38023959] 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+ ...

  6. Android开发环境配置介绍

    在我们进行Appium+Android进行自动化测试时,我们需要安装android_sdk环境,安装过程发现Android SDK,Android studio,AVD Manager,SDK Man ...

  7. 《ArcGIS Runtime SDK for Android开发笔记》——(4)、基于Android Studio构建ArcGIS Android开发环境...

    1.前言 2015年1月15日,发布ArcGIS Runtime SDK for Android v10.2.5版本.从该版本开始默认支持android studio开发环境,示例代码的默认开发环境也 ...

  8. 在Windows环境下搭建Android开发环境

    标题:在Windows环境下搭建 Android 开发环境 作者:CrazyPebble 时间:2011年2月28日 声明:此文在参考其他网上资料以及笔者实践总结写下,一来自己可以做一些总结,二来给跟 ...

  9. ubuntu12.04下android开发环境搭建两个注意事项

    2019独角兽企业重金招聘Python工程师标准>>> 这两天试着在ubuntu12.04上面搭建了一下android开发环境,其实搭建环境很简单,到国内更新很及时的镜像站http: ...

最新文章

  1. uefi启动u盘安装系统_技嘉uefi启动怎么安装win8.1系统【安装教程】
  2. 今天做内存操作系统(xp装在内存中)
  3. 三次样条插值Python实现
  4. 华硕主板X99-E WS/USB 3.1固件更新
  5. OpenCV k均值聚类kmeans clustering的实例(附完整代码)
  6. 解决 Plugin with id 'com.github.dcendents.android-maven' not found.
  7. 在Windows上build Spark
  8. js控制input控件只能输入数字
  9. 基于MATLAB的人脸识别
  10. 最近 火火火 的开源项目
  11. 【LeetCode】跳步系列
  12. 三阶矩阵求特征值的快速算法
  13. 当前时间距离某个时间的天数计算_Excel如何计算当前距离某一天的时间?,原来是这样的...
  14. nuxt 更新部署因浏览器缓存导致页面错误解决方法
  15. 《数字图像处理》冈萨雷斯版 读书笔记(二)
  16. python文件查重_文件查重 我使用的是面向局部敏感的最小哈希签名的方法进行文档查重 联合开发网 - pudn.com...
  17. 为什么html浮动高度不一样,css浮动导致的高度塌陷问题及清楚浮动的方法
  18. 打造Windows10堡垒主机(V1.0)
  19. 人,确实有无限的潜力!
  20. 通达信程序接口SMII是什么?

热门文章

  1. Redis-04Redis数据结构--哈希hash
  2. Spring JDBC-NamedParameterJdbcTemplate模板类
  3. 支持服务器CPU的ITX主板,Mini-ITX主板能装28核处理器,华擎推出EPC621D4I-2M主板
  4. 区分JAVA中的对象和引用
  5. 江苏省二级python考试题库_python二级考试试题.doc
  6. 以回调形式使用startActivityForResult方法,并解决Activity被回收的问题
  7. matlab训练神经网络模型并导入simulink详细步骤
  8. matlab神经模糊推理系统
  9. MATLAB基本语法 初学者
  10. python3批量修改文件名称 代码说明