返回博客首页
← 所有文章

Google I/O 大会移动端收获

2018 年 5 月 17 日 — 作者:Jen Looper 和 Veselina Radeva

在过去的一周里,Jen 和 Veselina 参加了 Google I/O 大会,也被称为“极客的科切拉音乐节” - 一个关于所有 Google 产品和所有 Google 粉丝的盛大大会。

作为 Women TechMakers 的成员和新的 Web GDE(Google 开发者专家),我很高兴看到许多我通常只在网上见到的同事,包括一位我合作了至少七年的珍贵同事,但从未见过面!这是一个见面和联络的好机会。--Jen

Vessy 和 Jen 参加了 I/O!

除了在大会期间举行的所有社交活动,包括大型电子音乐会和灯光秀外,与会者还参加了大量演讲,所有这些演讲都可以在 YouTube 上观看。在两天的时间里,我们享受了几个主题演讲、小组讨论、新产品的介绍,以及对成熟产品和移动及 Web 技术的深入探讨,办公时间、代码实验室和沙箱,在那里你可以尝试新事物。还有一些“鼓舞人心的”演讲,这是今年 I/O 的一个新角度,试图将新声音带到舞台上,并从产品的讨论中扩展出来。

对于许多女性与会者来说,活动始于一场有趣的 Women TechMakers 晚餐,有美味的食物、有趣的鸡尾酒、长长的康茄舞队伍,以及与新朋友跳舞的相当数量。在大会上,与女性进行的一些最佳非正式讨论是在午餐期间进行的,她们总是愿意聊天。

主题演讲:我们来谈谈主题演讲。这些演讲总是很有趣,一半的乐趣是观察你的 Twitter 订阅源,查看对实时流中显示的内容的反应。在大会开始时有一个主要的主题演讲,然后是一个开发者主题演讲,然后是一些更小、更专注的主题演讲。在我们参加的其他小组讨论式主题演讲中,包括

Google 主题演讲

  • Google 对“人人皆可 AI”的承诺包括一个感人的无障碍演示,其中一位截瘫患者帮助 Google 开发了一种使用莫尔斯电码通过轻拍而不是键盘进行交流的系统。更令人担忧的是,在某些人看来,引入了“Duplex”,Google 的对话式 AI 能够通过模仿人类语音通过图灵测试。演示中 AI 给一家餐厅打电话预订晚餐,即使面对误解和英语学习者问题也能做到。Twitter 上充斥着难以置信和不安的声音

  • 开发者主题演讲

    开发者主题演讲感觉上少了些“障眼法”,产品经理们展示了他们最新的最棒的产品。

    • Stephanie Cuthbertson 谈到了 Android 的三个主要目标:更便捷的分发、更快的性能和更好的用户参与度。具体来说,新的发布格式,如新的 Android App Bundle 正在推出,以帮助使应用更小,从而推动安装。示例包括一种新的方法,可以动态地只交付 /res 中特定设备需要的资源,以及一种“试用后再购买”的方式,承诺推动 Google Play 的安装量。

      Android Jetpack 是一个大型的工具和库套件,用于管理应用程序的架构,其中突出了“切片”,应用程序的元素,可以被其他应用程序外部使用。

      Android Studio 中新的超快速 Android 模拟器的演示获得了热烈的掌声,以及一个能量分析器和一个 ADB 连接助手。

      最后,在 Android Studio 中展示了用于构建 Android 切片 的模板,并提供了一个简洁的界面,可以轻松构建它们。

    • Brad Abrams 谈论了使用 Dialogflow 进行对话式计算,这是一种利用自然语言处理构建机器人界面的好方法。与 Google 助理的合作变得更加容易了。

    • Tal Oppeheimer 讨论了 PWA,指出 Google.com 本身就是一个 PWA,并展示了 Chrome OS 如何开箱即用地支持 PWA。当她说 Chromebook 的采用率在 2017 年增长了 50%,并且现在可以使用 Chrome OS 在 Chromebook 上运行 Linux 时,获得了最大的掌声!

    • Jia Li 与 AI 合作,谈论了 第三代 TPU,它正在为 TensorFlow 提供强大而快速的机器学习功能。事实上,你可以使用 Cloud Auto ML 在云端构建自己的 AI,只要你提供数据。使用云架构可以避免机器学习中复杂的 Dev Ops。TensorFlow 世界中最新、最棒的是 Tensorflow.js,它是 TF API 的 JavaScript 实现,TensorFlow Lite(用于移动和嵌入式设备),以及 ML Kit,所有这些都在大会后期的几个会议中进行了更深入的探讨。

    • Francis Ma 谈论了 Firebase 中的新集成,包括 Crashlytics、Fabric 和 Google Analytics,使分析应用的性能变得更加容易。但最令人兴奋的是 ML Kit 的公开测试版,它允许你使用设备上或云端机器学习的力量。

    • Nathan Martz 讨论了 增强现实 的进步,包括最近发布的 AR Core,Google 用于构建 AR 体验的平台。可共享的云锚是 AR Core 的主要更新的一部分,它支持跨平台的协作式 AR 体验。尝试 Android 上的应用程序“Just a Line”,看看它的实际效果。

    对于移动开发者来说,有很多令人兴奋的会议,主要集中在 Android P 开发者版本上,还有一些关于 Flutter 的会议,Flutter 是 Google 使用 Dart 构建跨平台移动应用程序的新框架。如果你有兴趣看看他们的代码实验室,它相当不错:https://codelabs.developers.google.com/codelabs/flutter/#0.

    对于 NativeScript 开发者来说,特别感兴趣的会议包括 Android 会议,以及所有关于机器学习的会议,机器学习是今年 I/O 的一个主要关注领域。

    Android

    Android 绝对是 I/O 的主要主题之一。如果你是 Android 开发者,有很多新员工可供你试用。让我们仔细看看应用和工具的新功能。

    应用

    Chet Haase、Dan Sandler 和 Romain Guy 做了一个很棒的关于“Android 的新功能”的会议。以下是一些他们提到的改进

    • 毫无疑问,Android 的一个重大宣布是 Android bundle,它允许你打包和上传你的应用,以便 Play 商店可以根据安装应用的手机的架构、屏幕尺寸、区域设置创建许多不同的应用版本。它还让开发者有机会创建按需下载的动态功能。
    • 引入了漂亮的新应用功能,包括切片、操作和丰富通知。切片在另一个应用或 Web 中显示丰富的 UI 应用内容。它们是 Android Jetpack 的一部分,因此虽然它是一个新功能,但它向后兼容(API 19+)。操作是到你的应用的深层链接,包含一些额外的有效负载,例如在 Spotify 中播放特定的专辑。示例和操作都可以注册到应用索引,以允许设备上搜索。通知现在更丰富,支持消息图片、用户图片和智能回复。
    • 除了所有现有应用程序组件的改进之外,用于异步数据分页的新 分页库现在是 1.0 版,WorkManager 库目前是一个预览版,但很快就会推出,帮助你处理与作业调度相关的所有复杂问题。
    • Android Jetpack 已经推出;它是一组库、工具和架构指南,旨在帮助你快速轻松地构建出色的 Android 应用。
    • 弃用策略现在是所有应用和原生组件都应遵守的规定。所有新应用都需要在 2018 年 8 月之后定位到 API 26,所有新应用更新都需要在 2019 年 11 月之后这样做。所有原生组件都需要在 2019 年 8 月之后定位到 64 位架构。
    • 在应用性能分析领域,Android Vitals 提供了更多洞察,例如应用启动时间阈值、ANR 率(例如应用程序无响应率)、崩溃率、过度唤醒以及缓慢/冻结帧。Android Vitals 现在可以在 Play 管理中心使用。
    工具

    Tor Norbye 和 Jamal Eason 展示了 Android 开发工具中新酷的功能。其中一些值得一提

    • 在 Android studio 中,有一些环境增强,例如构建速度改进、更快的模拟器启动时间,以及 SQL 代码编辑支持和 Kotlin lint 检查。在调试和分析领域,有许多不错的新功能,例如 CPU 分析器中的方法跟踪、线程视图、网络分析器中的请求和响应、内存分析器中的 JNI 引用和分配跟踪,以及新的能量分析器,用于跟踪应用程序如何影响电池寿命。
    • 使用新的 导航编辑器,导航变得更加容易 - 这是一个用于管理屏幕之间导航的视觉工具,可以设置主屏幕并定义深层链接。
    • Android 支持库重构为 androidx.*。因此,命名空间中不再有版本!它附带用于自动重构的工具,这些工具会影响 java、xml 和 gradle 文件。
    • 为了进一步增强 Android 模拟器,相机和模拟器传感器现在可以显示 3D 场景以支持 AR 应用。此外,根据大众需求,现在可以创建模拟器快照和屏幕录制,并添加视频和音频。
    • 模拟器快照和屏幕录制现在已作为最受欢迎的功能之一提供。
    • 现在,Kotlin 具有更好的测试支持、lint 支持和 R8 优化。
    • 最后但并非最不重要的一点是,我们对简化动画进行了抢先预览。

    机器学习

    如果你喜欢机器学习,那么你在 I/O 大会上一定会感到幸运。演讲内容丰富、质量高,而且机器学习主题普遍出现在大多数非机器学习相关的演讲中。TensorFlow 生态系统已经有了长足的进步,基于 TensorFlow 的小型项目已经成熟,而 Firebase 新推出的 ML Kit 则是我从此次大会中获得的最大收获。让我们来看看这些领域。

    TensorFlow

    TensorFlow 开发者倡导者郭宇峰就该主题发表了精彩演讲,重点介绍了机器学习的七个步骤。

    • 收集数据

      你的数据存储在哪里?如何获取?在准备进行机器学习时,你需要解决这些问题。
    • 准备数据

      这一部分需要很长时间,因为你需要将你的数据集整理成可用的组。 Facets 是一款数据可视化工具,可以帮助你。
    • 选择模型

      哪个模型最适合你的数据和你要解决的问题?你需要线性分类器、深度神经网络分类器、深度神经网络线性组合分类器吗?
    • 训练

      使用你的训练集来训练你的模型。你的模型会做出预测,你可以测试其准确性,然后用这些预测来更新你的模型。
    • 评估模型

      “检查你的工作!”使用你的测试数据,将其通过你的模型运行,并测试其准确性。
    • 超参数调整

      通过使用你的训练数据和你的模型进行预测来微调你的模型。根据准确性,测试和更新模型。
    • 预测

      使用尚未被模型分析过的数据进行预测。它表现如何?
    郭宇峰在会议结束时提供了我们今天可以用来构建模型的工具,包括 Colaboratory,谷歌非常有趣的 Jupyter 笔记本版本。他还指出 Kaggle 内核和数据集也可用,这对数据科学家来说非常方便。谷歌自己的 Cloud ML Engine 可用于无操作 TensorFlow 训练,或使用预训练模型的 Cloud API,或者使用 Auto ML 在云端进行训练。一个机器学习 速成课程 和 TensorFlow playground 可供使用。

    ML Kit

    在 Google 机器学习世界中,有许多新的缩写需要理解,而 ML Kit,“Firebase 机器学习 SDK” 却脱颖而出。虽然 TensorFlow 是所有这些产品的基础,但很容易混淆 Auto ML、ML Kit 和 TensorFlow Lite 在生态系统中的定位。基本上,它们有不同的用例。

    • 使用 Auto ML 来使用你自己的数据并在云端进行训练。
    • 使用 TensorFlow Lite 将这些训练后的模型引入到你的移动设备和嵌入式设备中。
    • 并从 Firebase 中使用 ML Kit 使训练后的模型能够在设备上运行并与流入 Firebase 的数据集成。

    ML Kit 是通过 Firebase 进入世界的,虽然这最初看起来有些奇怪,但当你仔细想想,就会发现它很有道理。Firebase 作为 Google 的 PAAS 产品,定位为数据流入你的应用的切入点,因此与一种让机器学习算法访问这些数据的方式合作很有意义。

     

    ML Kit 的主要产品包括与 Google Cloud 的 ML API 相似的预训练模型。“ML Kit 提供了一套针对常见移动用例的即用型 API:识别文本、检测人脸、识别地标、扫描条形码和标记图像。只需将数据传递给 ML Kit 库,它就会提供你所需的信息。” 如果你不喜欢这些预训练模型,或者你需要一些更定制的东西,那么你可以外部训练模型并将其导入到你的应用中使用。 

    对于 NativeScript 开发人员来说,真是太幸运了!因为我们有很棒的 Eddy Verbruggen 在等着我们,他已经准备好了他出色的 Firebase 插件,可以随时集成 ML Kit!而且确实,我们期待的推文很快就出现了!
    Eddy 已经发布了 NativeScript + ML Kit! https://github.com/EddyVerbruggen/nativescript-plugin-firebase/blob/issue699-mlkit-support/docs/ML_KIT.md

    在设备上进行机器学习有可能以最惊人的方式真正增强我们的应用程序,并且我们的想象力和创造力可以将我们作为移动开发人员带到何处,这将是无限的。 

    我们在 I/O 大会上玩得很开心...现在,真正的工作开始了,我们要将所有这些很棒的东西集成到我们的 NativeScript 应用中!