Android 設備合體 iOS 難在何處?


文/ticwear團隊

Android Wear連接 iPhone?這聽起來有點遙不可及,但是目前有外媒稱Google正致力於讓基於Android Wear平台的智能手錶與iPhone兼容。根據目前獲取的信息,Android Wear智能手錶將通過iPhone上的配套應用程序完成互動。不過只會擁有一些基本功能,比如通知、來電提醒、GoogleNow的環境信息卡等功能。

雖然蘋果發佈了Apple Watch,但是Android Wear眾多的款式和低廉的價格依然讓很多智能手錶用户心動,在Android手錶和蘋果手錶兩大陣營之間,Google與 Apple Watch 競爭最簡單的致勝法寶也許便是讓 Android Wear 設備兼容 iOS。雖然聽起來很誘人,但是也有人説,這幾乎不可能,那麼蘋果有可能完全開放,讓Android Wear 連接iPhone嗎?也許,這要從他們的前世今生説起。

兩大系統之間的交鋒

自從iOS 07年出世,Android第二年緊隨其後產生,Android與iOS作為兩大系統,多年來交鋒不斷,也各自產生了一大票粉絲,孰贏孰輸,尚未有定論。

iOS來源於Apple的OSX,是UNIX系統,OSX已經有差不多10年的歷史,從內核底層到軟件架構都是逐步發展過來的。iOS使用ObjectivC這個古老的語言來做開發。

而Android是Google基於Linux搞來的,嚴格意義上講Android並不是一個Linux系統,它沒有Linux的xwin,沒有glibc,缺乏一整套標準的Linux程序。Android應用絕大部分都是使用JAVA開發,跑在Dalvik虛擬機上(5.0之後切換為Art)。 Google在底層也修改了很多東西。Android算是一個全新的操作系統。

iOS一開始預裝了很多Google的服務,如搜索、地圖、YouTube, iOS 6 Beta版中移除了YouTube,Google 地圖等服務,換成自己的服務,雖然在發佈後,蘋果地圖便受到了很多批評和質疑,不過2012年以來,蘋果地圖有了很多改進,其準確度也在不斷完善中。

Android系統在部分體驗上不如iOS, 如用户常常抱怨的耗電, 不穩定, 不安全等問題,作為一個開放的系統,Android系統開發者的發揮空間更大,有更多的自由度,做到一些iOS系統在應用級難以實現的功能,而且消費者也有更多的機型可以選擇。

但開放的代價是生態環境不能很好的控制,導致很多惡意的,不夠精良的應用出現,影響Android系統的用户體驗。Android在用户界面, 體驗上一直在向iOS看齊,且也有自己出彩的地方, 比如手機端的下拉通知中心, led通知燈, 無物理按鍵等。

iOS則是有相對更加優秀的用户體驗。優點包括:統一流暢的用户體驗,豐富優質的App,良好的生態系統,相對安全的系統。但是封閉的系統隨之帶來的問題是開發者在iOS設備上可以做的事情相對較少, 比如到目前為止都不能和Android設備通過藍牙連接。

多點觸控(Multi-touch)一開始是iOS的專利, Android緊隨其實也有了觸屏(Multi-touch)的功能,追隨的局面直到最近Android率先扁平化, 變成了蘋果緊隨其後,在iOS7推出的系統扁平化UI, Android在扳回一城之後,又推出了全新的設計和交互的風格(material design)。

Android設備和iOS融合的技術問題

從技術方面講,Android Wear手錶連接iPhone有兩種方式:

低功耗藍牙(BLE)方式,這種方式連接不需要通過蘋果認證,只需要手錶端安裝一個接收藍牙通知的應用。但Android支持BLE的時間比較晚(在2013年才推出支持藍牙4.0 BLE特性的Android 4.3), 並且由於各個廠商的藍牙驅動質量參差不齊以及Android本身藍牙棧的不穩定, 使得在Android上進行BLE開發困難重重. Android正式支持藍牙是在4.3這個版本. 4.3和之後的4.4只開放了BLE最為中心設備(central)這個接口. 從5.0開始, 雖然Android可以作為周邊設備(peripheral), 但支持這個功能的只有Google自己的親兒子Nexus 6和Nexus 9。

對於其他Android開發者來説,不能作為周邊設備會給開發帶來很多困難, 比如手錶和手機配對連接和重新連接的流程就會比較複雜. 藍牙驅動質量的問題是開發中最大的難點, 比如奇怪的錯誤代碼, 莫名其妙的連接斷開等等. Android本身的藍牙棧的bug也是層出不窮, 去AOSP Issue Tracker中搜索Bluetooth會有四百多個還沒有解決的bug。

經典藍牙方式,這種方式可以支持較快速的大數據量傳輸,然而這種方式的連接要求設備必須通過蘋果的MFi (Made for iOS)認證。要通過此認證,必須讓蘋果認為此設備達到了蘋果要求的性能標準。整個認證流程比較麻煩,包括開發認證和製造認證兩個部分,需要向蘋果提交產品的技術細節以及製造工藝,甚至包括產品的包裝設計。據稱,MFi 認證的通過率很低。迄今為止,還沒有任何一款Android Wear設備通過MFi 認證,不知道是否設備廠商沒有申請認證,或者是蘋果否決了所有申請。


Android wear 與ios連接

iOS與Android系統連接難在哪?

1)iOS平台

iOS的不開放性以及對後台應用的限制讓Android和iOS相連更加難. Android核心源碼是全開放的, 有了問題開發者可以自己去看源碼解決問題. iOS沒有開放的源碼, 出了一些少見的問題就很難定位問題到底出在哪裏, 是Android那邊還是蘋果這邊, 如果是蘋果的問題就基本沒有解決方案只能等蘋果發佈更新. 另外iOS對後台應用的限制是另一個難點.

2)低功耗藍牙(BLE)本身

BLE全新的編程方式以及低功耗的特性讓開發更難. 在傳統藍牙上開發和TCP網絡編程比較類似, 開發者只需要操作socket發送和接受數據即可. BLE沒有socket的概念, 取而代之的是service, characteristic, 和descriptor: service就是一個服務, 一個BLE周邊設備可以廣播多個服務, 每個service又有多個characteristic, 作為傳送數據的通道. 每個characteristic一次最多可以傳送20個字節, 可以同過descriptor配置成是讀或寫. BLE的接口非常原始,開發者需要基於這些再做一次封裝後才能比較高效的傳輸數據. 另一個BLE的限制就是低功耗. 根據維基百科,低功耗藍牙的數據傳輸率是經典藍牙的三分之一。而實際應用中,出門問問發現BLE的數據傳輸率還要更低,大約只有經典藍牙的百分之一。在出門問問Ticwear測試的設備上, BLE的傳輸速度在0.5KB ~ 2KB左右每秒, 也就是説如果用BLE來傳輸一首4MB左右的MP3需要至少半個小時.

目前已經實現iOS與Android手錶系統連接的途徑

今年1月份,出門問問團隊就已經在中文智能手錶操作系統Ticwear中發佈了連接iOS的功能。二月份,國外開發者Mohammad也宣佈實現了這個功能。最近,GoogleAndroid Wear團隊也透露將支持iOS,估計也是通過BLE的方式。

由於BLE的連接方式有比較大的限制,實際數據傳輸速率只有大約1KB每秒,如此低的數據傳輸率決定了BLE只能支持小數據量的通訊,譬如來電提醒、通知等等。數據傳輸量較大的任務,如語音搜索,應用下載和OTA升級則很難實現。

Ticwear連接iOS和市場上其他的同類應用不同, 除了支持消息推送外, Ticwear iOS助手支持更換錶盤, 時間同步, 接打電話等只有AndroidWear和Android手機相連是才有的功能. 為了實現這些功能, 出門問問對BLE進行了重新封裝, 使得上層應用可以無縫的連接iOSAndroid設備. 對這些功能的支持就要求Ticwear iOS助手在用户的iOS設備上即使被切換到了後台也能使用藍牙(因為用的是低功耗藍牙, 用户完全不用擔心耗電的問題). 但是iOS在不同的版本對藍牙應用在後台停留的時間定義也不同, 使得用户不定期會出現藍牙連接斷開的情況從而影響用户體驗。
Android和iOS連接目前主要是依賴於wifi, 藍牙的話需要通過蘋果的MFi 認證, 很少有Android設備通過這個認證. 目前Android手錶連接iOS設備可以通過Ticwear或者其他的一些解決方案. Apple watch連接Android手機的方案目前還沒有.

出門問問團隊認為,蘋果賣手錶的一大目的就是促進iOS手機的銷售, 所以短期能蘋果應該是沒有動力去支持Apple Watch連接Android手機或者讓Android Wear連接iOS設備。迫於各方壓力,蘋果最終應該會讓一部分優質的Android Wear設備通過MFi 認證,從而讓這些設備實現和iOS的完美適配。但是,由於蘋果剛發佈Apple Watch產品,出於競爭的考慮,短期內應該不會讓Android Wear設備通過認證。但是開發者會想盡方法讓着兩大陣營的設備能互聯. 因為接下來無論是Android Wear還是Apple Watch都支持wifi, 不存在藍牙的限制, 他們互聯的可能性充滿了想象空間.


資料來源:雷鋒網
作者/編輯:Ticwear

如果喜歡我們的文章,請即分享到︰

標籤: Android  iOS