Android Things新版本发布了,DP7中你需要知道的

昨天(2018.3.7),Google发布了Android Things的新版本,Developer Preview 7版本。

Developer Preview 7版本

Developer Preview 7
Date: March 2018 
Build Number: OIM1.180123.019
Play Services: 11.8.0

新版本同样适用于NXP i.MX7D、NXP i.MX6UL和Raspberry Pi 3开发板。

New in Preview 7

API changes

The following structural changes have been made to the Android Things API:

Consistent API naming. This release renames many of the existing Android Things API classes to provide a more consistent developer experience across the entire surface. See the updated API reference to review how package and class names have changed.

Better testability of Android Things apps. The Peripheral I/O API now exposes interfaces instead of abstract classes, allowing local unit tests to replace these objects with mocks and stubs more easily.

Warning: These introduce breaking changes from previous versions of the Android Things support library. To avoid throwing NoSuchMethodErrorand NoClassDefFoundError in your app, be sure to review the updated API reference and update your code to target the 0.7-devpreview version of the support library.

在这个版本中,有些Android Things的API的名称做了更改,因此原来在DP6.1版中程序,需要相应做一些修改。同时,Peripheral I/O API,用interface替代了abstract class,这样让单元测试时用mock和stub替代这些对象更加方便。

注意:因为这些改变,原来的APP可能会产生NoSuchMethodError和NoClassDefFoundError,这就需要对照API reference把代码升级到可以适配0.7-devpreview。

Note: All apps must be updated to use the 0.7-devpreview version of the Android Things support library. Previous versions are not compatible with Developer Preview 7.

在DP7环境下运行的APP,都需要使用0.7-devpreview版本的Android Things support library。如果在build.gradle中,你引用的是指定版本的androidthings,那么你需要改成0.7版本,如果如下图所示,你引用的是com.google.android.things.androidthings:+,那么就会自动下载引用最新的0.7版本了。

build.gradle中引用 Android Things support library

API中有一个显著改变是引用PIO的PeripheralManagerService被删除了,取而代之的是PeripheralManager,使用方法也从new一个service对象,更改成了通过PeripheralManager.getInstance()获取单例。

PeripheralManagerService已被删除
使用 PeripheralManager

注意: PeripheralManager是几乎每个Android Things APP都需要修改的!

官网Samples的代码,Github上已经升级为新版本了,我分享的一些案例代码,也做了升级,已下载的朋友可以更新一下代码。

官网Samples Github:https://github.com/androidthings

我分享的案例代码:https://github.com/sysolve

另外,我在树莓派3B中进行了测试,新版本的屏幕分辨率可以支持1920*1080了,原来DP6.1版本只能支持1280*720。

Improved camera performance

摄像头的拍摄分辨率也有了提升,原来在树莓派中只能支持640*480,现在用我手上的树莓派摄像头实测,dumpFormatInfo显示可以支持2560*1440的拍摄分辨率。

dumpFormatInfo显示摄像头支持的分辨率

按照官网说明:

Apps can now capture images from the device camera hardware at resolutions up to 3280x2464 for Raspberry Pi 3 and 1280x720 for NXP i.MX7D.

其他一些升级说明,官网原文引用如下:

MIDI API support

Use the MidiManager API to build a virtual MIDI device in your app or interface with external MIDI controllers. Try it out today with the existing AndroidMidiScope and MidiSynth sample apps.

Bluetooth APIs

In addition to the existing BluetoothProfileManager used by apps to configure the active profiles on the device, the new BluetoothConfigManagerenables control of the Bluetooth device class as well. Apps can also use the BluetoothConnectionManager API to take control of the pairing and connection process between Android Things and a remote device.

See the new Bluetooth API guide for more details.

Update manager channels

The Android Things Console now supports deploying releases to groups of devices for development or beta testing by way of update channels. Devices can subscribe to a Canary, Development, Beta, or Stable channel via UpdateManager.

See the updated Device Updates guide and console updates guide for more details.

Resolved Issues

Screen brightness changes animate slowly.

HDMI overscan is disabled, causing UI not to extend to the edge of some displays.

Factory data reset does not fully remove installed apps.

GPIO pins cannot be used as an output if they were previously enabled as an input with an edge trigger enabled since the last reboot.


新版本相对之前版本,功能新增已不大,主要是修正错误和优化代码架构,可以推测,离正式Release应该不远了。


Android Things入门

如果你还不了解Android Things,以下是一个摘要汇编,帮助Android Things初学者梳理入门学习的知识和资源、所需的硬件和配件,循序渐进的了解Android Things,并开始动手实践之旅。

了解什么是Android Things

一句话说,Android Things就是让开发者可以使用Android开发工具开发嵌入式设备。

If you can build an app, you can build a device. 

只要你会开发APP,你就能开发智能设备。

Build connected devices for a wide variety of consumer, retail, and industrial applications.

为各种各样的消费者、零售和工业应用构建连接的设备。

图片来自官网首页

如官网视频中Dave Smith的介绍,你可以使用你熟悉的Android开发工具和Google产品进行智能产品的开发。

图片来自官网介绍视频

推荐阅读

我的文章:《Android Things是什么》,你将从中了解Android的应用场景、特性、优势和劣势。

GDE王玉成的专题文章:《Android Things专题 1.前世今生》,你将从中了解什么是物联网,Android Things产生的背景和过程。

官网:《Android Things Overview

了解用Android Things能做什么

你可能已经对Android Things跃跃欲试了,想要了解我到底能用Android Things能做什么。

推荐阅读

我的文章:《Android Things创客DIY第一课-用Android Things展示你的智能设备创意-基础篇》,你将从中了解当你有一个智能设备创意时,你要如何去表达和展示。

GDE王玉成的专题文章:《Android Things在 #io17》,你将从中看到在2017年的Google IO大会上展示的一些Android Things应用。

GDE王玉成的专题文章:《Android Things 专题6 完整的栗子:运用TensorFlow解析图像》,你将从中看到结合TensorFlow,Android Things可以非常方便的做好玩的人工智能图像识别。

http://hackster.io上的Android Things项目展示:https://www.hackster.io/google/products/android-things,从这里你将看到很多Android Things做的有趣的东西,大部分都是老外做的。

如何开始我的Android Things之旅

至此,你一定已经想马上动手,自己尝试Android Things了。这时候你需要有一块运行Android Things系统的开发板。

Android Things开发板

很多朋友已经在去年的GDD上,或是Google和引力空间组织的Android Things沙龙上拿到了NXP i.MX7D Pico Pro Maker Kit,也就是上图中的第一款。

如果没有拿到NXP的开发板,那么购买上图中最后一个——Raspberry Pi树莓派是性价比极高的选择,从硬件性能指标来看,树莓派3也优于其他几款。

Android Things的开发不同于手机、平板软件的开发,你需要动手去控制硬件、连接一些指示灯、按钮、传感器、执行机构等等,所以只有一个开发板是不够的。官网的案例中,就需要用到很多电子元件。

官网案例中通过面包板连接电子元件

为了方便开发者学习Android Things开发,我们将Android Things官网Samples开发案例中所需的配件进行了整理。精选优品并搭配测试,提供了入门基础配件套装。

你可以从这里购买配件套装和树莓派:

淘宝:https://sysolve.taobao.com

微店:https://weidian.com/?userid=954338999

更详细的开发板选型和对比资料可以阅读:

我的文章《Android Things硬件

GDE王玉成的专题文章:《Android Things专题2 硬件介绍

拿到开发板后,需要把Android Things系统烧录进开发板,根据你手上的开发板,你可以阅读:

Android Things入门防坑必读-树莓派硬件和系统下载安装篇

Android Things在NXP Pico i.MX7D上安装运行

Android Things开始动手

当你已有了Android Things开发板和一些必要的配件,你就可以开始动手玩Android Things了。以下课程将帮助你一步步开展你的动手实践之旅:

Android Things创客DIY第一课-用Android Things展示你的智能设备创意-基础篇

Android Things创客DIY第二课-Android Things入门配件包开发案例教程-报警灯

Android Things创客DIY第三课-Android Things入门配件包开发案例教程-数码管显示

Android Things创客DIY第四课-Android Things入门配件包开发案例教程-气象站

Android Things创客DIY第五课-硬件开发案例教程-PWM调色-触摸开关-数码管显示-OLED显示

Android Things创客DIY第六课-Android Things入门配件包开发案例教程-4位数码管显示

第四课和第五课中用到的温度和气压传感器、OLED模块,都是I2C接口的,I2C是一种芯片间的通讯协议,案例中我们只介绍了封装后的模块驱动的使用,并没有介绍具体的I2C通讯过程,感兴趣的朋友可以结合源代码和以下文章做深入了解:

GDE王玉成的专题文章:《Android Things专题5 I2C


欢迎关注我的简书上的Android Things文集,一起交流探讨新一代物联网技术。

李雷鸣

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容