2017 年 Android 领域大事件回顾

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 上开发 Kotlin 代码的官方指南

Android 架构组件

之前,Google 从来都没有就哪种架构适合用来构建 Android 应用发表观点,或者给出推荐做法。

不过在 2017 年他们终于决定用《架构组件与指南》来告诉大家他们推荐使用什么架构。

 架构指南

架构指南》是一系列的指导意见,定义可以来构建稳定,可维护和测试的 Android 应用的实际架构和最佳实践。

架构组件

架构组件是一堆被设计用来帮助我们遵循架构指南构建应用的库。这些库是模块化的,因此并没有必要把它们都使用起来。

它们是在 17 年的 Google I/O 大会上推出的,已经趋于稳定,因此如果你已经没有入手,现在就是入手的好时机了。

我已经纂写了一个系列的文章来解释架构组件,还有一个使用了它们的示例应用。

Android 架构组件

谈话视频:

探索 Android 架构组件

免责声明: 这一个视频是由我来录的。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.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 碎片化的问题。

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 开发者。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,380评论 25 707
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    wgl0419阅读 6,263评论 1 9
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,392评论 2 45
  • 今天晚上9点左右我出现了很多幻觉:大致就是别人要害我引导我的思想进入困境。 不过还好我了解了这不过是我的想法,并没...
    简洁一方阅读 170评论 0 0
  • 我这个暑假话说到现在为止好像就只看过一部电影,那算了,就写这一篇吧。 《黑客帝国》,想必很多人都看...
    洵张阅读 382评论 0 1