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

Google 开发技术周刊 089 期

Room 和 Lifecycle Architecture Components 发布了 1.0 稳定版本。 大家可以在生产中使用这些类库了。通过他们可以降低模板代码的篇幅,避免了重复造轮子。

链接: Announcing Architecture Components 1.0 Stable公布架构组件1.0稳定


Google Play Service SDK 的 11.6.0 有了重大更新,API 接口变得更加简单,线程调用更安全,同时内存调用效率也更高。GoogleApiClient 类已经被弃用,而新增了一些相对独立的 client 类方便大家调用。

链接:Migrating to the new Play Games Services APIs


TensorFlow 1.4 已经发布,Keras和相关数据集已经被集成到了核心包中

链接:Announcing TensorFlow r1.4谷歌正式发布发布TensorFlow 1.4


Tangent 是一个免费的,开源的 Python 库,可用于自动微分,可以方便用于通过更加直观的方式进行梯度运算

链接:Tangent: Source-to-Source Debuggable Derivatives谷歌开源「Tangent」:一个用于自动微分的源到源Python库(附API概述)


Google Cloud DNS 服务现在支持 “域名系统安全插件”, 即 DNSSEC。 开发者及其目标用户均可以享受到由 DNSSEC 所提供的安全服务,而无需额外的维护工作。

链接:DNSSEC now available in Cloud DNS


Google Cloud Datagrep 的beta版本近期迎来了第一个更新,本次更新中包含全新的 UI 设计,任务调度和丰富的样本采集方式

链接:Scheduling and sampling arrive for Google Cloud Dataprep


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

Yuan@GDSub Team

首个切片网络字体 — Noto Sans SC Sliced 开放试用

Noto 是一个旨在支持世界上所有语言的字体项目。在这个字体系列中,Noto Sans 简体中文切片 (Noto Sans SC Sliced),提供了切片优化,同时包括了 Light,Regular 和 Medium 等三种字重。

注意:该系列字体的切片优化仅适用于支持 unicode-range 的浏览器

自 2015 年以来,Google Fonts API 又可以在国内使用了,但国内用户在网页中使用中文字体的时候会遇到这样一个问题:拉丁文字体文件大小通常只有 100-400 KB,其他书写系统的字体文件大小通常在 200-600 KB 之间,而 Noto Sans 简体中文字体文件大大(约19MB),因为它包括了 44683 个字符。

如果减少了字体文件大小和网页字加载的延迟时间,那么中文网页字体用户的体验将会有很大改善:在任何大型文档中,都有字符使用模式。通过扫描中文的网页,然后模型会挑选出哪些字符最有可能一起出现,通过静态子集切片策略将所有 44683 个字形排列成 102 个切片。

使用这种方法,整个网页似乎都是在使用 Noto Sans SC,而事实上是只加载了该页面所需的一组字体片段,这样会比加载整个字体要快得多。使用 Google Fonts API 的主要优点是可以进行跨站点缓存,并且由于可以跨站点使用此字体的每个切片,因此延迟加载字体的好处将会随着时间的推移而增加。

有关 Noto 的更多信息,可以查看原文页面上 Noto 的其他部分,也可以访问google.com/get/noto 。另一个版本的 “Noto Sans SC” 系列也可以在这个页面上使用,它不支持切片优化,但是包含更多的样式。

如何使用呢?

只需要在 CSS 文件里加上下面这段代码即可

@import url(//fonts.googleapis.com/earlyaccess/notosansscsliced.css);

使用示例

font-family: 'Noto Sans SC Sliced', sans-serif;

另外

为了帮助 Google 开发他们的切片技术,使 CJK 网页字体加载速度更快,可以在网页中添加一个很小的 JS 库来与 Google 字体共享延迟指标。 这个库会访问 HTML5 Performance API,并将网页效果指标发送给 Google。 这不会收集用户特定的数据。这个JS库用于收集以下信息:

  1. 下载字体切片的时间指标
  2. 下载 Google Fonts CSS 文件的时间
  3. 页面加载时间

要使用这个 JS 库也很简单,只需要将以下代码添加到 <head> 标签的下面即可:

<script src="" async></script>

编译:谷饭  原文:Google Fonts 配图:Google Fonts Twitter