昨天(2018.3.7)酪劫,Google發(fā)布了Android Things的新版本,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開(kāi)發(fā)板。
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.
在這個(gè)版本中,有些Android Things的API的名稱做了更改俊性,因此原來(lái)在DP6.1版中程序略步,需要相應(yīng)做一些修改。同時(shí)定页,Peripheral I/O API趟薄,用interface替代了abstract class,這樣讓單元測(cè)試時(shí)用mock和stub替代這些對(duì)象更加方便典徊。
注意:因?yàn)檫@些改變杭煎,原來(lái)的APP可能會(huì)產(chǎn)生NoSuchMethodError和NoClassDefFoundError,這就需要對(duì)照API reference把代碼升級(jí)到可以適配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環(huán)境下運(yùn)行的APP羡铲,都需要使用0.7-devpreview版本的Android Things support library。如果在build.gradle中儡毕,你引用的是指定版本的androidthings也切,那么你需要改成0.7版本,如果如下圖所示腰湾,你引用的是com.google.android.things.androidthings:+雷恃,那么就會(huì)自動(dòng)下載引用最新的0.7版本了。
API中有一個(gè)顯著改變是引用PIO的PeripheralManagerService被刪除了费坊,取而代之的是PeripheralManager倒槐,使用方法也從new一個(gè)service對(duì)象,更改成了通過(guò)PeripheralManager.getInstance()獲取單例附井。
注意: PeripheralManager是幾乎每個(gè)Android Things APP都需要修改的讨越!
官網(wǎng)Samples的代碼,Github上已經(jīng)升級(jí)為新版本了羡忘,我分享的一些案例代碼谎痢,也做了升級(jí),已下載的朋友可以更新一下代碼卷雕。
官網(wǎng)Samples Github:https://github.com/androidthings
我分享的案例代碼:https://github.com/sysolve
另外节猿,我在樹(shù)莓派3B中進(jìn)行了測(cè)試,新版本的屏幕分辨率可以支持1920*1080了漫雕,原來(lái)DP6.1版本只能支持1280*720滨嘱。
Improved camera performance
攝像頭的拍攝分辨率也有了提升,原來(lái)在樹(shù)莓派中只能支持640*480浸间,現(xiàn)在用我手上的樹(shù)莓派攝像頭實(shí)測(cè)太雨,dumpFormatInfo顯示可以支持2560*1440的拍攝分辨率。
按照官網(wǎng)說(shuō)明:
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.
其他一些升級(jí)說(shuō)明魁蒜,官網(wǎng)原文引用如下:
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.
新版本相對(duì)之前版本囊扳,功能新增已不大吩翻,主要是修正錯(cuò)誤和優(yōu)化代碼架構(gòu),可以推測(cè)锥咸,離正式Release應(yīng)該不遠(yuǎn)了狭瞎。
Android Things入門(mén)
如果你還不了解Android Things,以下是一個(gè)摘要匯編搏予,幫助Android Things初學(xué)者梳理入門(mén)學(xué)習(xí)的知識(shí)和資源熊锭、所需的硬件和配件,循序漸進(jìn)的了解Android Things雪侥,并開(kāi)始動(dòng)手實(shí)踐之旅碗殷。
了解什么是Android Things
一句話說(shuō),Android Things就是讓開(kāi)發(fā)者可以使用Android開(kāi)發(fā)工具開(kāi)發(fā)嵌入式設(shè)備速缨。
If you can build an app, you can build a device.?
只要你會(huì)開(kāi)發(fā)APP锌妻,你就能開(kāi)發(fā)智能設(shè)備。
Build connected devices for a wide variety of consumer, retail, and industrial applications.
為各種各樣的消費(fèi)者旬牲、零售和工業(yè)應(yīng)用構(gòu)建連接的設(shè)備从祝。
如官網(wǎng)視頻中Dave Smith的介紹,你可以使用你熟悉的Android開(kāi)發(fā)工具和Google產(chǎn)品進(jìn)行智能產(chǎn)品的開(kāi)發(fā)引谜。
推薦閱讀
我的文章:《Android Things是什么》,你將從中了解Android的應(yīng)用場(chǎng)景擎浴、特性员咽、優(yōu)勢(shì)和劣勢(shì)。
GDE王玉成的專題文章:《Android Things專題 1.前世今生》贮预,你將從中了解什么是物聯(lián)網(wǎng)贝室,Android Things產(chǎn)生的背景和過(guò)程。
官網(wǎng):《Android Things Overview》
了解用Android Things能做什么
你可能已經(jīng)對(duì)Android Things躍躍欲試了仿吞,想要了解我到底能用Android Things能做什么滑频。
推薦閱讀
我的文章:《Android Things創(chuàng)客DIY第一課-用Android Things展示你的智能設(shè)備創(chuàng)意-基礎(chǔ)篇》,你將從中了解當(dāng)你有一個(gè)智能設(shè)備創(chuàng)意時(shí)唤冈,你要如何去表達(dá)和展示峡迷。
GDE王玉成的專題文章:《Android Things在 #io17》,你將從中看到在2017年的Google IO大會(huì)上展示的一些Android Things應(yīng)用你虹。
GDE王玉成的專題文章:《Android Things 專題6 完整的栗子:運(yùn)用TensorFlow解析圖像》绘搞,你將從中看到結(jié)合TensorFlow,Android Things可以非常方便的做好玩的人工智能圖像識(shí)別傅物。
http://hackster.io上的Android Things項(xiàng)目展示:https://www.hackster.io/google/products/android-things夯辖,從這里你將看到很多Android Things做的有趣的東西,大部分都是老外做的董饰。
如何開(kāi)始我的Android Things之旅
至此蒿褂,你一定已經(jīng)想馬上動(dòng)手圆米,自己嘗試Android Things了。這時(shí)候你需要有一塊運(yùn)行Android Things系統(tǒng)的開(kāi)發(fā)板啄栓。
很多朋友已經(jīng)在去年的GDD上娄帖,或是Google和引力空間組織的Android Things沙龍上拿到了NXP i.MX7D Pico Pro Maker Kit,也就是上圖中的第一款谴供。
如果沒(méi)有拿到NXP的開(kāi)發(fā)板块茁,那么購(gòu)買上圖中最后一個(gè)——Raspberry Pi樹(shù)莓派是性價(jià)比極高的選擇,從硬件性能指標(biāo)來(lái)看桂肌,樹(shù)莓派3也優(yōu)于其他幾款数焊。
Android Things的開(kāi)發(fā)不同于手機(jī)、平板軟件的開(kāi)發(fā)崎场,你需要?jiǎng)邮秩タ刂朴布宥⑦B接一些指示燈、按鈕谭跨、傳感器干厚、執(zhí)行機(jī)構(gòu)等等,所以只有一個(gè)開(kāi)發(fā)板是不夠的螃宙。官網(wǎng)的案例中蛮瞄,就需要用到很多電子元件。
為了方便開(kāi)發(fā)者學(xué)習(xí)Android Things開(kāi)發(fā)谆扎,我們將Android Things官網(wǎng)Samples開(kāi)發(fā)案例中所需的配件進(jìn)行了整理挂捅。精選優(yōu)品并搭配測(cè)試,提供了入門(mén)基礎(chǔ)配件套裝堂湖。
你可以從這里購(gòu)買配件套裝和樹(shù)莓派:
更詳細(xì)的開(kāi)發(fā)板選型和對(duì)比資料可以閱讀:
我的文章《Android Things硬件》
GDE王玉成的專題文章:《Android Things專題2 硬件介紹》
拿到開(kāi)發(fā)板后闲先,需要把Android Things系統(tǒng)燒錄進(jìn)開(kāi)發(fā)板,根據(jù)你手上的開(kāi)發(fā)板无蜂,你可以閱讀:
Android Things開(kāi)始動(dòng)手
當(dāng)你已有了Android Things開(kāi)發(fā)板和一些必要的配件伺糠,你就可以開(kāi)始動(dòng)手玩Android Things了。以下課程將幫助你一步步開(kāi)展你的動(dòng)手實(shí)踐之旅:
《Android Things創(chuàng)客DIY第一課-用Android Things展示你的智能設(shè)備創(chuàng)意-基礎(chǔ)篇》
《Android Things創(chuàng)客DIY第二課-Android Things入門(mén)配件包開(kāi)發(fā)案例教程-報(bào)警燈》
《Android Things創(chuàng)客DIY第三課-Android Things入門(mén)配件包開(kāi)發(fā)案例教程-數(shù)碼管顯示》
《Android Things創(chuàng)客DIY第四課-Android Things入門(mén)配件包開(kāi)發(fā)案例教程-氣象站》
《Android Things創(chuàng)客DIY第五課-硬件開(kāi)發(fā)案例教程-PWM調(diào)色-觸摸開(kāi)關(guān)-數(shù)碼管顯示-OLED顯示》
《Android Things創(chuàng)客DIY第六課-Android Things入門(mén)配件包開(kāi)發(fā)案例教程-4位數(shù)碼管顯示》
第四課和第五課中用到的溫度和氣壓傳感器斥季、OLED模塊训桶,都是I2C接口的,I2C是一種芯片間的通訊協(xié)議泻肯,案例中我們只介紹了封裝后的模塊驅(qū)動(dòng)的使用渊迁,并沒(méi)有介紹具體的I2C通訊過(guò)程,感興趣的朋友可以結(jié)合源代碼和以下文章做深入了解:
GDE王玉成的專題文章:《Android Things專題5 I2C》
歡迎關(guān)注我的簡(jiǎn)書(shū)上的Android Things文集灶挟,一起交流探討新一代物聯(lián)網(wǎng)技術(shù)琉朽。
李雷鳴