# **概覽**
Android Things通過提供相同的Android開發工具,讓開發者在手機上成功的優秀Android框架和Google API,使得開發連接嵌入式設備變得容易。

嵌入設備應用比手機和平板電腦使開發者更接近硬件外設和驅動程序。另外,嵌入式設備通常為用戶展現單個應用體驗。這個文檔主要討論核心Android和Android Things之間主要的增加和刪除;
Android Things繼承了核心Android框架,和由Things Support Library提供的額外API。這些API允許應用集成在移動設備上沒有的新的硬件;
Android Things平臺也精簡為單個應用使用。不存在系統app,并且你的app在開機自動啟動,來讓你的用戶沉浸在app的體驗中;
## **Things Support Library**
#### **外設I/O API**
外設I/O API使用行業標準的協議和接口,讓你的app和傳感器和執行器進行通信。下面的接口都支持:GPIO,PWM,I2C,SPI,UART;
#### **用戶驅動API**
用戶驅動集成了目前的Android框架服務,并且允許App將硬件事件注入框架,是的其它應用程序可以使用標準的Android API進行訪問;
## **行為的改變**
#### **核心應用程序**
Android Things不包含系統應用程序的標準套件和Content Provider。在你的應用中避免使用常見的Intent和下面的Content Provider API:
1. CalendarContract
2. ContactsContract
3. DocumentsContract
4. DownloadManager
5. MediaStore
6. Settings
7. Telephony
8. UserDictionary
9. VoicemailContract
#### **顯示是可選的**
Android Things支持圖形用戶界面,使用與傳統Android應用程序相同的UI toolkit。在圖形模式,應用程序窗口占用了全部顯示區域。Android Things沒有系統狀態欄或者導航按鈕,給應用程序視覺用戶體驗的完全控制;
然而,Android Things不要求顯示。在沒有圖形顯示的設備上,Activity仍然是你的Android Things的App的主要組件。這是因為框架將所有輸入事件分發給前臺具有焦點的Activity。你的應用無法通過其他應用程序組件如Service獲取key Evenet或者Motion Event;
#### **支持主Activity**
Android Things期望應用程序在它的訂單文件中聲明“主Activity”,作為系統的主要入口在開機自動啟動。這個Activity必須包含一個包含CATEGORY_DEFAULT和IOT_LAUNCHER的Intent Filter;
為了便于開發,所有的Activity應該包含CATEGORY_LAUNCHER Intent Filter,以至于Android Studio在開發和調試的時候可以作為默認的Activity啟動它;
~~~
<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服務**
Android Things支持Google API for Android的一個子集。按照一般規則,要求用戶輸入或者驗證證書的API不適用于應用程序。下面的表格列舉了在Android Things中支持的API:
#### **權限**
不支持在運行時請求權限,因為嵌入式設備不能保證有UI來顯示運行時對話框。你需要在你的應用的清單文件中聲明生命權限。在你的應用的清單文件中聲明的所有正常和危險的權限在安裝的時候授予;
#### **通知**
因為在Android Things中沒有系統級別的狀態欄和窗口,所以不支持通知。避免在你的應用中調用NotificationManager;
* * * *
*1.拋棄各種找元器件的煩惱,來“1024工場”旗艦店,一次性買到你所想要的:樹莓派套裝—專為Android Things打造。*

*電腦用戶,點擊如下鏈接進入淘寶寶貝頁面:*
<a href="https://item.taobao.com/item.htm?&id=549263158263">https://item.taobao.com/item.htm?&id=549263158263</a>
*手機用戶,打開淘寶客戶端掃描二維碼:*

*2.完整和持續更新的《使用Android打開物聯網開發大門——Andoid Thigns開發》文檔,歡迎大家閱讀!*
[http://www.hmoore.net/workshop1024/android_things_develop/360773](http://www.hmoore.net/workshop1024/android_things_develop/360773)

*3.新技術,新未來!歡迎大家關注“1024工場”微信服務號,時刻關注我們的最新的技術訊息。(甭客氣!盡情的掃描或者長按!)*

*4.加入“Android Things開發”QQ討論群,一起學習一起Hi。(甭客氣!盡情的掃描或者長按!)*
