Google Glass是Google开发的可穿戴式计算机。虽然Glass基于Android,但是它从根本上来说不同于已有的移动平台。对Glass最好的描述是,“需要它时能方便使用,不需要它时也不会碍事”。Glass被设计成对智能手表、智能手机、平板电脑和计算机的补充。
2013年4月,Google Glass Explorer Edition首次提供给Google I/O 2013大会上的开发者。在2013年5月举行的Google I/O 2013大会上进行了4个有关Glass的研讨会:
● Glass开发:https://developers.google.com/events/io/sessions/332490621
● 使用Mirror API构建Glass服务:https://developers.google.com/events/io/sessions/ 332733833
● 放弃保修,破解Glass:https://developers.google.com/events/io/sessions/332704837
● 与Glass团队炉边谈话:https://developers.google.com/events/io/sessions/332695704
之后,发生了几个重要的事件:
● 2013年11月19日,Google正式发布了本地的基于Android的Glass Development Kit (GDK) Sneak Peek,所有开发者现在可以为Glass构建基于Android 4.0.4(API Level 15)的本地应用。
● 2014年4月15日,Google宣布基于Android 4.4.2(API Level 19)的Glass重大更新。
● 2014年5月15日,Google面向所有年满18岁的美国居民发售Glass Explorer Edition,并提供美国的售卖地址。
更多有关如何设计和开发Glass应用(也被称为Glassware)以及Glass平台细节的Glass相关研讨会被列入计划(详见https://www.google.com/events/io/schedule)。
现在是开始学习Glass开发的最佳时间;如果还需要更多理由,请看第1章的1.1节“为什么选择Glass?”。如果对Glass开发感兴趣,当然需要看看Google I/O 2013和2014大会上有关Glass的视频。另外,Google Glass的开发者网站(https://developers.google.com/glass/)上有许多关于Glass设计、开发和发布的优秀文档。但是还没有附带针对每个重要Glass开发主题使用GDK和Mirror API的工作代码示例的入门教程。这正是本书所要提供的。
本书主要内容
本书共10章,涵盖所有重要的Glass开发主题。
第1章“入门指南”:在该章中,会讨论几个关于Glass和Glassware的一般性主题,比如为什么选择Glass?什么是Glass和Glassware?你能使用GDK Glassware和Mirror Glassware做些什么?为什么选择本书?本书适合哪些人阅读?此外还会列出流行的Glass开发网站。
第2章“你的第一个 GDK应用”:首先会介绍配置GDK Glassware开发环境的详细步骤,无论是使用Mac、Windows还是使用Linux。然后会讨论如何设置Glass为开发做好准备,以及如何在Glass上运行示例GDK应用。最后会介绍通用模板Glassware,你将用它新建GDK应用,此外还会向你展示构建第一个GDK应用HelloGlass的入门教程,该应用会带有十分不错的功能,比如菜单活动、文本转语音和语音识别。
第3章“Glass用户界面”:在该章中,你将进入Glass的精彩世界,并学习使用GDK可以为Glass应用构建何种UI元素。本章将使用完全测试过的示例代码向你详细介绍主要的Glass UI元素——时间轴、Glass风格卡片、动态卡片、沉浸模式、菜单项和手势,这些示例代码会为你展示如何渲染标准UI内容、来自XML布局的内容和使用Android的Canvas 2D和OpenGL ES 1.0及2.0创建的内容。在该章的最后,对于可以使用GDK构建何种应用,以及何时使用何种UI元素或是它们的组合,你会有一个基本的理解。
第4章“摄像头与图像处理”:在该章中,你首先将学习如何使用Glass摄像头拍照,包括简单方式和自定义方式,其中自定义方式允许在拍照前预览和缩放。然后会简要地介绍如何浏览Glass所有目录中的照片。此后会一步步讨论一些常见而实用的图像处理任务,包括条形码和QR码识别、OCR、图像Web搜索和OpenCV。还会介绍如何在需要时将最好的开源库集成到你自己的应用中,以及如何在应用中调用它们的API。阅读完本章,你将做好准备使用所有种类的图像处理技术,探索自己的优秀应用创意。
第5章“视频:基础和应用”:在该章中,你首先将学习基本视频拍摄和带有预览的自定义视频拍摄,并看看视频在Glass上是如何播放的。然后会讨论如何使用OpenCV在提取自视频的帧上添加图像效果。FFmpeg是一个十分强大的视频处理库,本章会详细介绍如何将它与你自己的应用集成起来,还会介绍各种视频滤镜效果的命令。最后会详细介绍一个YouTube视频搜索播放应用,它可以用作一个成熟的卡拉OK应用的基础。
第6章“语音与音频”:在该章中,会介绍很多语音和音频相关的主题,从标准Glass语音输入,高级和低级方式的音频录制和播放,到各种音频处理示例,包括音符探测、DTMF按键音探测以及歌曲识别。视频和音频是我们与他人或设备交流通信必不可少的部分,所以你可以期待看到像你一样的开发者开发的在此领域富有创新意义的应用。
第7章“网络、Bluetooth与社交”:在该章中,首先会介绍如何使用推荐的HttpURL- Connection类实现基本的HTTP GET、POST和文件上传操作。然后将讨论如何完成低级Socket编程并让Glass分别作为客户端和服务端与其他Android或iOS设备通信以进行数据交换。此后会详细说明如何在无需Wi-Fi的情况下使用Classic Bluetooth在Glass和其他Android设备间进行通信。接着会介绍有关BLE支持的令人兴奋的主题,如何让Glass用作BLE客户端以及如何使用Samsung Galaxy S4智能手机或iOS设备作为Glass和BLE设备间的桥梁。最后会向你展示如何使用Apple推送技术让你在数秒内向WhatsApp或WeChat好友分享Glass上新拍摄的照片。
第8章“位置、地图与传感器”:在该章中,会详细讨论如何获取当前的位置并显示地址和地图,如何缩放地图,以及如何基于位置信息查找附近的商业信息。然后会介绍Glass支持的8种传感器,如何探测头部运动和方向,如何探测Glass振动,如何开发金属探测器,以及如何为应用添加指南针支持。最后会概括构建一个行星探测器Glass应用的步骤。
第9章“图形、动画与游戏”:在该章中,会介绍常用图形和动画API并展示一些运行在Glass上的演示程序,可以将这些演示程序用在你自己的简单Glass应用中。然后会非常详细地讨论如何在Glass上配置并运行三个流行的开源游戏引擎(Cocos2d-x、libgdx和AndEngine)。你将学到如何运行这三个游戏引擎的一些示例并与它们交互,比如如何使用引擎创建新的应用。最后,你将学到如何使用Glass旋转向量传感器来用头部运动控制游戏。阅读完该章内容,你将能在继续令人兴奋的游戏开发旅程前很好地掌握这几个强大的工具。
第10章“Mirror API”:在该章中,将详细讨论如何为Mirror API应用开发配置环境,以及如何部署Glass Mirror API以快速开始PHP项目到自己的服务器和部署Java项目到Google App Engine。然后会通过几个示例详细介绍Mirror API的主要构成部分,包括时间轴和静态卡片、联系人、订阅和位置。此外还会向你展示如何构建一个混合应用,它从Mirror应用启动GDK应用并从Mirror应用传递信息到GDK应用。你也会在Mirror应用中重用第7章的Java图片上传代码来上传照片到服务器以做进一步处理。最后会展示一个完整的Mirror API应用,该应用让你查看并搜索16支NBA季后赛球队的每一名球员。
在开始之前
笔者实际书写上文是在完成本书编写之后。笔者花了6个月的工作日晚上和周末的时间,学习并熟悉GDK和Mirror API,并开发和测试了许多示例,以此来证明Glass真正能做些什么(就如上文概述的那样),还编写了有关如何运行和使用这些示例的入门指南,并且检查和解决了每个已知的问题。
无论你的背景和兴趣是什么,本书覆盖了广泛的Glass开发主题的一些示例,它们会激发和帮助你在开发自己的优秀的Glass应用时快速开始。希望笔者在本书上所花费的数百小时,能为你在令人兴奋的Glass平台上开发节约很多时间。
开始Glass开发世界的奇妙旅行吧!如果在这段旅程中有任何疑问和意见,可以任何时间发邮件,你会在24小时内收到答复。