2018 I/O Android 详解

Android

Android P

今年是Android发布十周年的日子,Android P Beate 版如期在大会上发布,Android P更加注重人工智能方面的探索,此版本更新有以下三个方面:Intelligence(智力)、Simplicity(简单)、Digital wellbeing(数字健康)。

更新支持:首批支持升级到P的设备有9家:Google、Nokia、vivo、oneplus、小米、Sony、Essential(Android之父推出产品)、OPPO。

Intelligence

1. Adaptive Battery

电量优化。基于人工智能根据用户习惯,减少30%的CPU唤醒,Android内置的机器学习系统,能知道你接下来何时使用某些软件以合理分配电量。

2. Adapter Brightness

亮度调节优化。根据用户习惯,在不同场景下调节不同亮度。

3. App Actions。

预测用户使用应用,根据用户习惯,在合适场景显示用户可能打开的应用。开发时,只需加入actions.xml到应用。
根据不同的使用习惯以及相关性高低,App Actions 呈现给用户不一样的内容,并且支持多种谷歌以及 Android 服务平台,包括谷歌搜索应用 (Google Search App)、Play Store、谷歌智能助理 (Google Assistant) 以及启动器 (launcher)。App Actions 很快就能和各位开发者见面。您可同时在应用中构建一个 Conversational Action 作为辅助用途,它适用于任何支持谷歌智能助理 (Google Assistant) 服务的设备,如扬声器和智能显示器。这两种类型的 Actions 均使用一套共用的意图类别。

4. slices

让开发者定义用户界面的交互式片段。(在你搜索时,会对你进行推荐,如:搜索职位,给你推荐找工作App;在你搜索地址时,将在该地的照片推送给你。)

Slices 提供一系列 UI 模板,帮助开发者在应用中呈现丰富的动态交互式内容,支持所有 Android 系统以及提供谷歌服务的平台。Slices 可以展现实时数据、滚动内容、内联行为以及与您应用相连的深度链接,因此从播放音乐到检查预约更新,用户可以做任何事情。Slices 也可以包括像是开关或者滑块一类的互动控制元素。从今天开始创建您的 Slices,很快它们就会呈现在用户眼前。

5. ML Kit

通过Firebase提供的API。ML Kit是建立在TensorFlow Kite基础上,并针对移动设备进行优化的库。

Simplicity

1. New System Navigation

新的系统导航栏,引入了全新的手势操作。取消了传统三大按键中的多任务键,直接按住 home 键上滑打开多任务,然后 home 键按钮变成了类似 iPhone X 的小白条,左右滑动可以来回查看多个应用,底部一栏就是建议你使用的应用。在多任务状态下再次上滑可以看到所有应用。

  1. Quick settings。
  2. Volume controls。
  3. Betters screenshots。
  4. Rotation confirmation。
  5. Crash dialogs。
  6. Notifications。
  7. Status bar。
  8. Work profiles。

Digital wellbeing

  1. Dashboard。显示你使用应用的详细统计信息。

2. Updated Do Not Disturb

期间不显示电话、短信、通知,可以通过设置接收重要人信息。

  1. App timer。
  2. Wind down。

Android开发生态

Jetpack

jetpack.png

在Keynote上发布了 Android Jetpack,帮助提升应用开发速度。作为下一代的 Android 组件,Android Jetpack 将支持库向后兼容和立即更新的优点融合到更多组件中,让开发者能够快速轻松地开发出拥有卓越性能的高质量应用。简单来说就是官方的组件、工具和架构库。此库完美兼容Kotlin,主要有4个模块构成:WorkManager、Paging、Navigation 及 Slices。

jetpack_donut.png

Navigation——导航组件

Navigation是 单Activity多Fragment 开发模式下的页面跳转的导航组件。官方文档介绍如下:

利用导航组件对 Fragment 的原生支持,可以获得架构组件的所有好处(例如生命周期和 ViewModel),同时让此组件为您处理 FragmentTransaction 的复杂性。此外,Navigation组件还可以让您声明我们为您处理的转场。它可以自动构建正确的“向上”和“返回”行为,包含对深层链接的完整支持,并提供了帮助程序,用于将导航关联到合适的 UI 小部件,例如抽屉式导航栏和底部导航。

和其他的Fragment管理库(如Fragmentation)相比,Navigation优势明显:

  • 专业的 开发/维护 和 测试 团队,保证代码的质量及稳定性;
  • AndroidStudio IDE专属支持,包括可视化的编辑界面,和通过鼠标拖拽对Fragment的导航管理功能;
  • 对ViewModel,Lifecycle等 官方架构组件 的支持;
  • 官方针对迁移至Navigation 的流程提供了详细的文档;
  • 更多Android开发者会使用它,您可以在网上获取非常详尽的学习资料;
  • Google爸爸官方出品,无脑支持。

Paging——分页组件

官方对于 Paging 的相关介绍:

应用中呈现的数据可能非常大,这就导致加载的开销比较大,因此,避免一次下载、创建或呈现过多数据就显得非常重要。 分页组件 让您可以轻松加载和呈现大型数据集,同时在您的 RecyclerView 中进行 快速、无限滚动。它可以从本地存储和/或网络加载 分页数据,并让您能够定义内容的加载方式。此组件原生支持 Room、LiveData 和 RxJava。

优势也是相当明显:

  • 专业的 开发/维护 和 测试 团队,保证代码的质量及稳定性;
  • 原生支持Room、LiveData 和 RxJava;
  • 官方针对分页库 迁移至Paging 的流程提供了详细的文档;
  • 更多Android开发者会使用它,您可以在网上获取非常详尽的学习资料;
  • Google爸爸官方出品,无脑支持。

WorkManager

WorkManager是一个很新颖的库,它的作用一句话概述就是:

管理一些要在后台工作的任务, ——即使应用没启动也能保证任务能被执行。

还在为使用RxJava 和 AsyncTask 在后台线程干活, 但是应用一被杀或被关闭, 这些工具就不执行了而苦恼嘛?WorkManager不是, 它在应用被杀, 甚至设备重启后仍能保证你安排给他的任务能得到执行。

  • 易于安排:您可以在 特定条件 下启动任务,同时,任务之间可以相互链接,这意味着,你可以将任务 串行 或者 并行 执行。
  • 易于取消:您拥有对任务执行的控制权,通过API您可以轻松取消计划任务。
  • 易于查询:您可以将任务进度展示在各种各样的UI上。
  • 支持所有Android版本!就像描述的一样,各个Android版本下,WorkManager的API都是一致的。

Slices

Slices 提供了一系列 UI 模板,帮助开发者在应用中呈现丰富的动态交互式内容,支持所有 Android 系统以及提供谷歌服务的平台 。

Kotlin

Play Store 中用 Kotlin 开发的应用在去年增至 6 倍,在高级开发者中有 35% 的人选择使用 Kotlin 进行开发,而且这个数字正在逐月递增。

  • Google会继续改善 Kotlin 在支持库、工具、运行时 (runtime)、文档以及培训中的开发体验。
  • 今天发布的Jetpack中包含Android KTX力图继续优化Kotlin开发体验。
  • 继续改善 Android Studio、Lint 支持以及 R8 优化中的工具对Kotlin的支持;
  • 对 Android P 中的运行时 (Android Runtime) 进行微调,以此加快 Kotlin 编写的应用的运行时间;
  • 在 “谷歌开发者专家项目” 内为 Kotlin 专门设立了一个分块;
  • 发布 Kotlin 版本的《API 参考文档》。

Android Studio

发布了Android Studio 3.2 金丝雀版,3.2主要更新如下:

  1. 引入了 Android Jetpack 支持工具,包括一款视觉导航编辑器以及全新代码重构工具。
  2. 还包含了可用于创建全新的 Android App Bundle 格式的构建工具。
  3. 用于快速启动 Android 模拟器的快照功能 (Snapshot)。
  4. 给下载及安装包瘦身的新 R8 优化器。
  5. 以及用于测量应用对电池续航影响的新电量分析工具 (Energy Profiler)。

Android App Bundle

向 Android 引入新 app 模式。利用全新发布格式 —— Android App Bundle,大幅度减少应用体积。现在您只须在 Android Studio 中构建一个应用束 (app bundle),就可以将应用所需的全部内容 (适用于所有设备) 都涵盖在内:所有语言、所有设备屏幕大小、所有硬件架构。接着,在用户下载您的应用时,Google Play 的新动态交付只会传输适用于用户设备的代码和资源。人们在 Play Store 上看到的安装包体积更小,下载速度也越快,同时也节省了设备存储空间。

Appbundle.gif

Android App Bundle 支持模块化,因此开发者可以随时按需交付功能,而不是仅限在安装过程中。您可以在最新发布的 Android Studio 金丝雀版本中构造动态功能模块。

Android 应用生态

Google Play

Play Console 的新功能和报告能够帮助您提升应用性能并扩展业务。点击阅读有关控制面板、统计、Android vitals、发布前报告、用户获取报告以及订阅面板的相关改进项。您也可以使用我们新的发布格式 —— Android App Bundle,上传、测试以及发布应用。

Instant App

作为Google应对类似小程序类应用的方案,Instant App还在更新。好像影响还不大,期待继续变好吧。国内现在影响不到,日后再学。

今天宣布所有游戏开发者都能构建即时应用 (instant app) Google Play Instant。现在 Google Play Instant 支持全球超过 10 亿台设备。

为了简化即时应用的开发,我们将在这周发布对应的 Unity 游戏引擎插件服务,以及与 Cocos Creator 的 beta 版本集成。最近,我们开始测试 Google Play Instant 与 AdWords 的兼容性,让人们能直接通过通用广告活动 (Universal App campaigns) 覆盖的所有渠道里的广告直接试玩游戏。

Android Things

在大会前一天,Google正式发布了 AndroidThings 的1.0版本。Android Things 作为 Google 旗下的一款操作系统 (OS),能够帮助开发者规模化开发和维护物联网设备。

平台现添加对 3 种新系统模组 (System-on-Modules 或 SoMs) 的支持,并承诺在接下来的三年中提供长期支持,同时让开发者自行决定是否需要扩展支持,帮助他们更容易地设计出原型并推向市场。而同时推出的 Android Things 控制台 (Android Things Console) 更是将简化产品开发推向极致,帮助开发者定期获取 Google 最新稳定性修复包以及安全升级包,从而实现从发布、管理到设备更新的无缝连接。

Android Wear

发布了新的 Wear OS的 开发者预览版,为 Wear OS 带来 Android P 平台的心功能。主要进行了一下更新:

  1. 全新省电模式
  2. 更多功耗优化,包括蓝牙连接断开时关闭 Wi-Fi 以及 后台活动与前台服务限制
  3. 通知智能回复

AR Core

参考文献

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,799评论 25 707
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    wgl0419阅读 6,267评论 1 9
  • 732. My Calendar III Implement a MyCalendarThree class to...
    ziru_SUN阅读 897评论 0 0
  • 早晨就这样醒来了 在蜜雀的声音随着花朵摇曳 在雄性野鸡铜色光芒的翅膀下 在叫不出来的名字的小鸟 秋千般抓住草叶的末...
    新文字练习生阅读 210评论 2 7
  • 一年之计在于春,2017年初春对于我们这些个装铁人来说是开了个好头。因为开工比往年早,活嘛,也相对来说多一些。15...
    张秀水阅读 448评论 0 0