人生苦短 须用Kotlin
原址
就在昨天谷歌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相关推荐
- Kotlin威胁、Python逆袭,2018年程序员需要升级哪些技能?(附报告下载)
来源:CSDN 本文共6700字,建议阅读10分钟. 本文从App开发.Web开发.安全和系统管理.数据科学四大方面讲述了2018年开发者运用的工具和获得高薪的技能. [ 导读 ]近日,著名的技术书籍 ...
- 【Bugly 技术干货】Android开发必备知识:为什么说Kotlin值得一试
1.Hello, Kotlin Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly 邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 1 ...
- Kotlin入门简介
Kotlin的"简历" 来自于著名的IDE IntelliJ IDEA(Android Studio基于此开发) 软件开发公司 JetBrains(位于东欧捷克) 起源来自JetB ...
- 第3章 Kotlin语言基础 《Kotlin 极简教程》
2019独角兽企业重金招聘Python工程师标准>>> 第3章 Kotlin语言基础 掌握基础,持续练习 学习任何东西,都是一个由表及里的过程.学习一门编程语言也一样.对于一门编程语 ...
- Kotlin学习笔记 第二章 类与对象 第一节类与继承(补)
参考链接 Kotlin官方文档 Kotlin docs | Kotlin 本系列为参考Kotlin中文文档 kotlin官方文档2020版.pdf-其它文档类资源-CSDN下载 第二章 第一节 类与继 ...
- Kotlin学习总结(1)——Kotlin快速入门
"近一百多年来,总有一些公司很幸运地.有意识或无意识地站在技术革命的浪尖之上.一旦出在了那个位置,即使不做任何事,也可以随着波浪顺顺当当地向前飘个十年甚至更长时间.在这十几年间,它们代表着科 ...
- pdf 深入理解kotlin协程_协程初探
Hello,各位朋友,小笨鸟我回来了! 近期学习了Kotlin协程相关的知识,感觉这块技术在项目中的可应用性很大,对项目的开发效率和维护成本有较大的提升.于是就考虑深入研究下相关概念和使用方式,并引入 ...
- Kotlin拿Android本地视频缩略图
本文主要讨论如下三个问题: 如何拿到本地视频? 怎么拿视频缩略图? 缩略图如何压缩? 1 如何拿到本地视频? 1.1 定义数据结构 先定义媒体信息数据结构MediaInfo,以及视频信息数据结构Vid ...
- Kotlin 函数式编程(Kotlin Functional Programming)
Kotlin 函数式编程 (Kotlin Functional Programming) 陈光剑 1. 函数式概述 6 1.1. 函数式简史 6 1.2. 函数式编程语言家族 7 1.2.1. ...
最新文章
- CVPR2020:点云三维目标跟踪的点对盒网络(P2B)
- element表格取消全选_ElementUi 表格取消全选框,用文字表示
- 清理Visual Studio2010产生的垃圾调试文件
- Arduino UNO WIFI开发板,学习必备开发套件
- Eclipse/MyEclipse安装FindBugs
- Redis学习-4-4 Redis安全设置
- python正确打开方式_Python log 的正确打开方式
- (转)SpringMVC学习(七)——Controller类的方法返回值
- Linux配置jdk环境变量(详细版)
- 基于单片机的交通灯控制系统设计
- linux c++ opencv4安装指南
- 赛码行测题库_行测数字推理题库
- 以文会友,以书传情—山西省侨商联合会召开书画艺术委员会成立大会
- Matlab 仿真——直流电机速度控制(2)系统分析
- 零 XML 多表联查
- 武大计算机博士很难毕业,武大的博士好考吗?好毕业吗?
- 第十届蓝桥杯国赛——北京两日游
- kali WIFI破解实战
- Android下拉框WIFI图标更新
- C# 操作Excel大全(转载)
热门文章
- swoole实现Timer定时器、心跳检测及Task进阶实例:mysql连接池
- hive优化--增加减少map数
- liferay控制面板--网页内容时间不一致问题解决思路
- Pass4side EMC E20-817认证考试题库
- Keepfast 是前端一个性能分析工具
- WinCE下直接启动自己应用程序的方法
- ini文件中文乱码 python_用心盘Python:中文文件处理早晚会用到的将中文转成拼音...
- java动手动脑之多态
- Quartz框架调用Demo
- Codeforces 600E. Lomsat gelral(Dsu on tree学习)