[谷创字幕组] Google 开发技术周刊 097 期

最新版本的 Android Wear SDK 已经发布,其中包含了多项针对表盘的优化。更多详细内容请查看下面链接中的文章。

链接: Android Wear SDK and Emulator Update


TensorFlow 1.5 已经发布,升级内容包括 TensorFlow 下的 Eager Execution、TensorFlow Lite 的开发者预览版、TF 内置的 GPU 加速更新、站内文档更新等等。更多详细信息和安装指令请详见下面文章。

链接:Announcing TensorFlow 1.5


2018年3月19日是游戏开发者大会,我们将在这一天举办 Google 开发者日 (Google Developer Day)。欢迎和我们一起讨论技术革新和最新的应用平台,以及产品发布前的最佳实践经验和产品发布后的优化策略。下面链接中有报名链接。

链接:Join us for Google Developer Day at GDC 2018


现在大家可以在 Gmail 里更加方便地开发和发布插件了,用户可以更加方便地在 Inbox 中使用各种各样的工具。大家可以把 Gmail 插件发布到你的 G Suite 域名下。更多信息请戳下面链接。

链接:Publish Gmail Add-ons to your domain


golang.org 现在已经可以在中国大陆通过地址 golang.google.cn 访问了。众位中国的 Go 开发者们现在可以直接访问网站、查看官方文档和技术文章,并且下载相关资源了。

链接:Hello, 中国!The Go Programming Language


以上是本期 Google 开发技术周刊的主要内容。

Yuan@GDSub-Team

[谷创字幕组]Google 开发者周刊 096 期

CSS Paint API 也被称为 CSS Custom Paint 或者 Houdini’s Paint Worklet, 它可以让大家在 CSS 属性里设置图片的时候通过代码生成一张图片。在 Chrome 稳定版中是默认启用的。如果大家想要了解更多详细内容,请点击下面链接。

链接: New possibilities in Chrome 65


Flutter 插件的版本 21 已经可以供大家使用,其中包含了 Flutter 查看器 (Flutter Inspector)。这个查看器在 IntelliJ 和 Android Studio 都可以使用, 能够很直观地帮助大家理解程序渲染图像的内在机制。

Google Play Games Services C++ SDK 的 3.0 版本已经发布,最新的更新修复了 Nearby API 的一些 bug,改进了 Snapshots API 等等,下面链接里有 SDK 和示例代码。

OpenCensus 是 Google Census 库的开源版本,它是基于 Google 多年的优化开发完成的与厂商无关的代码库,可以自动收集应用的系统信息和相关数据,放在本地显示。同时将数据发送至分析工具。下面的文章中有相关截图和代码链接。

Universal App Campaigns 可以帮助开发者更加方便地接触用户并且扩大业务规模。它根据大家的业务目标,使用 Google 的机器学习技术在 Google Play Google.com YouTube 和广告展示网络中数百万的站点和应用程序中帮你寻找最有价值的用户。今天 Google 为 Universal App Campaigns 上线了新的互动教学项目。下面的文章中有课程的链接。

以上是本期 Google 开发技术周刊的主要内容。
Yuan@GDSub-Team

[谷创字幕组]Google 开发者周刊 95 期

 

Actions on Google 有了新的更新, 它可以兼容更多设备,并且可以通过 Smart Home 控制更多家庭设备。


PageSpeed Insights 可以告诉用户一个好的页面里有哪些很好的设计思路,而现在它可以使用来自 Chrome 用户体验报告的数据向开发者提供设计建议。而优化的评分已经很接近真实应用场景下的数据。

Apps Script dashboard 、App Script API 、Apps Script 命令行接口是三个新的工具,它们可以帮助大家进一步优化工作流,管理 Apps Script 工程。

Google Brain 团队近期通过研究成果和系统工程技术努力促进人工智能在艺术创作方面的发展 ,这是 Google AI 整体成果的一部分。有兴趣的童鞋可以看一下下面的文章,里面提到了他们团队在 2017 年的重点工作成果。包括基础研究、开源软件、数据集、机器学习所用的新型硬件、健康、机器人等等方面。

Container Structure Test 框架可以提供一种简单而强大的方式验证容器内容和结构,在过去一年里 Google 使用这个框架测试所有团队发布的容器,而现在 Google 把这个工具分享出来。

以上是本期 Google 开发技术周刊的主要内容。
Yuan@GDSub-Team

Google 开发者周刊 94 期

Google 通过提供授权管理机制和应用授权机制简化了应用管理流程,方便用户配置和维护基于 IP 的防火墙规则。

现在用户可以将 NVIDIA K80 和 NVIDIA P100 GPU 设备绑定到可抢占式虚拟机上了。其价格比普通运算实例便宜一半。对于大规模机器学习应用或者其它运算类工作的用户,可抢占式 GPU 是个不错的选择。下面文章中有相关的入门操作指南。

下面是 Google Play 团队的 2017 年总结哟。

下面是 Firebase 团队的 2017 年度总结。

介个是来自 Google Cloud 团队的 2017 年度总结。

以上是本期 Google 开发技术周刊的主要内容。
Yuan@GDSub-Team

Google 开发技术周刊 093 期

Android Things 开发者预览版 6.1 增加了新的 API, 它用于配置和管理低功耗、无线的私人网络。增加了对 Thread 协议的支持,使得 Android Things 设备能够完成边缘计算任务。

链接: LoWPAN on Android ThingsAndroid Things Developer Preview 6(中文)


针对 Android Studio 和 IntelliJ 的 Flutter 插件发布了 M20 版本。下面文章中有本次更新相关的修复内容和改进列表。

链接:Flutter plugin v20 now available for Android Studio and IntelliJ


现在大家可以通过 OAuth API 控制 Google Cloud Platform 的所有资源的访问权限,包括个人用户的 G-suite 数据。下面链接的文章中有相关的介绍的截图。

链接:OAuth whitelisting can now control access to GCP services and data


为了能够让大家更方便地使用机器学习,Google 调整了云端机器学习引擎的价格,并增加了一些新的特性,包括对 Python 和 TensorFlow 的更新。更多信息请看下面文章。

链接:Bringing Cloud ML Engine to more developers with online prediction features and reduced prices


Google 扩展了预训练的机器学习模型库,从而为大家提供更加直观的体验。Cloud Video Intelligence 是一个用于分析视频内容的机器学习 API 现在已经对外开放使用,同时还可以实现视频翻译。Cloud Natural Language Content Classification 是 Google 近期发布的最新功能,它可以自动将内容按照 700 个类别进行分类,并且增加了 7 种编程语言相关的示例代码。详见下面文章。

链接:Cloud Video Intelligence and Cloud Natural Language Content Classification are now generally available

 


大家现在可以在 iOS 上使用 core ML 部署 TensorFlow 模型了,下面文章中有相关的开发文档链接和 core ML 转换器。

链接:Announcing Core ML support in TensorFlow Lite

 


Hangouts Meet 现在已经可以通过 Google Calendar API 进行调用了。大家可以通过它来读取会议日程信息,将会议数据从一个事件拷贝到另一个事件,针对一个事件新建一个新的会议。下面文章中有相关的示例代码。

链接:Hangouts Meet now available in the Google Calendar API

 


Google 使用 Firebase 和 Unity Project 实现了一个 iOS 游戏,现在已经开源。下面文章中详细介绍了 Firebase Unity SDK,并且说明了 MechaHamster 中是如何调用的。

链接:We built an iOS game with Firebase!


Graphics API Debugger 可以帮助大家诊断应用程序在图像渲染和运行性能方面的问题。通过它,大家可以追溯应用程序的运行日志,并且单步调试每条图像渲染指令。下面文章中有相关截图和下载链接。

链接:Diagnose and understand your app’s GPU behavior with GAPID


S2 库是 Google 的全球地理数据所使用的核心地理库,目前已经开源。下面链接中有相关的介绍和 GitHub 链接。

链接:Announcing the S2 Library: Geometry on the Sphere


以上是本期 Google 开发技术周刊的主要内容。

Yuan@GDSub Team

你的 Android 应用为 Autofill 做好准备了吗?

从 Oreo 系统开始,自动填充(Autofill)功能使得用户在应用内填写信用卡、登录、地址和其他信息变得非常方便。 现在应用中的表单也可以被自动填充,用户不需要再记住复杂的密码或多次输入相同的信息。

用户可以选择多种自动填充服务。 默认使用的是 Google 自动填充(Autofill with Google)功能,但用户也可以选择他们喜欢的任何第三方自动填充应用。 用户可以在设置 -> 系统 ->语言 -> 高级 -> 自动填充服务中进行管理。

目前有什么可用的

目前,Google 自动填充支持提交信用卡、地址、登录名、姓名和电话号码。 当首次登录或创建帐户时,自动填充功能也允许用户将新的凭据保存到帐户。 如果你在你的应用中使用 WebViews,那么许多应用都可以在登录或者其他屏幕上使用自动填充功能,而且只要用户安装了 Chrome 61 或更高版本,那么你的用户现在也可以享受到自动填充功能带来的便利。

自动填充 API 面向任何人开放以实现自动填充服务。 Google 也正积极的与 1Password、DashlaneKeeperLastPass 展开合作,帮助他们实现在 Android 上的认证。 Google 将验证密码管理并将他们添加到 Play 应用市场,并作为 Play 应用市场中的一部分,其中设置里的“添加服务”按钮将链接到该部分。 如果你是密码管理员并且想要获得认证,那么请与 Google 联系

作为一名开发者你需要做些什么

作为一名应用开发者,你应用想要集成这个新功能仅仅需要做一些很简单的事情就可以了:

测试你的应用并在需要的时候注释说明你的视图

在很多情况下,在你的应用中实现自动填充功能可能不需要做任何额外的工作。 但为了确保一致的行为,Google 建议我们提供明确的提示,告诉框架自动填充的内容有关的字段。 你可以使用 android:autofillHints 属性或 setAutofillHints() 方法执行此操作。

同样,在你的应用中使用 WebViews,你也可以使用 HTML 的自动完成属性来提供相关字段的提示。 只要设备上安装了 Chrome 61 或更高版本,自动填充功能就可以在 WebView 中使用。 即使你的应用使用自定义视图,也可以定义允许自动填充功能工作的元数据

对于自动填充没有意义的视图(例如验证码或消息输入框),你可以显式地将视图标记为IMPORTANT_FOR_AUTOFILL_NO(或视图层次结构的根目录中的IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS)。要谨慎的使用这个字段,并且记住,用户总是可以通过长按 EditText 并在弹出的下拉菜单中选择“自动填充”来绕过它。

加入你的网站和移动应用

使用 Google 自动填充可以在网站和移动应用上无缝的共享登录信息 – 通过 Chrome 保存的密码也可以提供给本地应用。 但为了实现这个目标,作为应用开发人员,你必须明确声明你的网站与移动应用之间的关联。 这涉及2个步骤:

步骤1:在 yourdomain.com/.well-known/assetlinks.json 中托管一个 JSON 文件

如果你以前使用过 App Links 或 Google Smart Lock 等技术,则可能听说过数字资产链接(Digital Asset Links)文件。 这是一个放置在你的网站上一个众所周知的位置的可以公开访问的、可验证的关于其他应用或网站的声明的 JSON 文件。

你应该按照 Smart Lock for Passwords 指南获取有关如何在服务器上正确创建和托管 DAL 文件的信息。 即使 Smart Lock 是让用户登入你的应用的更高级的方式,我们的自动填充服务也使用相同的基础结构来验证应用网站关联。 而且,由于 DAL 文件是公开的,因此第三方自动填充服务的开发人员也可以使用关联信息来保护他们的实现。

第2步:用相同的信息更新你的应用的清单

再次按照 Smart Lock for Passwords 指南中的 “在 Android 应用中声明关联” 这一步骤再进行一边。

你需要使用 asset_statements 资源来更新应用的清单文件,该资源链接到你的 assetlinks.json 文件所在的 URL。 完成之后,你需要将更新后的应用提交到 Play 应用应用应用市场,并填写联盟提交表单,以便联系人上线。

当使用 Android Studio 3.0 时,App Links 助手可以帮你生成以上所有的内容。 当你打开 DAL 生成器工具(工具 ->应用链接助理 ->打开数字资产链接文件生成器)时,只需确保启用标记为“在应用和网站之间支持共享凭据”的复选框。如下图:

然后,点击“生成数字资产链接文件”,并将预览内容复制到你的服务器和你的应用托管的 DAL 文件。 请记得确保所选的域名和证书是否正确。

未来的工作

Android 中的自动填充功能还处于早期阶段。无论你是使用 Autofill with Google 还是第三方密码管理器,Android 开发团队仍在继续加大这方面的开发工作以改善用户体验。

Android 开发团队将会在以下几个方面加大开发工作:

1.Google 自动填充:Android 开发团队希望提供一个很棒的体验,所以他们将使所有的 Oreo 设备中都包含 Google 自动填充功能。并不断的改进使用场景的检测和数据质量,从而扩大可以保存更多的数据类型。
2.WebView 支持:在 Chrome 61 版本中引入了可以在 WebViews 中进行自动填充的初始支持,随着时间的推移,还需要继续测试,以加强和改进此功能,所以如果你的应用使用了  WebView,那么你仍然可以享受到这个功能带来的便利。
3.对第三方应用的支持:Android 开发团队正在与生态系统合作,确保应用按照自动填充框架的要求工作。Android 开发团队也会督促开发者将他们的应用适配到 Android Oreo 系统,确保在启用自动填充的情况下应用能够按照预期工作。更多相关信息,请查看自动填充框架的完整文档

如果你遇到任何问题或者更好的建议,请给反馈给 Android 开发团队

编译:谷创字幕组    原文:Android Developers Blog 配图:Android Developers Blog

号外! Gmail 附加组件框架已面向所有开发人员开放

目前电子邮件仍然是公司运作中很终要的一部分。在今年早些时候,Gmail 团队发布了附加组件框架的预览版一种可以帮助企业加快工作流程的新方法。发布之后,Gmail 团队看到合作伙伴开发出了很赞的应用程序,从今天开始,Gmail —框架预览版面向所有开发人员开放,任何人都可以开始开发 Gmail 附加组件。

Gmail 附加组件可让你将应用整合到 Gmail 中,可以将 Gmail 扩展出很多快捷操作功能从而可以大大提高工作效率。

Gmail 附加组件使用原生的 UI 上下文卡片(contenxt cards)创建并且可以包含简单的文本对话框,图像,链接,按钮和表单。附加组件会根据上下文的相关性自动出现,而用户只需要点击一下就可以使用附加组件相应的功能。

Gmail 附加组件很容易创建并且只需要编写一次代码,附加组件就可以在网页和移动设备上工作,并且还可以使用丰富的小部件创建自定义的用户界面。还可以根据消息的内容创建一个显示上下文的卡片附加组件。下面这个视频展示了 Gmail 团队是如何创建一个附加组件来整理电子邮件收据以及加快费用报销的。视频地址:https://www.youtube.com/embed/9cDvkVCcIWE

有视频中的演示可以看出应用的核心功能主要有三个组件。第一个组件 getContextualAddOn() 这是所有 Gmail 附加组件的入口点,在这些附加组件中,数据被编译为卡片并显示在 Gmail 界面中。由于附加组件是处理收件箱中的包含费用收据报告的电子邮件,所以 createExpensesCard() 会从消息中解析相关数据并将其显示在表单中,以便用户在提交之前可以再次确认或修改它们。最后,由 submitForm() 去获取这些费用收据数据,并将数据插入 Google 表格中的“费用”电子表格中,并可以对其进行编辑和调整,之后便可以提交给老板审批。

查看文档并开始使用 Gmail 附加组件,或者如果你想查看如何创建附加组件的过程,请跳转到 codelab ,根据 codelab 一步步的创建 ExpenseIt。虽然目前还不能发布自己的附加组件,但是可以填写这个表单在可以发布自己的附加组件时会收到相应的通知。

编译:谷创字幕组  原文:Google Developers Blog 配图:Google Developers Blog

Google 开发技术周刊 087 期

Android 8.1 开发者预览版已发布,该版本针对 Android Go 做了相应的优化,并且包含了一个新的的API 用于提高设备人工智能运算方面的性能。
链接: Android 8.1 Developer Preview

Android Studio 3.0 已经正式发布,该版本作为大的版本更新,很大程度上加速了 Android 应用程序的开发速度。

链接:Android Studio 3.0

Go 1.8 版本对于依赖库、运行时、性能和安全方面都做了相应的优化,现在该版本已经可以在标准的 Google App Engine 环境下使用了。

链接:Announcing Go 1.8 on App Engine Standard Environment

现在可以将 Gmail 功能通过开发插件的方式嵌入到自己的应用程序中了。

链接:Gmail add-ons framework now available to all developers

Chrome 63 beta 版本已经发布,其中包含动态模块引用,异步遍历器和生成器,设备内存 API 以及权限相关 UI 的修改。

链接:Chrome 63 Beta: Dynamic module imports, async iterators and generators, Device Memory API, and permissions UI changes

Google Cloud Platform 播客终于发布了第一百期,祝贺 Francesc 和 Mark 以及播客的整个团队。

链接:GCP Podcast hits 100 episodes — here are the 10 most popular episodes

在 Build Out 特辑视频中,Colt 和 Reto 一起为大家展示了通过竞争系统架构设计实现智能花园。整个过程都使用到 Task API。

链接:Who Can Build a Smarter Smart Garden? – Build Out #1

以上是本期 Google 开发技术周刊的主要内容。

Yuan@GDSub Team

用新的 TensorBoard API 构建机器学习可视化插件

TensorBoard 是一套用来检查和理解以及运行 TensorFlow 模型的可视化工具,于 2015 年 TensorFlow 开源的时候一起发布。它包含一个小型的、预先确定的通用的一系列可视化工具,并且可以适用于所有的深度学习应用程序,比如:观察失真度随时间变化或在高维空间中探索集群。可是,如果在没有可复用的 API 的情况下,对于 TensorFlow 团队以外的人想要往 TensorBoard 添加新的可视化插件确实非常困难的,所以,这就给社区留下了一个可以创建出具有创造性、美观和有用的可视化插件的可能性。


为了让更多的人可以方便的给 TensorBoard 创建新的和有用的可视化插件,TensorFlow 团队发布了一系列可以让开发者给 TensorBoard 添加自定义可视化插件的标准 API。开发者可以通过这些 API 扩展 TensorBoard 的功能,使其可以覆盖到更加广泛的应用场景。

同时,TensorFlow 团队也使用这套新的 API 更新了 TensorBoard 中已有的可视化插件,所以开发者在开发插件的时候也可以参考这些插件。TensorBoard 中目前已经包含的插件可以从  GitHub上的 tensorboard / plugins 目录获取。比如,可以查看和生成精确回忆曲线 (precision-recall curves) 的新插件:

这个插件展示了标准的 TensorBoard 插件的三个部分:

  1. 一种用于收集数据以供后续可视化的 TensorFlow 的 Summary Operations。 [GitHub]
  2. 提供自定义数据的 Python 后端。 [GitHub]
  3. 在 TensorBoard 中 使用 TypeScript 和 Polymer 创建仪表盘。 [GitHub]

另外,像其他插件一样,「pr_curves」插件也提供了一个 Demo,通过这个 Demo 我们可以学习如何使用插件以及插件开发者在开发插件的时候如何生成示例数据。为了进一步说明插件是如何工作的,TensorFlow 团队还创建了一个标准的 TensorBoard「Greeter」 插件。这个简单的插件会收集和显示在模型运行期间产生的问候语(简单字符串前面加上「Hello」)。TensorFlow 团队的建议是先研究一下(或派生)Greeter 插件以及其他现有的插件再去开发自己的插件。

Beholder 插件是一个对于如何使用 TensorBoard API 非常值得参考的例子,由 Chris Anderson 在读硕士期间创建。Beholder 可以在作为队列模型展示实时视频数据(如梯度和卷积滤波器)。点击这里可以观看它的演示视频。

TensorFlow 团队非常期待看到社区可以产生一些新的可视化插件创意。如果你打算向 TensorBoard 的插件仓库提交插件,那么你最好先通过问题跟踪器(Issues) 将自己的想法展示给 TensorFlow 团队,以便他们给你提供更多的帮助和指导。

致谢

感谢 Dandelion Mane 和 William Chargin 在创建这套 API 方面发挥了关键作用。

编译:脉脉不得语  原文/配图:Google Research Blog  校对:Millen、杨忠东

Googler 告诉你:机器学习是什么

以下是译者翻译手记,可提供给大家参考。

准备休息时看到 YouTube 推送了一个 Google Cloud 的视频 What is Machine Learning?

遂产生兴趣并打算将其翻译并发布。

视频的主讲人是 Yufeng Guo,是一名中国人,在谷歌做开发技术推广工程师(Developer Advocate)

这将是一个新的视频播放列表 Google Cloud AI Adventures – AI 大冒险,将会由 Yufeng 为大家讲述什么是机器学习,以及机器学习的一切(我瞎说的…)。

由于我对机器学习只是兴趣爱好,所以本视频中可能会出现很多专有名词,需要上网好好搜索理解,同时一些最基础的概念等,都需要再次考证,所以还有一些资料备忘等都会记录在这个帖子中,以标明出处的方式记录。

基础问题:人工智能、机器学习、深度学习的区别是什么?

via 雷锋网,英文原始文章 from Nvidia Blog

字幕行 83 – 84: Training refers to using our data / to inform the creation and fine tuning of a predictive model.

首先先挑出本句中的专有名词,搜索:

training – 应该是机器学习里较为常见的专有名词 — “训练”
fine tuning – 本词的“正确”写法或许应该是 fine-tuning,微调,在这里看到了一个挺好的解释:“看到别人一个很好的模型,虽然针对的具体问题不一样,但是也想试试看,看能不能得到很好的效果,而且自己的数据也不多,怎么办?没关系,把别人现成的训练好了的模型拿过来,换成自己的数据,调整一下参数,在训练一遍,这就是微调(fine-tune)。”
predictive model – 这里我翻译为预测模型,就是为最终的预测建立的模型
试翻译本句如下: 我们通过对数据的训练 / 创建一个预测模型并对其进行微调