背景
美国时间 5月 17 日,Google
举办了成立以来一年一度的开发者大会,我更觉得是“产品发布会”。各种炫酷科技,好玩的产品以及走在世界前沿的新技术。今年的 Google I/0 2017 也不例外,除了一些高科技比如:Google Home、Google Lens
外,最令程序员关心的无非就是新一代的 Android 系统。去年 I/O 大会带来的是 Android 7.0 牛轧糖(Nougat),今年 Google 给我们带来了全新一代的 Android
系统- Android 8.0 Oreo,奥利奥。
下面一起来看看都有哪些值得我们关注的:
画中画模式:
简单的说就是多窗口的功能,比如一边看视频一边网购一边和女票聊天;
智能剪贴板:
不在是浏览器层面的“记住密码”,在新系统中,当你打开一个 app 需要输入登录信息(假如你曾经在 Chrome 输入过账号和密码),这时候 智能剪贴板 将会自动提醒你粘贴输入。这样的描述是无法体会到其中的强大之处, 只有亲手操作使用才会有真实的感受。
后台进程管理:
允许用户限制后台进程,这无疑会提升 Android 0 的续航能力。
基于机器学习的文字识别:
在 Android O 中,当用户打开任意一个文本,神经网络都能识别并了解到它是什么,并帮助用户自动选择正确的内容。
再也不用担心手指太粗、无法正确选中,总是丧心病狂戳屏幕啦,文本识别功能甚至可以帮用户判断打开选中部分所需要的app:例如选中一段地址,谷歌地图会提示弹出;选中一个邮件地址,Gmailapp也会提示弹出。
Kotlin 语言:
Kotlin 是一门支持多范式、多平台的现代静态编程语言。
- Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。
- Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有JVM的设备上运行。
JetBrains,作为目前广受欢迎的 Java IDE IntelliJ 的提供商,在 Apache 许可下已经开源其 Kotlin 编程语言。
重点是:
Kotlin 已正式成为 Android 官方开发语言。
作为压轴出场的 Kotlin 语言,而且 Google 也任命其为 Android 的官方开发语言,作为 Android 开发工程师们,有必要深入了解一下 Kotlin。
Kotlin 的特性
很多人猜测这是一款和苹果 Swift 一样专为移动平台优化的开发语言。其实,JetBrains 在 2010 年首次推出 Kotlin 编程语言,并在次年将之开源。
Android Studio 3.0 已经整合了对 Kotlin 的支持,不再需要额外安装插件。
JetBrains 表示,他们会继续支持其它平台。如果你还记得的话,去年曾有报道称 Google Android 考虑采用苹果的 Swift 语言,而 Swift 就被称为是苹果的 Kotlin。
兼容性:
Kotlin 与 JDK 6 完全兼容,确保 Kotlin 应用程序可以在较旧的 Android 设备上运行,无任何问题。
它是一个运行在 Java 虚拟机上的静态类型编程语言。Kotlin 虽然与 Java 的语法不兼容,但设计成可以与 Java 代码互操作,可复用现有的 Java 类库。
Kotlin 工具在 AndroidStudio 中完全支持,与 Android 构建系统兼容。
性能
Kotlin 应用程序运行速度与 Java 类似,非常类似的字节码结构。
随着 Kotlin 对内联函数的支持,使用 lambdas 的代码通常比使用 Java 编写的代码运行得更快。
互操作性
Kotlin 可与 Java 进行 100% 互操作,允许在 Kotlin 应用程序中使用所有现有的 Android 库。
Kotlin 能够与既有工具 / 框架如 Dagger、Spring、Vert.x 等集成,也能让既有的基于 Java 的服务端与 Android 项目逐步迁移到 Kotlin。
Kotlin 可与 Java 语言无缝通信。这意味着我们可以在 Kotlin 代码中使用任何已有的 Java 库;同样的 Kotlin 代码还可以为 Java 代码所用
占用空间
Kotlin 有一个非常紧凑的运行时库,可以通过使用 ProGuard 进一步减少。
在真实的应用程序中,Kotlin 运行时只添加了几百种方法,并且小于等于 100K 的 .apk 文件的大小。
编译
Kotlin 支持高效的增量编译,因此,对于清理构建来说,增加的构建通常与 Java 一样快或更快。
简洁和安全性
Kotlin 比 Java 更安全,能够静态检测常见的陷阱。如:引用空指针;
Kotlin 比 Java 更简洁,通过支持 variable type inference,higher-order functions (closures),extension functions,mixins and first-class delegation 等实现。
Kotlin 在代码中很少需要在代码中指定类型,因为编译器可以在绝大多数情况下推断出变量或是函数返回值的类型。这样就能获得两个好处:简洁与安全。
Google 的 Android 团队称赞 Kotlin 拥有出色的设计,是一种成熟的语言,能让 Android 应用的开发更快更有趣。那么我们作为 Android 开发者,怎能不把握技术的潮流呢。
如何学习:
I/O 大会后,各大 Android 讨论群都沸沸扬扬的议论着 Kotlin 。有的开发者产生了焦虑:”java 都没学好,现在又多出一门 Kotlin”。
其实大可不必焦虑,没必要患得患失,更没必要打乱自己的学习计划。按照形势来说,Kotlin 是必须要学的,但是并不是说 Java 就可以不学了。
从上面的 Kotlin 特性可以知道,Java 和 Kotlin 是互通的,并且在一定时间内 Kotlin 不可能完全替代 Java 进行开发的。
这个过渡期起码得有个 2-3 年,就像当年谷歌放弃 Eclipse 选择 Android Studio 一样,虽然不再支持 Eclipse ,但是很多公司还有一些 老项目 必须得在 Eclipse 上维护开发一样。
相信往后很长的一段时间,Android 项目还是以 Java 为主,Kotlin 为辅。学习 Kotlin 不是一件紧急的事,作为一个技术人,要有自己的判断力,大可不必趁着这次 Kotlin 的火热去学,只需要把学习 Kotlin 加入自己的计划即可。
编程语言都应该在思想上互通的,有编程基础的开发者学习一门新语言都是很轻松的。
另外,很多新技术新动态都是从外国来的,所以把英文学好,直接看官方文档是最好的学习方式。
学习新技术,首推官方文档
- 官网文档
http://kotlinlang.org/docs/reference/android-overview.html
- 官网
- 国内中文文档
https://huanglizhuo.gitbooks.io/kotlin-in-chinese/content/
http://www.liying-cn.net/kotlin/docs/reference/
- Kotlin 官方文档中文翻译
gitbook.com/book/hltj/kotlin-reference-chinese
- Kotlin 中文站首页
推荐的书籍
- 《Kotlin for Android Developers》
这本书是 Antonio Leiva 的一本书,展示了 Kotlin 如何用于从头开始创建 Android 应用程序。
总结
用马云爸爸的一句话结束本文:
要学会拥抱变化。世界上唯一不变的东西就是一切都在时刻改变,因此不要惧怕改变。
欢迎关注我的微信公众号,获取最及时的推送。