大家好,我是陸嘉傑,我是一名Android開發者。我想和大家進行一些技術交流,希望越來越多的人能和我成為好朋友。
大家都知道,智能手表是下一個開發的風口,而這方面的技術又屬於前沿,所以和大家分享下Android Wear的開發流程。
首先,我推薦大家使用Android Studio來進行Wear的開發,這也是谷歌推薦的,本次講授過程也將以Android Studio作為開發集成環境進行。
下面我們來創建Android Wear項目。

請注意,Android Wear項目中同時包含mobile和wear兩部分,所以在創建時,應該同時勾選Phone and Tablet和Wear,這里我們選擇Wear的Minimum SDK為API 20,這也是為了適應更多的系統版本,phone的API可根據需求選擇,這里我們選擇API 18。
mobile部分的項目生成過程和普通的App開發一樣,下面我們來看看wear部分:

我們選擇Blank Wear Activity,單擊Next

點擊Finish

大家來看看項目的結構,項目有mobile和wear兩部分,同時具有mobile和wear兩個build.gradle。至此,我們的Android Wear項目就成功創建了。
下面,我們來創建Android Wear模擬器:
單擊AVD Manager,選擇Wear,可以看到此處有兩種模型:Round和Square。

這里我們選擇Round,目前大多數人用的是Moto360,所以我們也常用Round來進行測試。
點擊Next

我們選擇Android 5.0.1,點擊Next

點擊Finish

至此,我們的Wear模擬器就創建成功了,也可看見綠色的運行按鈕,代表此模擬器可運行。
我們來看看正確創建Wear模擬器時,其文件夾里包含哪些文件:

Wear模擬器默認路徑為 C:\Users\ASUS\.android\avd\Android_Wear_Round_API_21.avd
順便提一下,如果Wear模擬器不能運行,遇到skin does not exists等問題,你會發現在上述的文件夾中config.ini沒有生成,導致不能運行。此問題是項目使用的sdk出了問題,通常是sdk的build-tools里面有重復的API,刪除重復項即可,當然前提是你已經下載好了正確的API。
這是筆者API 20下的文件夾結構,包含skins文件夾,以供參考。

我們來運行模擬器
可看到控制台輸出Wear模擬器的信息,這代表運行成功。

我們來看看模擬器:
這是模擬器的啟動動畫

運行完畢后

出現上圖的原因,是因為你的電腦沒有連上手機設備,或沒有啟動mobile模擬器。
電腦連上手機設備后即可看見下圖

到此為止,我們的Wear模擬器啟動成功。
看到這里,大家不禁又想到,我又掉入了Android的深坑!!!要做兩種模型的適配!!!
別急,谷歌早就處理好了這點。
我們來看看項目代碼結構
打開wear的MainActivity.java,可看到陌生的WatchViewStub,這是根據屏幕的形狀來渲染一個特殊的布局的類,后續教程會為大家介紹。

打開wear的activity_main.xml,可以看到有app:rectLayout="@layout/rect_activity_main"和
app:roundLayout="@layout/round_activity_main"兩種適配。

由此我們可以下結論:開發者不需要去具體分辨用戶使用的是Round模型還是Square模型的Wear,我們只需要在相應的rect_activity_main.xml和round_activity_main.xml做好對應布局即可。(可使用同一份Java邏輯)
下面我們來熟悉下模擬器的基本操作

如上圖所示,Wear模擬器上面只有一個Home鍵,開發者可以通過Home鍵來返回到前面的頁面,通常可用來回到最初的頁面(即上圖)。開發者也可以通過用鼠標滑動顯示頁面進行操作。
在最初的頁面下(這點必須保證,否則無法點擊),點擊上半部分彩色圖案,即進入下圖

用鼠標在顯示頁面處往下滑動到Start...位置

點擊Start...

在這里我們可看到Wear模擬器的可運行項目,目前只有系統默認的原始項目。
至此,我們來運行程序

點擊OK
可看到運行成功界面,感興趣的朋友也可以嘗試Square模擬器的運行,過程同上

我們再次回到模擬器的Start...界面
再次強調方法是點擊模擬器的Home鍵,先回到最初的界面,再點擊彩色部分

可看到我們的APP已存儲在Wear模擬器中

到此為止,我們的程序運行成功,大家可以拿着運行在Wear模擬器的Hello World去炫耀一番!~
到這里,我們是否就已經能真正開發Android Wear應用了呢?
答案是否。
在上述過程中,我們只是把應用直接運行到模擬器。然而,我們的最終目的,是運行到真實的智能手表設備上。真實設備不具備USB接口,無法與電腦直連,而且用戶也不可能為了安裝一個應用,設法去把手表與電腦連接。那么我們該如何把應用安裝到真實的智能手表設備上呢?
首先,我們來了解下,用戶安裝手表應用的使用過程。
用戶通過手機,登錄各大應用商城,搜索Android Wear應用,並下載應用。通過手機與智能手表進行藍牙互連配對,智能手表感知到配對手機上有Android Wear應用,應用自動安裝到智能手表。
從上面的過程中,我們會發現一個問題,手機與智能手表進行藍牙互連配對,這是如何做到的?
谷歌提供了Android Wear App,用戶可通過手機下載Android Wear App,然后通過該應用與智能手表進行藍牙互連配對。
可對於大多數開發者來說,並不具有智能手表設備,加上手中的手機並非是Android原生系統,莫非我們為了開發Wear趕風口,要再花費一筆現金?善於解決問題的開發者總是能找到途徑。
首先,我們要把手上的手機的系統(也可以是mobile模擬器的系統)變成類似Android原生系統。為什么要這樣做?因為Android Wear App的使用需要手機能運行Google Play,而如果本機系統不是Android原生系統,運行Google Play就會閃退,也即是Android Wear App無法運行,導致手機與智能手表無法互連配對。
許多Android Wear開發者新人都會卡在這道坎上,在這里我為大家提供一種切實可靠的途徑:手機上下載谷歌安裝器,這將一鍵為你模擬Android原生系統並下載好所需要的應用和服務。
對於有真實智能手表設備的開發者來說,此時已經能輕易做到手機與手表互連了。那么對於沒有真實智能手表設備的開發者,我為大家提供一種手機與Wear模擬器互連的方法。
首先,打開手機上的Android Wear App,點擊左上角的下三角圖標,選擇模擬器,此時Android Wear App頁面上顯示:模擬器 正在嘗試連接...(在此之前應成功啟動Wear模擬器,並保證Wear模擬器與手機處於同一WiFi下,因為模擬器不具備藍牙功能,要借助WiFi)
然后打開cmd窗口,進入sdk的platform-tools所在目錄,如下圖所示

此時輸入adb devices查看已連接設備

如出現上述情況,發現只有Wear模擬器,而沒有手機設備,則可借助豌豆莢等工具讓手機與電腦相連,或重連手機(或重新啟動mobile模擬器)。
此時再次輸入adb devices

可發現手機設備已連接。
此時輸入adb -d forward tcp:5601 tcp:5601
稍等片刻后查看手機Android Wear App,可發現此時顯示:模擬器 已連接
如長時間顯示正在連接:原因是豌豆莢等手機助手中有設備沒識別,可關閉或重啟豌豆莢,再重新輸入adb -d forward tcp:5601 tcp:5601
到此為止,手機與Wear模擬器成功連接!
准備工作做好后,相信讀者會躍躍欲試,直接在手機上運行程序。可無論運行mobile Module還是運行wear Module,Android Wear應用都只是單純運行到手機上,而並沒有如想象中的自動安裝到智能手表設備上。
正確的做法,是需要用Android Studio打包出Apk,同時也只有這樣,才能正確發布Android Wear應用。
在此之前,我們需要修改一下我們的項目代碼。
首先,在wear的AndroidManifest.xml中添加藍牙和網絡權限:

然后,在mobile的AndroidManifest.xml中添加藍牙和網絡權限以及:
<uses-feature android:name="android.hardware.type.watch"
android:required="false" />

做好准備工作后,即可打包Apk。
在Android Studio中選擇Build,點擊Generate Signed APK

選擇mobile Module,點擊Next

在這里,我們首先點擊Create new...

如圖填入內容,筆者除了Key store path外,其他都填寫了我的姓名拼音lujiajie

點擊OK,打開本地E盤,此時可以見到MyKey.jks文件
回到Android Studio,打勾Remember passwords,點擊Next

再次輸入Password:lujiajie Confirm password:lujiajie 點擊OK

選擇Build Type:release,一定不能選擇debug,否則應用不會自動安裝到智能手表

點擊Finish
等待片刻后出現下圖,證明打包Apk成功

點擊Show in Explorer,可以看見文件夾有mobile-release.apk和wear-release.apk

我們可以注意到,mobile-release.apk特別大,因為其內嵌了wear-release.apk。最終發布的apk,也是采用mobile-release.apk。
此時我們把mobile-release.apk安裝到手機,在保證手機與智能手表設備互連配對的情況下(Wear模擬器同理),等待1~2分鍾后即可發現,手表上成功安裝了應用!(可在模擬器Start...頁面查看)
值得注意的是,手機上的Android Wear App與手表上的App同生命周期,即手機上安裝了該應用,當手機和手表連接后,手表即自動安裝該應用。手機卸載了該應用,手表上的應用也會隨之消失。(這可以實現,模擬器的重復利用,而不用為無法刪除模擬器上的應用而需要重新創建一個新的模擬器)
到此為止,我的Android Wear開發入門講授完畢,希望能對大家起到幫助!同時歡迎大家留下評論,指出我的不足之處。如遇到問題也可留言,筆者看到后會進行適量的回復。
文/陸嘉傑(簡書作者)
著作權歸作者所有,轉載請聯系作者獲得授權,並標注“簡書作者”。