對Android Wearable SDK的猜想
Android團(tuán)隊早在去年初啟動開發(fā)的4.3版本,就已經(jīng)開始為可穿戴設(shè)備優(yōu)化Android OS及其SDK了。Bluetooth 4.0 LE (Smart)的支持是一個毋容置疑的信號;而NotificationListenerService從AccessibilityService中的脫離,可以看作是Android為在第三方設(shè)備的通知投射掃清了障礙。Android 4.4的瘦身和內(nèi)存優(yōu)化更是直指512M內(nèi)存級別的低配置設(shè)備,已經(jīng)為嵌入可穿戴設(shè)備鋪平了道路;而傳感器事件的硬件級批量聚合及新的計步傳感器支持更是 將Android的野心袒露無疑。其它諸如Immersive Mode和Translucent System UI(榨干受限的顯示面積)、Enhanced notification access(更全面的通知信息及Actions交互的支持)、Storage Access Framework(集中存儲和遠(yuǎn)程訪問)等等新特性中都能找到可穿戴設(shè)備的端倪。
在上周的SXSW上,Sundar Pichai宣稱將會在2周內(nèi)發(fā)布Android Wearable SDK,想必整個工程已經(jīng)進(jìn)入了最后的收官階段。那么我不妨斗膽來預(yù)測一下幾天后即將面試的Wearable SDK到底會長什么樣。
概貌
Sundar Pichar在SXSW上也提到了他們認(rèn)為的智能手機(jī)與可穿戴設(shè)備間的協(xié)同關(guān)系:『手機(jī)為中樞,穿戴皆IO』。(……smartphones became tiny computers, wearables are becoming nexuses of an array of sensors.)這說明Google不單單是希望把搭載了Android系統(tǒng)的可穿戴設(shè)備納入生態(tài),而要讓『率土之濱,莫非王臣』。這也迎合了整個可穿 戴生態(tài)的兩條發(fā)展主線:提供富交互的完備設(shè)備 和 僅采集數(shù)據(jù)(及提供簡單反饋)的啞設(shè)備。即便是未搭載Android系統(tǒng)的Pebble也好,Gear 2也罷,只要看作是手機(jī)的IO,就逃不出Android生態(tài)。
Google在可穿戴設(shè)備領(lǐng)域的處女作可謂是傾城的驚艷,但Google Glass很長時間以來只提供了非常受限的云端接入接口,讓本就已經(jīng)稀缺的開發(fā)人員抓狂不已,甚至于直接轉(zhuǎn)向了root社區(qū)。好在Google最終在去年 11月發(fā)布了Glass DevKit的早期預(yù)覽版,開啟了Glass本地App的大門。雖然Glass的交互迥異于目前常見的手腕類穿戴設(shè)備,但其SDK的設(shè)計思想則是非常明確 而一致的,即基于目前Android SDK的更上層Addon SDK??紤]到離下一個Android大版本發(fā)布(Google I/O)至少還有3個月的這一時間點(diǎn),相信這也將會是Wearable SDK第一版的基礎(chǔ)形態(tài)。
SDK中可能會包含哪些有意思的設(shè)計呢?還是循著Sundar Pichar的線索順藤摸瓜吧?!篧e want to develop a set of common protocols by which they can work together…… they need a mesh layer and they need a data layer by which they can all come together.』這里面?zhèn)鬟_(dá)了兩個重要的信息:互操作性協(xié)議、數(shù)據(jù)交換標(biāo)準(zhǔn)。前者讓彼此間的IO更加順暢互通,后者可助任何數(shù)據(jù)為任何App所用。于是整個SDK的面目便可窺見一斑了。
互操作性
互操作性協(xié)議解決的典型場景便是Pebble這樣的設(shè)備如何與Android App更方便的互通。Pebble SDK提供了一個私有的解決方案 —— Pebble端的Watch App(C語言開發(fā))及其SDK提供的通信封裝。這帶來了一個Google最不希望面對的問題 —— 生態(tài)的分裂(Fragmentation)。因此,Wearable SDK需要以一個非常Android化的方式解決這個問題。除了已被廣泛使用的『Notification Listener Service』外,我猜想中新的答案可能會是『Widget』和『Remote Sensor』。
『Widget』是從Android誕生早期就支持的唯一一個天然適合于可穿戴設(shè)備的前瞻設(shè)計,基于預(yù)定義受限面積的周期或事件驅(qū)動的渲染,然后將 渲染好的位圖傳遞給另一個負(fù)責(zé)展現(xiàn)widget的畫布主體,后者可以接收簡單的點(diǎn)擊和手勢交互,并將其反饋給提供widget的應(yīng)用,觸發(fā)新一輪的重繪。 原先App與Launcher間的互操作性,在Android 4.2開始已經(jīng)拓展到了鎖屏界面(Lock Screen Widget),如今又可以無縫的過渡為App與穿戴設(shè)備間的橋梁。更重要的是,目前數(shù)不盡的帶有Widget的App就可以搖身一變成為『可穿戴設(shè)備友 好』的App了。Wearable SDK需要做的只是搭建起這樣一個延伸性的透傳協(xié)議。至于Android 4.2開始支持的『Secondary Display』多屏聯(lián)動機(jī)制,也許不會出現(xiàn)在早期的Wearable SDK中,但有望成為未來面向具有大尺寸顯示界面和高速無線連接能力(如Bluetooth 3.0 HS)的穿戴設(shè)備更靈活的媒體顯示解決方案。
『Remote Sensor』,顧名思義,就是不在當(dāng)前設(shè)備上的傳感器。由于大量可穿戴傳感單元的涌現(xiàn),彌補(bǔ)了智能手機(jī)本身傳感器的可觸達(dá)邊界,畢竟穿戴在身上的設(shè)備才 能更準(zhǔn)確的采集心跳、血壓等生理指標(biāo),而各類借助現(xiàn)代傳感技術(shù)的奇特探頭才能滿足人們?nèi)找娑嘣膶ι碇墉h(huán)境的感知需求。但持續(xù)傳輸?shù)哪芎膯栴}是攔在 Remote Sensor發(fā)展道路上的主要障礙,畢竟Android 4.4提供的Sensor Batch機(jī)制在降低耗電的同時是以犧牲實時響應(yīng)能力為代價的。真正的救星是近幾年方興未艾的SensorHub技術(shù),通過一個低功耗設(shè)計的可編程嵌入式 芯片,先行采集和緩存?zhèn)鞲衅鲾?shù)據(jù),并進(jìn)行相對有限的實時分析,當(dāng)預(yù)置條件滿足時才激活主CPU進(jìn)行處理。例如Moto X引以為傲的X8體系。再看可穿戴領(lǐng)域的傳感器單元設(shè)計,只需將SensorHub前移至傳感器單元內(nèi),單元與手機(jī)之間維持Bluetooth LE連接,SensorHub只在必要的時候通過這個連接通知手機(jī)和傳輸數(shù)據(jù),而手機(jī)則可以在有需求時向傳感器單元主動請求數(shù)據(jù)回傳。得益于 Android良好的傳感器框架設(shè)計,以上Remote Sensor機(jī)制只需在現(xiàn)有Android框架下通過Sensor Agent over Bluetooth LE以虛擬傳感器的形式提供,在上層App看來和手機(jī)本身的傳感器并無二致。
數(shù)據(jù)交換
互操作性的分裂問題得到解決,并不意味著廣大開發(fā)者就可以輕松的開發(fā)支持可穿戴傳感器單元的App了。眼下的局面是,Kickstarter和 Indiegogo上大量涌現(xiàn)的智能傳感器眾籌項目都是各自為陣,這些團(tuán)隊都不得不投入大量精力自己為其產(chǎn)品開發(fā)智能手機(jī)App,結(jié)果還往往不盡如人意; 另一方面,傳統(tǒng)App開發(fā)者似乎都只能隔山觀火,既下不了場,也撈不到湯。這種維度的分裂正是由于移動OS平臺上傳感器數(shù)據(jù)規(guī)范化缺失和領(lǐng)域技術(shù)與應(yīng)用層 面間的斷層所造成的。幸運(yùn)的是,銜接開發(fā)者,正是Google在Android中所一貫擅長的。
Wearable SDK正應(yīng)擔(dān)起這付扁擔(dān),一方面定義更廣泛和通用的原始傳感器數(shù)據(jù)協(xié)議,另一方面提供高階抽象的虛擬傳感器框架,將這種基于數(shù)據(jù)整合和領(lǐng)域算法的抽象能力 開放給社區(qū)和學(xué)術(shù)界,讓更多擁有領(lǐng)域經(jīng)驗的專家和開發(fā)者進(jìn)來銜接『專業(yè)數(shù)據(jù)』與『高階應(yīng)用』兩個位面,培育出眾多高質(zhì)量的虛擬傳感器。如此一來,才能讓生 態(tài)的兩端更融洽的銜接,讓更多的生活類和生產(chǎn)力App也能與可穿戴設(shè)備的蓬勃發(fā)展相互促進(jìn)。
結(jié)語
YY了這么多,其實都是作為一個Android資深開發(fā)者兼可穿戴設(shè)備控的一些美好愿望。不過相信在汲取了Android發(fā)展歷程中的坎坷之后,Google不會在這個新的領(lǐng)域讓我們失望。就讓整個社區(qū)一起迎接即將到來的Wearable SDK吧。
題外話
補(bǔ)充一個身為Geek的不切實際的暢想,Android Accessibility框架所蘊(yùn)含的抽象展現(xiàn)和交互代理能力其實有非常大的潛力成為銜接傳統(tǒng)App與可穿戴設(shè)備異化交互的玄鐵重劍。但亟需提升 Android整體體驗的Google,想必是不會在Wearable SDK中祭出這件難以駕馭的武器了。好在Android生態(tài)的開放性并不阻礙Geek社區(qū)朝著這條道路挺進(jìn),也許在不久之后,我們就能看到一個可以在智能 手表上操控手機(jī)端任意Android App的利器了。