2017 对于 Android 来说是了不起的一年。在这一年中,Android 发布了很多重大的公告,包括支持 Kotlin 这一领人振奋的新语言,以及使用 Neural 网络 API 和 ARCore 构建智能交互式应用等。
让我们以 Android 开发者的视角来快速回顾一下 2017 年中所有值得注意的 Android 公告。
Kotlin — 有趣的新语言
Android 开发者早就已经对 Java 语言样板化的代码厌倦了,而几年之前,少有公司和开发者会去寻找其它可供构建 Android 应用的选择,直到他们遇上了 Kotlin。
自此这种富有魅力的语言就不断地开疆扩土,很快在5月17日 Google 就宣布了 Kotlin 为 Android 开发的官方语言。
至于后面发生了什么,地球人都知道 ;) Kotlin 万岁!
有趣的事实: Android Studio 3.0 中有超过 17% 的项目使用的是 Kotlin
Kotlin 语言风格指南
随着 Kotlin 的发展渐成燎原之势,JetBrains 的 Google 和 Kotlin 团队发布了包含了在使用 Kotlin 构建 Android 应用时可以遵循的一系列规则。
Android 架构组件
之前,Google 从来都没有就哪种架构适合用来构建 Android 应用发表观点,或者给出推荐做法。
不过在 2017 年他们终于决定用《架构组件与指南》来告诉大家他们推荐使用什么架构。
架构指南
《架构指南》是一系列的指导意见,定义可以来构建稳定,可维护和测试的 Android 应用的实际架构和最佳实践。
架构组件
架构组件是一堆被设计用来帮助我们遵循架构指南构建应用的库。这些库是模块化的,因此并没有必要把它们都使用起来。
它们是在 17 年的 Google I/O 大会上推出的,已经趋于稳定,因此如果你已经没有入手,现在就是入手的好时机了。
我已经纂写了一个系列的文章来解释架构组件,还有一个使用了它们的示例应用。
谈话视频:
免责声明: 这一个视频是由我来录的。Google 的那个你如果想要的话,可以自己找找。
示例应用:
AkshayChordiya/android-arch-news-sample
有趣的事实: 还有更多的库 (它们都将会称为架构组件的一部分) 很快就会有了。
Android Oreo — 最甜的 Android
2017 年我们可以从 Android Oreo 获得许多的功能特性。Oreo 设置了一个持续运行并消耗内存后台服务。
那有什么新东西呢?
后台限制(Background Limit)
通知频道(Notification Channel)
自动填充 API(Auto-fill API)
画中画(Picture-in-picture)
自适应图标(Adaptive icons)
字体(Fonts)和可下载字体(downloadable fonts)
自动调整大小的 TextView(Auto-sizing TextView)
你可以从如下地址了解到更多有关的 API 变化:
Android 8.0 功能特性和 API | Android Developers
Android Studio 3.0
Android Studio 3.0 发布了许多新功能,像是对 Kotlin 的支持, 新的应用模拟工具套件对开发者更加友好,而且可以帮助快速地修复性能问题。
重要的提升:
更加快速
支持 Kotlin
新的应用模拟工具
APK 分析器(APK Analyzer)
支持开发中应用实时运行(Instant app)
支持 Android things
自适应图标,可下载字体已经更多新功能
从下面的地址你还可以了解到更多:
尽管 Android Studio 3.0 已趋于稳定,不过此外的 Android Studio 3.1 已经在试用频道发布了,而它带来了更多的像是新的 DEX 编译器这样的魔性技术。
实时运行应用(Instant App) — 无需安装即可运行
Android 实时运行应用是一种无需安装就能运行 Android 应用的新方法。它是一种让用户使用 Android 应用的全新方式。
Instant apps 是借助一个 URL 来触发的,无需安装就会打开一个应用。这像技术是通过将应用分解成功能然后让每一项功能映射到 URL 来实现的,当 Google Play 接收到对特定 URL 的请求时,就会去获取到应用的那个功能的代码,再去运行这个应用。
对一个实时运行应用进行解析
实时运行应用是由多个基于一个基础功能的功能组合而成的 —— 基础功能包含了所有功能的通用逻辑。
开发实时运行应用可以帮助我们依据应用的功能特性让项目模块化(如果不是已经模块化的话),也能帮助我们裁减 APK 的大小。
开始构建你的实时运行应用的不错的方法:
Android Instant Apps | Android Developers
Project Treble
Android 版本的碎片化是 Android 生态系统最大的问题之一。终端收到最新的 Android 更新要等上好多个月,而大多数终端甚至都不会收到更新。
有了 Project Treble,Android OS 架构被重新设计,制造商可以更轻松且更快速地将终端更新上新版本的 Android,而且代价也更少。
现在有了 Treble,终端制造商只需要将 Android OS 框架更新到最新就可以了,而无需担忧供应商的实现会导致延迟更新。
Project Treble 要展现其神力尚需时日。我真心希望它能发扬光大,然后彻底解决调 Android 碎片化的问题。
有趣的事实: Google Pixel 2 在推出时承诺将持续更新 Android OS 三年。这其实是 Project Treble 将会给 Android 碎片化问题带来转机的很好证明。
Android Go —为入门级终端提供强大体验
Android Go是 Google 推出的一项举措,旨在为全球数十亿的在线用户优化 Android 的使用体验。
它是 Android 的一个优化版本,被设置用来在入门级也能很好的运行。
Android Go 起步于 Android 8.1 也就是 Android Oreo (Go 版) ,而它进行了如下配置:
内存优化: 根据平台来提升内存的使用,以确应用能在只有 1GB 或者更小 RAM 的终端上高效运行。
Google Play: Google Play 商店将会对那些使用《为数十亿用户构建应用指南》进行了优化,以为数十亿人提供良好体验的应用进行推荐并且给予更多的可见性。也就是说其它的应用将可以从商店看到并且进行安装。
功能特性
Android Go 设备将可以有两倍甚至更多存储应用;
它们会与 Google 应用的 “Go 版”一起运行。
应用平均会快上 15%
Android Go 是 Solve for India 小组于十二月份发布的,而部署了 Android Go 的设备将会在 2018 到来:
介绍跟随 Android 8.1 一起发布的的 Android Oreo (Go 版)
ARCore
2017 年增强现实技术(AR)随着 ARCore 来到 Android 中,ARCore 已成为在 Android 上构建增强现实应用程序的平台。
它被设计工作于运行 Android 7.1 (Nougat)及以上版本的 Android 设备中,但现在因为它处于开发者预览阶段,所以只支持 Pixel 和一些三星的设备。
它支持三种开发环境:
JAVA
Unity
Unreal
而且可能还有更多的渠道(指开发环境),你可以使用它们中的任一个(环境)构建你的 ARCore 应用。
它仍然在开发者预览版中,现在是折腾它的好时机。
去吧,开始折腾 AR 玩吧。
ARCore - Google Developer | ARCore | Google Developers
谷歌 Pixel 2 的 AR Stickers 就是 Android ARCore 的一个例子。
Neural Net API
Android 神经网络 API 是一种 Android C API ,旨在运行计算密集型操作的设备级的机器学习。
它为像 TensorFlow Lite 等更高级别的机器学习框架提供了一个基础抽象层。可在支持的设备上进行硬件加速推理操作,以快速执行先前训练过的机器学习模型。
它将主要辅助:
降低网络成本和延迟
提供隐私
它在 Android 8.1(奥利奥)及以上版本上可用。
阅读更多:
Neural Networks API | Android Developers
TensorFlow Lite
机器学习正在兴起,TensorFlow是 GitHub 上机器学习和深度学习的顶级开源框架之一。
TensorFlow Lite 是 TensorFlow 专门针对移动设备的优化版本
这是为移动和嵌入式设备提供的轻量级解决方案。它能够实现具有低延迟和小二进制大小的设备上的机器学习推理。它还支持 Android 8.1 中引入的新的Android Neural Networks API的硬件加速。
特性
轻量级: 能够实现具有小二进制大小和快速初始化/启动的设备上机器学习模型。
跨平台: 被设计成可在 Android 和 iOS 上运行。
快速: 有多个针对移动设备的优化,包括显着改善的模型加载时间,并支持硬件加速。
更多阅读:
TensorFlow Lite 简介 | TensorFlow
总结
我觉得有那么多令人惊异的公告的 2017 年,是 Android 最激动人心的一年。使用 Kotlin 和架构组件—指南,谷歌正让 Android 开发者的生活变得轻松。
Android Oreo 的发布使 Android 更快,更安全,更贴心。并且试图用 Project Treble 来解决碎片的问题和推出 Android Go 用于入门级的设备。
在新的神经网络 API 和 ARCore 的帮助下,通过将机器学习和增强现实技术引入 Android ,使设备更加智能和有趣。
简而言之,我看到了 Android、Kotlin 和 Android 开发者们的一个非常明亮的未来,我觉得将会有更多让人兴奋的事情出现在 2018 年。
关于作者:
Akshay Chordiya -- Android 爱好者,caster.io(一个教育网站)的老师。《Kotlin Blueprints book》的合著者,谷歌认证的 Android 开发者。