原址

就在昨天谷歌2017 IO大会宣布将Kotlin列为Android开发的一级语言,Android Studio 3.0也将在不使用插件的情况下自动兼容Kotlin语言。这也就意味着谷歌在专利流氓“甲骨文”公司的逼迫下有慢慢放弃使用Java的想法,当然,短期内想谷歌完全摒弃Java那是不可能,因为当前Android所有的开发生态基本都建立在Java语言之上,但是,某种意义来说这是谷歌对后面Android开发的一种态度或者一种趋势。而且Kotlin本身是一个非常优秀的语言,其简洁的语法,无缝对接Java都是非常吸引人的。

什么是Kotlin?

Kotlin是一种在Java虚拟机上执行的静态类型语言,它是由JetBrains开发团队创造的,目前它能够支持在服务端、JavaScript、Android上使用,今天我们主要介绍它在Android上面的一些特性。

Kotlin无缝对接Android开发

  • 兼容性:Kotlin能够运行在JDK6以上,意味它能够运行在更老的设备上面
  • 性 能:由于和Java具有相似的字节码结构,所以Kotlin语言和Java运行一样快,而且由于对内联函数和lambdas 表达式的支持,甚至有些时候比Java运行还要快
  • 大 小:Kotlin的Runtime lib非常小,小于100K。所以运行出来的APK文件和原生的差不多大
  • 编 译:对增量编译支持非常好,它和Java的增量编译一样快
  • 易用性:学习非常简单,和Java的语法很相近,但是写起来又更爽利。借用一些插件能够自动让Java和Kotlin语言自由装换,这也意味着当前项目的代码能够无缝切换到Kotlin了。

它还有一些额外的优点,比如空安全(如果对象可以为null,必须显式声明),函数式编写等等。举个和简单的例子来证明Kotlin的易用和简洁性:

1
2
3
4
5
data class Student(
var id: Long,
var name: String,
var sex: String
)

这就已经新建了一个Student类,他会自动帮你建立好对各个属性的索引和基本方法.

在Android中,使用Kotlin的扩展,能够提供一些额外的功能。比如你对一个view进行赋值,它是这样实现的:

1
2
activity.hello_tv.setText("hello world")

其中hello_tv就是你在xml布局中对应的id。

怎么在Android Studio中使用?

如果你使用的是Android Studio 3.0,你可以直接使用。如果使用的是Android Studio 3.0以下,可以通过引入插件和依赖包的形式。

其它版本可以通过插件市场下载安装kotlin插件

安装成功后重启Android Studio。

这个时候按照正常的新建项目逻辑新建一个Android项目,自动生成MainActivity的java文件。在这个类中通过help - find action -输入 Covert java file to kotlin file点击,就可以发现当前的文件自动转换成kotlin类了。

安装完插件后其实开发环境已经基本搭建成功。我们根据右上角的提示,增加对应的build配置信息

在当前app的build文件中自动添加了

1
2
3
4
5
6
7
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
...
dependencies {
...
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
}

在当前项目的build 文件中自动添加了

1
2
3
4
5
6
7
8
9
10
buildscript {
ext.kotlin_version = '1.1.2-4'
...
dependencies {
...
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
...
}
}

如果你需要扩展功能,需要在app下面引入扩展插件功能

1
apply plugin: 'kotlin-android-extensions'

引入插件功能后意味着你能够使用扩展功能,具体有那些功能,可以参考官方文档。

接下来你就可以开心使用Android Studio撸代码啦。

怎么学习Kotlin?

由于Kotlin的语法和Java及其相像的,所以如果你有Java基础,学习起来应该是非常容易的。而且Kotlin也有一些开源社区提供的中文同步网站,如果你英文不错建议直接看英文原版本文档,总的来说上手还是非常容易的。

总结

作为一名程序员,时刻保持学习新的东西和动力和热情是非常重要的品质。谷歌有推广Android Studio的成功经验,而且无缝对接Java语言的巨大优势,会让很多Android开发人员切换更加容易,所以有理由相信Kotlin语言可能是Android 的未来。

人生苦短 须用Kotlin相关推荐

  1. Kotlin威胁、Python逆袭,2018年程序员需要升级哪些技能?(附报告下载)

    来源:CSDN 本文共6700字,建议阅读10分钟. 本文从App开发.Web开发.安全和系统管理.数据科学四大方面讲述了2018年开发者运用的工具和获得高薪的技能. [ 导读 ]近日,著名的技术书籍 ...

  2. 【Bugly 技术干货】Android开发必备知识:为什么说Kotlin值得一试

    1.Hello, Kotlin Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly 邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 1 ...

  3. Kotlin入门简介

    Kotlin的"简历" 来自于著名的IDE IntelliJ IDEA(Android Studio基于此开发) 软件开发公司 JetBrains(位于东欧捷克) 起源来自JetB ...

  4. 第3章 Kotlin语言基础 《Kotlin 极简教程》

    2019独角兽企业重金招聘Python工程师标准>>> 第3章 Kotlin语言基础 掌握基础,持续练习 学习任何东西,都是一个由表及里的过程.学习一门编程语言也一样.对于一门编程语 ...

  5. Kotlin学习笔记 第二章 类与对象 第一节类与继承(补)

    参考链接 Kotlin官方文档 Kotlin docs | Kotlin 本系列为参考Kotlin中文文档 kotlin官方文档2020版.pdf-其它文档类资源-CSDN下载 第二章 第一节 类与继 ...

  6. Kotlin学习总结(1)——Kotlin快速入门

    "近一百多年来,总有一些公司很幸运地.有意识或无意识地站在技术革命的浪尖之上.一旦出在了那个位置,即使不做任何事,也可以随着波浪顺顺当当地向前飘个十年甚至更长时间.在这十几年间,它们代表着科 ...

  7. pdf 深入理解kotlin协程_协程初探

    Hello,各位朋友,小笨鸟我回来了! 近期学习了Kotlin协程相关的知识,感觉这块技术在项目中的可应用性很大,对项目的开发效率和维护成本有较大的提升.于是就考虑深入研究下相关概念和使用方式,并引入 ...

  8. Kotlin拿Android本地视频缩略图

    本文主要讨论如下三个问题: 如何拿到本地视频? 怎么拿视频缩略图? 缩略图如何压缩? 1 如何拿到本地视频? 1.1 定义数据结构 先定义媒体信息数据结构MediaInfo,以及视频信息数据结构Vid ...

  9. Kotlin 函数式编程(Kotlin Functional Programming)

    Kotlin 函数式编程 (Kotlin Functional Programming)     陈光剑 1. 函数式概述 6 1.1. 函数式简史 6 1.2. 函数式编程语言家族 7 1.2.1. ...

最新文章

  1. CVPR2020:点云三维目标跟踪的点对盒网络(P2B)
  2. element表格取消全选_ElementUi 表格取消全选框,用文字表示
  3. 清理Visual Studio2010产生的垃圾调试文件
  4. Arduino UNO WIFI开发板,学习必备开发套件
  5. Eclipse/MyEclipse安装FindBugs
  6. Redis学习-4-4 Redis安全设置
  7. python正确打开方式_Python log 的正确打开方式
  8. (转)SpringMVC学习(七)——Controller类的方法返回值
  9. Linux配置jdk环境变量(详细版)
  10. 基于单片机的交通灯控制系统设计
  11. linux c++ opencv4安装指南
  12. 赛码行测题库_行测数字推理题库
  13. 以文会友,以书传情—山西省侨商联合会召开书画艺术委员会成立大会
  14. Matlab 仿真——直流电机速度控制(2)系统分析
  15. 零 XML 多表联查
  16. 武大计算机博士很难毕业,武大的博士好考吗?好毕业吗?
  17. 第十届蓝桥杯国赛——北京两日游
  18. kali WIFI破解实战
  19. Android下拉框WIFI图标更新
  20. C# 操作Excel大全(转载)

热门文章

  1. swoole实现Timer定时器、心跳检测及Task进阶实例:mysql连接池
  2. hive优化--增加减少map数
  3. liferay控制面板--网页内容时间不一致问题解决思路
  4. Pass4side EMC E20-817认证考试题库
  5. Keepfast 是前端一个性能分析工具
  6. WinCE下直接启动自己应用程序的方法
  7. ini文件中文乱码 python_用心盘Python:中文文件处理早晚会用到的将中文转成拼音...
  8. java动手动脑之多态
  9. Quartz框架调用Demo
  10. Codeforces 600E. Lomsat gelral(Dsu on tree学习)