您還記得《3S新聞周刊》第37期的一篇名為《精彩HTML5Geolocation定位技術為LBS錦上添花》的文章嗎?Geolocation定位技術實現了Web應用琳琅滿目、各具特色的有關位置服務方面的應用。HTML5作為一個不斷成長中的新網頁標準,它的新功能與魅力,將讓WebApp成為移動應用的主流,而2012年則註定成為HTML5快速發展的一年。
有分析人士估計,我國移動應用數量截止2012年底,安卓平臺將會突破27萬個,蘋果iOS平臺則將突破52萬個,在這麼多應用當中,有過半數量都具備位置服務功能。隨著HTML5帶動Web應用的發展,定位服務將會扮演著越發重要的角色。
HTML5促進應用發展,手機定位卻成阻礙
然而隨著HTML5移動應用增多,一個問題漸漸浮出水面,那就是很多HTML5移動應用定位失敗,這個現象大多發生在行貨Android手機上,對於那些做HTML5移動應用的開發者來說,這是個讓人非常頭疼的問題。
有開發人員通過研究發現了端倪的所在。研究發現,在一臺行貨的Android手機中,一款基於HTML5開發的簡單定位程序,在國內外主流的瀏覽器中,均無法實現HTML5中的Geolocation定位技術功能,然而實際上,這些瀏覽器是可以被允許調取多種定位信號的,但同樣的定位程序如果在一臺水貨安卓手機上進行測試的話,就能夠實現HTML5的定位功能。最後,該開發人員發現,在行貨手機中,由於缺少谷歌的一項GMS服務包,導致定位功能無法實現,在水貨手機中,這項服務包便存在於手機當中,讓定位功能得以發揮。由此可以得出的結論是,這個源於谷歌的GMS服務包是導致定位功能不工作問題的根源。
這種問題同樣也暴露在NativeApp(原生應用)上,同時,隨著網頁應用與原生應用各自優勢越發顯著,一種混合式的Native×WebApp也應運而生了,在繼承了原生應用的美觀同時,也發揮著網頁應用的易開發性。在面臨國內種類豐富的應用以及缺少谷歌GMS服務的情況下,解決好定位服務問題也就變得舉足輕重。
筆者深入調查了一下谷歌GMS服務包到底具有何種用途,GMS的全名為GoogleMobileService,中文翻譯過來即為「谷歌移動服務」,它是作為谷歌收益及盈利的主要來源。眾所周知,谷歌的Android作業系統是免費且開源的,因此在盈利等方面,谷歌則是要靠GMS來獲得利潤。另外,谷歌GMS服務中,存在一項幫助手機應用實現接收定位信號的功能。
百度地圖助力開發者,實現精準定位服務
那麼,在行貨安卓手機中缺少了谷歌GMS服務的支持,就沒有辦法解決NativeApp以及基於瀏覽器的WebApp應用定位不準的問題了嗎?其實也不然,我們目前使用的不少應用裡,依然會實現比較精準的定位功能,這又是通過了什麼技術達成的呢?帶著不少疑問,筆者專門採訪了百度地圖負責API相關方向工作的魏凱明。目前,百度地圖在行業內致力於幫助開發者們解決諸多技術難題,提供百度地圖SDK供開發者調用以減少開發門檻。
魏凱明告訴筆者,谷歌內置的GMS數據包有一項用途是提供了GPS、Wi-Fi、基站定位能力。但國內行貨Android手機只配備了GPS定位的功能,因為沒有預裝GMS服務而缺失了Wi-Fi和基站定位能力,因此無法使用GMS服務相關的一系列應用。這直接導致開發者在開發應用的過程中,總會發現定位不準的問題。而百度地圖及時發現了這一問題,並及時向開發者們推出地圖SDK進行良好的定位解決。
百度地圖向手機廠商提供基於HTML5應用的免費定位技術支持,同時百度地圖免費給與了Wi-Fi和基站定位服務給開發者,專門解決定位不準問題。對於各類應用,當需要使用地圖功能時,開發者可以直接調用地圖SDK,同時也能使用附帶的定位功能。魏凱明說道:「百度定位SDK現提供了基於GPS信號+基站+Wi-Fi+IP位置混合定位功能,並配以傳感器輔助定位,定位方式可自由切換,自動給出精度最好的定位結果。」
至於在瀏覽器上的改進,魏凱明提到,要改善瀏覽器上的定位功能不準的問題,就必須要改善瀏覽器自身的定位能力了。「我們也在跟一些HTML5瀏覽器廠商洽談,免費提供HTML5定位服務,改善HTML5應用體驗。」
我們可以看到,基於網頁、原生及混合的應用,百度已經能為開發者們提供了良好的解決定位不準問題的辦法,但通過瀏覽器進行使用的網頁應用,目前仍然需要瀏覽器廠商和百度地圖的共同努力。
「目前已有上萬家公司使用百度地圖定位SDK,其中包含去哪兒、58同城及新浪微博等知名的應用及網站也都在使用。」魏凱明說。從趨勢看來,很多公司都已經認識到了行貨安卓手機中的定位功能缺失問題,並有效利用百度地圖的SDK解決了技術上的困難,但實際情況是,仍然還有不少開發者尚不知這個問題,特別是對於一些剛剛起步的開發者來說,一旦他們遇到了定位不準的情況時,可能要絞盡腦汁研究很多天。
魏凱明強調:「目前的確還有很多開發者還不清楚行貨安卓機的這個問題,導致他們在應用的技術測試上浪費了大量的時間和精力,甚至到最後也沒有找到問題的根源,因此作為地圖SDK提供方之一,我們希望為開發者從節約開發成本的角度上,實現安卓平臺上的LBS應用的精準定位。」
為進一步探訪調用地圖SDK是否確實有效解決行貨安卓手機定位問題,筆者特意採訪了一位正在開發做書評類移動本地生活服務的開發團隊,他們也正在使用百度地圖提供的SDK,得到的反饋結果確實也比較理想。經過他們的測試,基站定位精度能達到100米-300米,WI-FI定位則能實現30-200米的精度,在服務穩定的基礎上。定位速度很快,流量以及電量損耗都比較低,使用成果非常理想。
開放心態促進LBS行業快速飛躍
基於地理位置的移動應用近幾年在國內可謂是爆發了一波又一波的熱潮,我們都非常熟悉像餐飲、購物等本地生活服務,抑或是定向廣告的匹配、移動社交網絡的構建,這些應用的開發都離不開強大的定位功能。
國內的行貨安卓手機在定位功能上確實給支持行貨的用戶留下了一些遺憾,但也正是有了這個機會,在沒有谷歌技術支持的條件下,像百度等地圖SDK提供方有能力為開發者提供優秀的地理定位技術和平臺支持,促進了許多我們所熟知的各種LBS應用的進步與發展,這是國人自己努力的結果。
特別是隨著HTML5網頁標準的推進,在將來,我們看到的手機應用將會更加精緻、服務更加出色,與此同時,在網際網路及移動網際網路不斷成長的共贏共開放心態之下,各行各業形成了一整套術業專攻的獨門絕技,並將這些優秀技術無償地奉獻給整個產業鏈上,供許許多多的開發團隊隨時調用和分享,最終促進了行業健康、快速的發展。