小兴逛Google I/O 2017(day3实况)

作者介绍:陈志兴,Google I/O 2017大会的小时光茶社特派员 ,腾讯SNG增值产品部内容中心Android组leader,主要负责手Q个性化业务、手Q WebView等项目。喜欢阅读优秀的开源项目,听听音乐,偶尔也会打打竞技类游戏。

悄然而至

今天是Google I/O 2017开发者大会的第三天,也是本次开发者大会的最后一天。早上跟同事丁教授来到会场准备停车的时候,发现Google把停车位置从之前的大空地转到不远处的大草地上了。停好车后,我们绕了一条小路快速向会场方向走去,突然发现路边有很多开了花的树,样子非常像椰菜花。不知道是之前没关注到,还是突然开的花,有一种悄然而至的感觉,就像AI一样。

作为会议的最后一天,主题会议场次相对较少。我从早上08:30开始到下午大会结束,一共参加了7场分享,下面给大家整理今天的精彩内容。

08:30-09:30 Android meets TensorFlow

今天早上的第一场主题还是跟TensorFlow相关,主要介绍如何在Android终端上面使用TensorFlow,让Android终端本地可以具有机器学习的能力。

跟其他TensorFlow的主题类似,演讲者给大家科普了人工智能、机器学习和神经网络的一些基本概念,并介绍了目前Google旗下使用到TensorFlow的产品。

接着,介绍了TensorFlow具有可移植和可扩展性,支持在Mac/Windows、GPU、TPC等硬件上训练好模型,然后在Android、iOS等其他硬件上进行推理。

在Android终端上进行推理,意味着终端需要加载TensorFlow的二进制库和模型。目前模型和TensorFlow二进制库比较大(比如Inception V3的模型接近91Mb,TensorFlow的二进制库接近12Mb),导致TensorFlow在终端上运行存在较大的性能考验。

于是Google通过减少图像检查点、权重量化、计算量化、内存映射等方式来优化TensorFlow的加载性能,目前TensorFlow的二进制代码由12Mb减少到了1.5Mb,加载性能上也得到了不错的提升,Google还在继续优化中。

现在通过以上简单的三步,就可以在Android上使用TensorFlow了,是不是非常简单,赶紧开始你的Android TensorFlow之旅吧。

最后,Google还同步了目前在将Android NN API加到Android Framework中,并且很快会进行开源。这意味着Android终端很快会成为一个完整智能体。

09:30-10:30 Past, Present and Future of AI or Machine Learning

这个主题是一场座谈会,聚集了人工智能及机器学习领域的顶级牛人:Fei-Fei Li(Chief Scientist, Cloud AI and ML, Google)、DaphneKoller(Chief Computing Officer, Calico)、Francoise Beaufays(Principal Researcher, Google)、Fernanda Viegas(Senior Staff Researcher, Google)来讨论人工智能及机器学习的过去、现在及未来。

这块没有来得及整理,大家可以直接点击这里观看视频。我比较赞同Fei-Fei Li访谈中的一句话“机器的价值就是人的价值”,让机器为人类创建更多价值吧,AI时代已经来临。

10:30-11:30 Introduction to Kotlin

这个主题是介绍Kotlin基本语法的,跟我预期的不太一样,其实更想了解Kotlin本身的一些实现原理。

这部分演讲者直接打开Android Studio进行功能展示,Kotlin在代码简洁和安全性上来说,确实比Java优秀不少。比如在简洁方面,Kotlin支持data class,各种语法糖、缺省参数、对象扩展等,在安全方面,Kotlin支持可控类型,彻底告别空指针异常问题等。

Google一直想找一门新的语言取代Java,之前较多传闻是Apple的Swift。其实Kotlin跟Swift很像,选择Kotlin而不是Swift,我猜测跟当年从WebKit上面拉取Blink分支独立发展一样,Google在技术改革上比较激进,天马行空,而Apple相对保守,哈哈。

11:30-12:30 Designing Screen Interfaces for VR

这个主题是关于如何为VR设计清晰的屏幕界面的,主要介绍了进行屏幕虚拟化和设计VR交互的时候存在的一些坑。这个主题分享内容比较简单。

屏幕虚拟化部分主要介绍两个概念,一个是预期可视距离(Intended viewing distance)来描述物品的位置,另外一个是屏幕空间单位(Screen-space Units)来描述物品在1米距离的大小。有了这两个数据,就可以在VR中绘制物品成像了。

第二部分主要是结合经验,给出一些VR设计过程中的经验值,来创建出清晰可用的屏幕界面,来让VR使用者体验起来更舒适。

12:30-13:30 Developing High Performance Games for Android

这个主题是关于如何在Android上开发高性能游戏的,这个主题前面很正经地介绍游戏的性能问题,后面相对比较坑,在给游戏打广告。

首先介绍Android游戏开发中存在的FPS低的问题,主要原因是CPU和GPU任务执行分配不均衡导致,比如有时候GPU很忙,而CPU空闲,有时候CPU很忙,而GPU空闲。

接着介绍如何分析性能问题,比如使用Android自带的System Trace及第三方的工具。

主要介绍可以通过使用Vulkan API(一个低开销、跨平台的二维、三维图形与计算的应用程序接口)来显示控制Command Buffer的提交时机等来让CPU和GPU执行更均衡。从演示的Demo上来看,使用Vulkan确实比OpenGL流畅度上面要优秀很多。

最后就是介绍韩国的某款游戏使用Vulkan的效果,全是游戏的广告,最后才放了一下使用OpenGL和Vulkan的对比。这里我就不上图了,哈哈。

13:30-14:30 Applying Built-in Hacks of Conversation to Your Voice UI

这个主题比较有意思,演讲者举了很多例子来介绍如何为Google Assistant设计良好的会话行为,让用户体验起来更便捷。

演讲者首先介绍了一个良好的沟通原则由四大部分组成:内容真实(Truthful)、信息丰富(Informative)、有关联的(Relevant)、清晰明确的(Clear)。

接下来演讲者从正反面举例来阐述前面的四个观点,内容都非常有意思,我这里就不一一描述了。其实它不仅是Google Assistant的沟通原则,也是我们高效沟通的一个原则。大家可以去专门看一下这个视频,获得掌声也是最多的。

14:30-15:30 Cranking up performance in graphics intensive Web apps and games

这个是今天参加的最后一个主题,介绍如何优化Web应用和Web游戏的绘制性能,我感觉干货还是不错的,可惜参加的开发者比较少。

演讲者首先介绍的是Image的加载问题。我们知道,当image.onload触发的时候,只是意味者此时image数据已经可用,但是可能还没有解码,所以当第一次调用的时候,会进行image的解码,这个解码过程会导致内核线程出现卡顿。

针对这个问题,可以通过Image Bitmap来解决,直接在worker线程decode完成之后,再绑定到元素节点上面。通过这种方式解决后,图片加载时间从233ms下降到30ms,提升非常明显。

接着介绍如何让动画效果更加流畅。首先介绍内核的流水线主要包括JavaScript执行,内容布局、绘制渲染等,每一个环节都会影响到流畅度。所以要提高流畅度,就是优化每个环节的执行时间。

由于Canvas不涉及到修改DOM节点,所以可以使用Canvas方式来避免Style+Layout,从而优化掉Style+Layout的耗时。

对应绘制渲染环节,Chrome 60版本上面新增了一个新的特性:OffscreenCanvas,支持离屏渲染。

比如一个正常的页面,可以先将图片在worker线程离屏绘制好,然后再提交到真正的屏幕上,提升绘制性能。

从数据上来看,离屏渲染后,内核线程的绘制渲染的耗时提升接近10倍。

有了OffscreenCanvas后,页面其实可以做很多后台渲染的优化来提升页面绘制性能,让Web页面流畅度更加接近原生。

最后

在今天,Google I/O 2017开发者大会完美落幕了。短短的三天里,Google给我们分享了很多精彩的内容,虽然没有太多闪亮的黑科技,但都是实实在在的提升,TensorFlow更是给了我们无限想象的空间。

未来已来,悄然而至!你是否已经准备好?

原文发布于微信公众号 - 小时光茶社(gh_7322a0f167b5)

原文发表时间:2017-05-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

CNKI实用技能50例

《CNKI实用技能50例》由上海知网编制,以情景带入与问题导向的方式、简单易懂的原则进行编制,适合所有对CNKI有需求的读者。1-10例请点:收藏版 CNKI...

1965

如何使用Google工作表创建杀手级数据仪表板

每家公司都围绕目标开展业务并使用关键绩效指标(KPI)跟踪实现这些目标的进展情况。对于每个目标,团队应能随时轻松地回答以下两个主要问题:

2656
来自专栏逸鹏说道

大公司都有哪些开源项目之百度

百度分享的一些开源项目偏前端。https://github.com/fex-team/ ? 1.UEditor 编辑器 UEditor是由百度web前端研发部开...

3076
来自专栏Jackson0714

Web性能探索之旅-1.无线网络基础

1462
来自专栏数据派THU

独家 | 手把手教你学习R语言(附资源链接)

作者:NSS 翻译:杨金鸿 术语校对:韩海畴 全文校对:林亦霖 本文约3000字,建议阅读7分钟。 本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言...

2977
来自专栏阮一峰的网络日志

PhotoSynth:图像识别建模技术

PhotoSynth是微软公司从华盛顿大学购买来的一项技术,主要作用是通过平面照片自动建立空间模型,目前已经接近即将发布的前夕。 举例来说,游客来到上海,外滩...

36010
来自专栏点点滴滴

Western Blot一抗的选择

4623
来自专栏腾讯移动品质中心TMQ的专栏

代码质量与技术债

我们可以通过各种类型的检测手段来给出其质量高低的度量。但是,如果直接拿出一段源代码放在我们面前,问这段代码的质量好坏时,我们又该如何作答呢?

6734
来自专栏ios 技术积累

iOS 调用苹果自带地图导航不准确问题解决

因为App需要调用第三方导航软件导航,后台返回的GPS,但是发现调用高德导航就要准确一些,调用苹果自带的地图导航偏差很大,查阅了相关资料如下

6661
来自专栏张善友的专栏

思维导图FreeMind

什么是MindMap? MindMap(被译成思维导图或心智图)是一种思维工具,由英国的记忆之父托尼-博赞发明。 MindMap是一种新的思维模式,它将左脑...

2708

扫码关注云+社区

领取腾讯云代金券