Android Wear深度解析:讓Android Wear開發更簡單
譯文簡介
今年三月,谷歌正式將Android Wear作為其Android大家族的全新成員推介給了整個可穿戴技術領域,這款Android操作系統新版本專門針對可穿戴設備進行了精心設計。而就在本屆谷歌I/O大會的幾個月之后,谷歌公司又相繼公布了兩款能夠運行Android Wear系統的設備,它們分別為三星Gear Live與LG G Watch。
目前這款全新Android操作系統版本尚處于發展的早期階段,但隨著越來越多Android Wear設備類型陸續進入我們的視野——摩托羅拉與HTC也將在今年晚些時候相繼推出自己的Android智能手表——現在又是對這款令人振奮的新平臺進行全面了解的最佳時機。
本系列教程共分為兩個部分,大家在閱讀之后將深入了解關于Android Wear的各個方面,包括Android Wear是什么、它如何工作以及怎樣開發屬于自己的可穿戴設備應用程序。
在今天的第一部分文章里,大家將掌握到開發應用前需要首先涉及的背景信息與最佳實踐,而第二部分文章則真正帶領各位邁向這款可穿戴系統平臺的應用開發之旅。
1. Android Wear到底是什么?
Android Wear操作系統利用藍牙機制與運行著Android 4.3乃至更高版本的手持設備(單一或多臺)相對接。一旦連接完成,可穿戴設備就會從與之匹配的智能手機以及/或者平板設備上獲取信息及更新內容,同時便捷地將其顯示在用戶的腕戴顯示器當中。這些更新內容包括但不限于Google Now信息卡、Gmail、谷歌日歷以及其它手機通知信息,例如呼入電話及短信信息。
不過Android Wear絕不僅僅是一種接收智能手機與平板設備通知信息的便捷方式。Android Wear同樣也可以執行一部分與之匹配的智能手機或者平板設備上的操作任務。舉例來說,大家可以利用自己的Android Wear設備播放、暫停或者跳轉來自手持平臺的音樂曲目。
Android Wear的另一大重要使用體驗則由語音命令所構成。語音命令機制允許大家在可穿戴設備及其匹配完成的手持設備上執行多種任務。當用戶希望執行一條語音命令時,首先要做的就是說出“Okay,Google”,然后再表達自己需要的操作命令。
在Android Wear上僅僅憑借語音操作就能完成的用戶命令包括以下幾種:
發送短信、即時消息與電子郵件(‘發給Jessica Thornsby一條短信’,然后說出需要發送的具體內容)。
獲取生活中某些常見問題的答案,例如“今天下午是否有雨?”以及“最近的酒吧在哪里?”等。
獲取方向指引信息(例如‘將我指引至西大街上的Tamper咖啡廳’)。方向指引內容通過匹配手持設備上的谷歌地圖與可穿戴設備上的信息卡形式進行顯示。Android Wear設備還會在用戶身處需要轉彎的位置時振動以發出提醒。
設置提醒信息,并在特定時間或者Android Wear檢測到用戶處于特定位置附近時加以觸發(例如‘提醒我在到家之后把院子里的野兔趕出去’)。
利用Google Keep記錄筆記(例如‘記錄筆記,我需要多買些牛奶’)。
啟動匹配手持設備上的某些應用程序(例如‘打開Facebook’)。
雖然這種連接機制意味著我們的可穿戴應用程序能夠利用來自匹配手持設備的大量信息及功能,但其弊端在于、技術人員通常需要為自己的應用開發出兩種不同版本,其一運行在可穿戴平臺之上、其二則運行于手持設備當中。
2. 了解Android Wear的用戶界面
作為一款新型操作系統,Android Wear與我們過去在平板設備及智能手機上所熟知的系統存在很大差異。這種差異主要體現在用戶界面的區別之上。
谷歌公司已經為Android Wear開發出一套全新的用戶界面機制。就目前而言,大家可以將這套新型用戶界面拆分成兩大主要組成部分,它們分別是文本流與提示卡。
文本流
與我們原先在智能手機或者平板設備上的應用程序退出及啟動操作方式不同,可穿戴應用的主要運作機制圍繞著一套以卡片為基礎的系統展開。
Android Wear用戶界面的核心機制在于垂直排列的提示卡流,它們能夠自動根據各項因素提示對應內容,包括當前位置、當前時間以及用戶的活動與興趣偏好。如果大家熟悉Google Now的設計思路,那么文本流也將帶給各位似曾相識的感覺——事實上這幾乎相當于一套能夠自動排列的Google Now信息卡流。
但與大家以往在自己智能手機或者平板設備上使用的Google Now信息卡有所不同,Android Wear同一時間只能顯示一條信息卡。用戶需要通過縱向掃動在不同可用信息卡之間來回切換。
盡管我們完全可以為可穿戴設備開發出全屏式應用程序,但谷歌公司建議開發人員盡可能在自己的此類應用中使用文本流作為顯示效果基礎。
我們的目標應該是創建一款能夠生成信息卡的應用程序,并將這些信息卡在合適的時間或者條件下插入到文本流當中、從而保證其發揮最大效力。用戶隨后可以瀏覽相關文本流并快速了解應用程序的提示內容以及相關更新信息。
當然,大家也可以在自己的通知信息卡中添加更多信息顯示頁。用戶可以通過向右輕掃來查處這些顯示在通知信息卡上的復數內容頁面。
下面這幅截圖顯示的是一張天氣信息通知卡,其中包含有今天的天氣預報信息、后續頁面則用于顯示未來幾天的天氣情況。
上圖所示為可穿戴設備上的主通知信息卡。
上圖所示為可穿戴設備上的附加信息頁面。
如果用戶在附加頁面中繼續輕掃,則可能會遇到Android Wear用戶界面中的另一大常見元素——操作按鈕。顧名思義,操作按鈕允許用戶執行某項預設操作,其效果則可以影響到可穿戴設備本身或者與之匹配的手持設備。
提示卡
有時候,用戶可能無法單獨通過通知卡來獲得自己需要的相關信息、或者希望能夠執行某種特殊任務。在這類情況下,用戶可以通過語音命令告知Android Wear自己到底想要實現怎樣的使用效果。
當用戶說出“Okay,Google”之后語音輸入命令就會被激活,這時設備實際上啟動了一套特殊的“提示卡”機制、用于接收并執行用戶給出的語音指令。
這聽起來似乎簡單而直觀、并沒有深入挖掘的余地,但提示卡的出現其實給開發人員呈現出極為廣闊的施展空間。
當提示卡識別并執行一條語音指令時,背后的運作流程其實是提示卡成功將這條語音指令與某個特定Intent匹配了起來。要讓我們的應用程序對語音指令作出響應,大家真正要做的其實是將這些Intent恰當地引入進來。
3. Android Wear庫與類
Android Wear API是通過Google Play服務與Android支持庫實現交付的。這個話題涵蓋范圍很廣,值得我們下力氣深入探討,不過首先最值得關注的也最具實用性的當數其中的幾套庫與類。
Android支持庫與NotificationCompat
要邁出可穿戴應用程序開發的第一步,最簡便的辦法就是創建一款手持設備應用程序并保證其能夠向與之匹配的可穿戴設備發送通知信息。
要通過這種方式對我們的通知機制加以擴展,則需要使用多種類——大家可以在Android v4支持庫當中找到它們的身影:
NotificationCompat.WearableExtender: 此類允許大家向自己的通知機制中添加針對可穿戴設備的擴展功能,因此成為我們最大程度提升Android Wear應用使用體驗的根本性前提。
NotificationCompat.Builder: 這一builder類能夠確保我們的通知內容得到正確顯示,包括在手持設備與可穿戴設備之上。
NotificationManagerCompat: 此類能夠確保我們的通知機制正確支持可穿戴設備上的各項功能。在滿足通知信息交付的條件之下,請大家務必確保自己使用的是NotificationManagerCompat而非NotificationManager。如果大家使用了NotificationManager,那么某些NotificationCompat.WearableExtender功能可能將無法正常起效。
NotificationCompat.Action.WearableExtender:此類能夠對可穿戴設備上的通知操作方式進行擴展。每項操作都需要擁有自己的標題、用于表現操作的圖標以及操作被觸發時內容發送所指向的Intent。
要將Android v4支持庫添加到我們的開發環境當中,大家首先需要打開Android SDK管理器、而后下載并安裝對應軟件包:如果大家使用的是Eclipse,則需要下載并安裝Android Support Library包;如果大家使用的是Android Studio,則需要下載并安裝Android Support Repository。
可穿戴用戶界面支持庫
這套非官方庫能夠幫助大家為自己的應用程序設計出適用于可穿戴設備平臺的用戶界面,其中包括符合最佳實踐要求的用戶界面功能部件。
作為這套支持庫當中重要性最高的組成部分,BoxInsetLayout布局管理器值得我們著重強調,它允許大家在方形與圓形可穿戴設備上直接使用同一套布局方案。
如果大家使用的是Android Studio開發環境,那么這套庫會在各位利用項目導航創建可穿戴應用程序時被自動囊括在內。
4. 最佳實踐
在大家啟動自己的開發環境并將自己的奇思妙想付諸行動之前,最重要的一點就是首先考慮如何才能打造出一款卓越的Android Wear應用程序——換言之,我們該怎樣為應用用戶提供無與倫比的使用體驗。
在本系統文章的第二部分中,我們將共同探討在Android Wear應用程序的開發過程中、大家應該謹記并遵循哪些最佳實踐方案。
創建出便于查看的應用程序
開發出卓越Android Wear應用程序的關鍵在于時刻牢記我們在使用傳統手表時所積累下來的使用習慣及特性。在佩戴傳統手表時,我們需要長時間盯著表盤來獲取信息嗎?或者說,我們只不過在一瞥之間就能了解情況、保證所有必要信息都盡在掌握?
用戶無疑希望能在自己的智能手表上獲得同樣的交互體驗,也就是說在實現功能擴展的同時、又能繼續保持普通手表那簡單快捷的查看感受。有鑒于此,設備出成功可穿戴應用的前提條件之一正是使其盡可能易于查看。要想設計出這種易于查看的應用程序及通知信息卡,大家需要時刻謹記并遵循以下幾項指導意見。
一次顯示一條信息內容
大家的通知信息卡在同一時間應該只顯示一條信息內容。如果大家需要交付更多信息,則最好是使用附加頁面的方式、而不應把太多內容一股腦塞進信息卡里。
盡可能簡化文本表述
我們的通知信息卡中應該只包含關鍵性詞匯與短語,而不要采用完整的句子。這里與大家分享一條簡化文本表述的小技巧,即將單一圖標與單一數值相匹配。舉例來說,如果想要表達“今天有50%的可能會出現降雨”,那么易于查看的設計方案可以直接使用多云與降雨圖標并為其添加“50%”這一數值標簽。
增加字體尺寸
通過增加字體尺寸的方式,我們能夠保證用戶遙遙一瞥即輕松掌握可穿戴設備上的顯示內容。當大家使用大字體作為顯示手段時,單一信息卡中所能容納的信息總量也將有所降低,請務必注意這一點。
合理使用背景圖片
常言常大哥說得好,一幅圖片勝過千言萬語。大家可以通過添加背景圖片的方式讓通知信息卡中的內容變得更易查看也更便于理解。
如果能夠選擇一幅簡潔而直觀的背景圖片,那么應用程序所生成的不同通知信息往往能夠獲得更出色的顯示效果與使用感受。舉例來說,如果大家正在設計一款向用戶通知當前交通狀況的可穿戴應用程序,那么在用戶最常途經的道路信息中添加三種背景圖片就能很好地表達相關含義——一張為開闊而通暢的道路、一張為包含稀疏車輛的道路、最后一張則為擁堵不堪的道路。在運行過程中,應用程序在生成新的信息卡時可以根據相關數值選擇最仰天大笑的背景圖像作為提示性信息。即使用戶正忙于其它瑣事而無法具體查看設備上的內容,也仍然足以通過其中的背景圖片獲得相當有用的概括性結論。
保持簡單的交互方式
這里我們要再次強調,請務必考慮到用戶在使用普通手表時的實際習慣。試想一下,我們真的愿意認真坐下、拿出幾分鐘時間來研究手表上的顯示內容嗎?答案顯然是否定的,那根本不是手表、而是諜報裝置。
既然名為智能手表,我們就要保證其能夠像普通手表一樣讓用戶在行進過程中輕松掌握實時信息并完成自己需要的操作。也就是說,通過對可穿戴應用程序的精心設計,智能手表完全可以保持普通手表的這一優良傳統。用戶希望自己的可穿戴應用程序能夠提供必要的提示信息,但不愿意通過復雜的菜單導航與點觸選擇來進行操作。
考慮到這一點,請務必確保我們的應用程序只在絕對必要的情況下才要求用戶進行內容輸入。而在這種極為特殊的狀況下,我們也要確保用戶能夠盡可能快速且輕松地完成輸入及交互操作,例如點觸、輕掃以及語音指令。請注意,任何稍微復雜一點的操作方式在可穿戴設備那小小的屏幕上都會成為用戶避之惟恐不速的噩夢。
如果我們的應用程序實在不可避免地需要引入一些更復雜的交互機制,也請各位不要強迫用戶必須在可穿戴平臺上完成這些操作。相反,將他們引導到與之相匹配的手持設備之上,在這里他們能夠通過大尺寸屏幕完成這項任務、而后再返回可穿戴設備獲取操作結果。
在下面這幅截圖中,點觸操作按鈕會啟動用戶匹配智能手機上的相關應用,他們將在這里完成獲取響應所必需的具體交互。
盡可能不使用主動通知機制
顧名思義,可穿戴設備是指能夠直接與用戶皮膚接觸的電子裝置。這意味著任何一次主動通知——也就是那些會導致設備振動的通知信息——都會引起用戶的注意,而且幾乎不可能受到忽略。
從某種角度來說,這當然是件好事。舉例而言,當我們將可穿戴設備與智能手機進行匹配之后,也就再不必擔心自己因為把手機放在包里而錯過某些重要的來電了。然而正是由于這類主動通知內容幾乎不可能被忽略,一款可穿戴應用如果頻繁發出主動通知、則很快會導致用戶變得暴躁不堪。
作為需要嚴重遵守的一般性規則,我們的可穿戴應用程序應該只在接收到與聯系人以及當前實時事件相關的信息時才通過主動通知機制進行傳遞,例如與之匹配的智能手機收到一條短信消息。在不符合此類條件的情況下,我們的應用程序應該轉而生成一份信息卡并將其插入文本流當中,以備用戶在下一次抬起手腕時進行查看。
總而言之,請至少保證自己的可穿戴應用程序在主動通知的使用頻率上低于智能手機或者平板設備版本。
總結
在本系列指導教程的第一部分中,大家已經深入了解了Android Wear操作系統的各項特性以及由此給用戶及開發人員帶來的影響。此外,各位還掌握到開發卓越可穿戴應用程序時所應遵循的最佳實踐。
在第二部分文章中,我將向大家說明如何設置自己的開發環境并開始為Android Wear平臺開發應用程序。
英文鏈接:http://code.tutsplus.com/articles/introduction-to-android-wear-the-basics--cms-22042