Android Things與Android使用相同的開(kāi)發(fā)工具,同類最佳的Android框架和Google API伐蒂,從而使開(kāi)發(fā)連接的嵌入式設(shè)備變得輕松。
嵌入式設(shè)備的應(yīng)用程序使開(kāi)發(fā)人員更接近硬件外設(shè)和驅(qū)動(dòng)程序肛鹏,而不是手機(jī)和平板電腦逸邦。 此外,嵌入式設(shè)備通常向用戶提供單一的應(yīng)用體驗(yàn)在扰。 本文檔介紹了核心Android開(kāi)發(fā)和Android Things之間的主要增加昭雌,省略和差異。
Android Things使用由物理支持庫(kù)提供的附加API擴(kuò)展了核心Android框架健田。 這些API允許應(yīng)用程序與移動(dòng)設(shè)備上沒(méi)有的新類型的硬件集成烛卧。
Android Things平臺(tái)也簡(jiǎn)化了單個(gè)應(yīng)用程序的使用。 不存在系統(tǒng)應(yīng)用程序妓局,您的應(yīng)用程序會(huì)在啟動(dòng)時(shí)自動(dòng)啟動(dòng)总放,讓使用者沉浸在應(yīng)用程序體驗(yàn)中。
Things 支持庫(kù)
外設(shè)I/O API
外設(shè)I/O API使您的應(yīng)用程序可以使用行業(yè)標(biāo)準(zhǔn)協(xié)議和接口與傳感器和執(zhí)行器進(jìn)行通信好爬。 支持以下接口:GPIO局雄,PWM,I2C存炮,SPI炬搭,UART。
有關(guān)如何使用API的更多信息穆桂,請(qǐng)參閱外設(shè)I/O API指南 http://www.reibang.com/p/d33c4b832bf0宫盔。
用戶驅(qū)動(dòng)程序API
用戶驅(qū)動(dòng)程序擴(kuò)展了現(xiàn)有的Android框架服務(wù),并允許應(yīng)用程序?qū)⒂布录迦肫渌麘?yīng)用程序可以使用標(biāo)準(zhǔn)Android API訪問(wèn)的框架中享完。
有關(guān)如何使用API的更多信息灼芭,請(qǐng)參閱用戶驅(qū)動(dòng)程序API指南。
行為更改
核心應(yīng)用程序包
Android Things不包括標(biāo)準(zhǔn)的系統(tǒng)應(yīng)用程序和 Content Providers般又。所以避免在應(yīng)用中使用相關(guān)Intents以及以下Content Providers API:
CalendarContract
ContactsContract
DocumentsContract
DownloadManager
MediaStore
Settings
Telephony
UserDictionary
VoicemailContract
顯示模塊是可選的
Android Things支持使用可用于傳統(tǒng)Android應(yīng)用程序的相同UI工具包的圖形用戶界面彼绷。 在圖形模式下巍佑,應(yīng)用程序窗口占據(jù)顯示器的全部空間。 Android Things不包括系統(tǒng)狀態(tài)欄或?qū)Ш桨粹o寄悯,應(yīng)用程序完全控制可視區(qū)域萤衰。
然而,Android Things不需要顯示時(shí)猜旬。 在沒(méi)有圖形顯示的設(shè)備上腻菇,Activitys仍然是Android Things應(yīng)用程序的主要組件。 這是因?yàn)榭蚣軐⑺休斎胧录鬟f到具有焦點(diǎn)的前臺(tái)Activity昔馋。 您的應(yīng)用程式無(wú)法通過(guò)任何其他應(yīng)用程序組件(例如Service)接收key事件或motion事件。
Home activity 支持
Android Things 希望一個(gè)應(yīng)用程序?qū)⑵淝鍐沃械摹癏ome activity”公開(kāi)為系統(tǒng)在啟動(dòng)時(shí)自動(dòng)啟動(dòng)的主要入口點(diǎn)糖耸。 此活動(dòng)必須包含一個(gè)包含CATEGORY_DEFAULT和IOT_LAUNCHER的Intent Filter秘遏。
為了便于開(kāi)發(fā),這個(gè)activity應(yīng)包含CATEGORY_LAUNCHER Intent Filter嘉竟,以便Android Studio可以在部署或調(diào)試時(shí)將其作為默認(rèn)活動(dòng)啟動(dòng)邦危。
<application
android:label="@string/app_name">
<activity android:name=".HomeActivity">
<!-- Launch activity as default from Android Studio -->
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<!-- Launch activity automatically on boot -->
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.IOT_LAUNCHER"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</application>
Google services支持
Android Things支持Android的Google API的一個(gè)子集。 作為一般規(guī)則舍扰,需要用戶輸入或身份驗(yàn)證憑據(jù)的API不適用于應(yīng)用倦蚪。 下表列出了Android Things的API支持:
Supported APIs | Unavailable APIs |
---|---|
Cast | AdMob |
Drive | Android Pay |
Firebase Analytics | Firebase App Indexing |
Firebase Cloud Messaging (FCM) | Firebase Authentication |
Firebase Crash Reporting | Firebase Dynamic Links |
Firebase Realtime Database | Firebase Invites |
Firebase Remote Config | Firebase Notifications |
Firebase Storage | Maps |
Fit | Play Games |
Instance ID | Search |
Location | Sign-In |
Nearby | |
Places | |
Mobile Vision | ~ |
權(quán)限
不支持在運(yùn)行時(shí)請(qǐng)求權(quán)限,因?yàn)榍度胧皆O(shè)備不能保證有一個(gè)UI來(lái)接受運(yùn)行時(shí)對(duì)話框边苹。 在應(yīng)用清單文件中聲明所需的權(quán)限陵且。 在您的應(yīng)用的清單中聲明的所有正常和危險(xiǎn)權(quán)限在安裝時(shí)都會(huì)被授予。
通知
由于Android Things中沒(méi)有系統(tǒng)范圍的狀態(tài)欄和窗口陰影个束,因此不支持通知慕购。 避免在應(yīng)用程序中調(diào)用NotificationManager API。