原址

就在昨天谷歌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. 比可微架构搜索DARTS快10倍,第四范式提出优化NAS算法
  2. 【Ethereum】以太坊ERC20 Token标准完整说明
  3. 使用JNDI+连接池
  4. Aix下如何运行Java程序
  5. C# 代码生成二维码方法及代码示例(QRCoder)
  6. java 中 正则 正则表达式 匹配 url
  7. python读取配置文件获取所有键值对_Python读取properties配置文件操作示例
  8. 复制粘贴之后出现问号怎么办_网页没办法复制粘贴?老司机传授这3招太赞了,全网任意免费复制...
  9. 8首次登陆与线上求助
  10. 社区列表根据关注人数排序(排行榜)的实现思路整理
  11. Python代码反向解析列线图nomogram自动计算各项得分及总得分
  12. python傅里叶变换相位谱图_图像傅里叶变换的幅度谱、相位谱以及双谱重构原图像...
  13. php 微信自动全屏视频设置,微信H5视频自动弹出全屏播放的解决方案
  14. 自学Java day17 jvav网络编程 从jvav到架构师
  15. 博士申请 | 澳大利亚麦考瑞大学王岩教授招收机器学习方向全奖博士生
  16. Fire And Motion(英文原版) [转]
  17. android10版本怎么实现swf播放,swf播放器怎么用?swf播放器安卓版使用教程
  18. Pulsar 社区周报 2020-09-12 ~ 09-18
  19. 传输层协议——UDP和TCP
  20. 【Educational Codeforces Round 6A】【水题】Professor GukiZ's Robot 曼哈顿距离

热门文章

  1. 简单的redis使用watch完成秒杀抢购功能
  2. CSharpGL(30)用条件渲染(Conditional Rendering)来提升OpenGL的渲染效率
  3. SQL Server 2008性能故障排查(二)——CPU
  4. Sicily 1156. Binary tree 解题报告
  5. C# .NET ORM 框架 SqlSugar 5.X 版本
  6. 10个最棒的jQuery视频插件
  7. 【k8s】记踩坑无数后的kubernetes二进制安装详细步骤
  8. NLP --- 文本分类(基于概率的隐语意分析(PLSA)详解)
  9. Vue学习笔记之18-网络请求模块的封装
  10. helloworld代码_12 种主流编程语言输出“Hello World”