編寫:kesenhoo - 原文:http://developer.android.com/training/wearables/apps/creating.html
可穿戴應用可以直接運行在可穿戴的設備上。擁有訪問類似傳感器的硬件權限,還有操作activity,services等權限。
當我們想要將可穿戴設備應用發佈到Google Play商店時,我們需要有該應用的配套手持設備應用。因為可穿戴設備不支持Google Play商店,所以當用戶下載配套手持設備應用的時候,會自動安裝可穿戴應用到可穿戴設備上。手持設備應用還可以用來處理一些繁重的任務、網絡指令或者其它工作,和發送操作結果給可穿戴設備。
這節課會介紹如何安裝一個設備或者模擬器,和如何創建一個包含了手持應用與可穿戴應用的工程。
在開始建立可穿戴設備應用前,必須:
升級後的SDK工具使我們可以建立和測試可穿戴應用。
升級後的平臺版本為可穿戴應用提供了新的 API。
想要了解如何升級SDK,請查看Get the latest SDK tools。
我們推薦在真機上進行開發,這樣可以更好地評估用戶體驗。然而,模擬器可以使我們在不同類型的設備屏幕上進行模擬,這對測試來說非常有用。
建立Android Wear虛擬設備需要下面幾個步驟:
adb -d forward tcp:5601 tcp:5601
建立Android Wear真機,需要下面幾個步驟:
Android Studio上的Android Tool窗口可以顯示可穿戴設備的日誌。當你執行adb devices
命令的時候,可穿戴設備應該會出現在該窗口中。
在開始開發之前,需要創建一個包含可穿戴應用與手持應用這兩個模塊的工程。在Android Studio中,點擊File > New Project,然後按照創建工程的指引進行操作。在我們按照安裝嚮導操作的過程中,輸入下面的信息:
當安裝嚮導完成後,Andorid Studio創建了一個包含mobile與wear兩個模塊的工程。現在,我們有一個工程可以在手持設備和可穿戴設備應用中創建activity,service,layout等。在手持應用裡面,需要承擔大部分繁重的任務,例如網絡請求,密集計算任務或者是需要大量用戶交互的任務。待這些任務完成之後,通常會把任務結果通過notification發送給可穿戴設備上,或者是通過同步機制發送數據給可穿戴設備。
Note: 可穿戴模塊包含了一個"Hello World"的activity,它是使用
WatchViewStub
類。該類根據設備屏幕是圓的還是方的來填充一個佈局。WatchViewStub
類是wearable support library中的一個UI組件。
在開發過程中,我們可以像安裝手持應用一樣直接將應用安裝到可穿戴設備上。可以使用adb install
命令,也可以使用Android Studio上面的Play按鈕。
當需要把應用發佈給用戶的時候,需要把可穿戴應用打包到手持應用中。當用戶從Google Play安裝手持應用時,連接上的可穿戴設備會自動收到可穿戴應用。
Note: 如果我們給應用簽名是debug key,是無法完成自動安裝可穿戴應用的(只有release key才可以)。請參考打包可穿戴應用獲取更多信息,學習如何正確的打包。
為了安裝"Hello World"應用到可穿戴設備,在Android Studiod的Run/Debug configuration的下拉菜單中選中wear,點擊Play按鈕即可。在可穿戴設備上會顯示activity並打印"Hello world!"
項目安裝嚮導會自動把合適的模塊依賴添加到對應的build.gradle
文件中。然而,這些依賴並不是必須的,請閱讀下面描述判斷是否需要這些依賴。
Notifications
The Android v4 support library (或者v13)包含一些API,這些API可以將手持設備應用已經存在的notification擴展到可穿戴應用上。
對於只顯示在可穿戴設備上的notification(這意味著,他們是由直接執行在可穿戴設備上的app進行處理的),我們可以在Wear模塊僅僅使用標準APIs (API Level 20) 並且把Mobile模塊的support library依賴移除。
Wearable Data Layer
可穿戴與手持設備之間進行同步與發送數據需要使用Wearable Data Layer APIs, 這需要用到最新版本的Google Play Services。如果我們不需要這些APIs,可以從這兩個模塊中把這部分的依賴移除。
Wearable UI support library
這是一個非官方正式的library,它包含了為可穿戴設備設計的UI組件。我們鼓勵你在你的應用中使用他們,因為這些組件是最佳實踐的例證。但是他們可能隨時發生變化。然而,如果library有更新,你的應用並不會發送崩潰,因為那些代碼已經編譯到你的應用中了。為了獲取更新包中新的功能,你只需要更新鏈接到新的版本並相應的更新你的應用就好了。這個library只是在你需要創建可穿戴應用時才會使用到。
在下一節課,我們將會學習如何創建為可穿戴設備設計的佈局,同時學習如何使用各種語音action。