首頁(yè) > 評(píng)測(cè) > Android Things之十(最終章)——部署Android Things產(chǎn)品
Android Things之十(最終章)——部署Android Things產(chǎn)品
- [導(dǎo)讀]
- 本文將為大家介紹如何使用Google帳號(hào)登入Console,建立自己的產(chǎn)品配置。
Android Things生態(tài)包括三個(gè)部分:硬件平臺(tái)、SDK及Console。
歡迎加入Android Things交流群:452863046
前面我們接觸了兩個(gè)典型的硬件平臺(tái):i.MX7D及RPI3,在 Android Things的大一統(tǒng)之下,使用SDK來開發(fā)軟件,在代碼上并無差別,因?yàn)橛布?xì)節(jié)都被隱藏在OS之下了!
當(dāng)準(zhǔn)備開始構(gòu)建原型和設(shè)備時(shí), Android Things Console提供了在支持的硬件設(shè)備上安裝和更新系統(tǒng)映像的工具。允許開發(fā)者將更新推送到現(xiàn)場(chǎng)用戶以及在自己的硬件上測(cè)試部署。使用控制臺(tái),可以完成下列任務(wù):
• 下載并安裝最新的 Android Things系統(tǒng)映像
• 構(gòu)建包含OEM應(yīng)用程序的工廠映像以及系統(tǒng)映像
• 將無線(OTA)更新(包括OEM應(yīng)用程序和系統(tǒng)映像)推送到設(shè)備
簡(jiǎn)單的說,就是Console是用來管理系統(tǒng)映像的工具,包括創(chuàng)建、定制及更新系統(tǒng)映像。
使用Google帳號(hào)登入Console,建立自己的產(chǎn)品配置,例如這里添加了兩個(gè),一個(gè)是i.MX7D,另一個(gè)是RPI3。
因?yàn)镺S是由Google提供的,咱們只能選擇既有的產(chǎn)品,當(dāng)前最新的版本號(hào)為1.0.2。系統(tǒng)映像默認(rèn)添加Google Play Service,可以使用其提供的API功能。
Console還提供了系統(tǒng)分區(qū)的定制功能,例如分區(qū)大小,各分區(qū)的名稱及信息等。
可以在定制系統(tǒng)映像的時(shí)候添加APP,這樣一旦將系統(tǒng)映像寫入到產(chǎn)品中,就可以實(shí)現(xiàn)開機(jī)即用!
不過這里要注意的是, Android Things只允許上傳一個(gè)HomeActivity程序,該程序會(huì)在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)。如果指定了多個(gè)HomeActivity程序,Console不會(huì)生成系統(tǒng)映像。
生成的系統(tǒng)映像可以指定兩個(gè)版本:產(chǎn)品版及開發(fā)版。如果是在產(chǎn)品開發(fā)過程中,一般使用開發(fā)版,如果測(cè)試好了之后,就可以生成產(chǎn)品版的系統(tǒng)映像,直接用于產(chǎn)品部署。
前面我們?cè)跍y(cè)試各種外設(shè)功能的時(shí)候,生成的Android Studio工程文件都使用的是默認(rèn)設(shè)置,在正式開發(fā)產(chǎn)品時(shí),根據(jù)實(shí)際情況需要,還要修改工程的配置。例如需要指定自動(dòng)啟動(dòng)程序的Catogery屬性。
以上一節(jié)中的交互式GUI為例,AndroidManifest文件應(yīng)該修改如下
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.demo.lcddemo">
<uses-permission android:name="com.google.android.things.permission.USE_PERIPHERAL_IO" />
<application>
<uses-library android:name="com.google.android.things" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
實(shí)際上要修改的只有包括<category android:name="android.intent.category.HOME" />的這一行,有了這一行,該程序在系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)。
事實(shí)上,一般支持 Android Things的硬件相對(duì)來說是比較高端的硬件產(chǎn)品,只允許運(yùn)行一個(gè)HomeActivity程序是不是浪費(fèi)了硬件資源?這個(gè)問題應(yīng)該從兩個(gè)方面來理解:一是傳統(tǒng)的MCU產(chǎn)品,基本都只能部署一個(gè)程序,而且許多 Android Things硬件甚至也沒有提供GUI支持,所以這樣做實(shí)際上是簡(jiǎn)化了產(chǎn)品部署的步驟;其次,如果確實(shí)需要更好的利用硬件資源,可以在程序里添加不同的功能模塊,在主Activity里做統(tǒng)一任務(wù)調(diào)度,保證各模塊功能的協(xié)調(diào)工作。
最后補(bǔ)充下 Android Things的Driver庫(kù),這是 Android Things中SDK的有益補(bǔ)充。SDK中提供的GPIO、I2C及SPI等庫(kù)都是低級(jí)的基本操作,與具體的硬件設(shè)備無關(guān)。例如市面常見的OLED(SSD1306)模塊,一般使用I2C或SPI接口來進(jìn)行通信,通信過程使用的具體指令通過I2C或SPI接口發(fā)送給模塊硬件,完成相應(yīng)的顯示功能。Drivers庫(kù)就是基于SDK開發(fā)的更高層的API接口,直接面向具體的硬件模塊。目前這個(gè)庫(kù)還在完善當(dāng)中,目前主要有SSD1306, lowpan等設(shè)備的支持。
這些三方的Drivers的Github地址為:https://github.com/androidthings/contrib-drivers,歡迎大家貢獻(xiàn)自己的開源力量!
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評(píng)論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預(yù)算:¥1100000015小時(shí)前
- 12V汽車啟動(dòng)電源項(xiàng)目BMS設(shè)計(jì)
預(yù)算:¥50000023小時(shí)前
- 數(shù)據(jù)可視化軟件 開發(fā)
預(yù)算:¥5000023小時(shí)前
- PLC項(xiàng)目調(diào)試修改
預(yù)算:¥100001天前
- 起動(dòng)電機(jī)控制器開發(fā)
預(yù)算:¥1100001天前