以前看了VisionMobile的兩篇文章,也在本博進行了翻譯,分別是VisionMobile:命運反轉:讓設備兼容應用以及VisionMobile:剝光Android。就此進行了思路的整理和分析。linux
現狀編程
在功能手機時代,開發者開發一個應用,須要適配到不一樣的設備。而在智能手機時代,龐大的應用生態系統爲用戶提供數以百萬計的應用,用戶須要可以運行應用的設備,即現在是設備要能讓應用運行。後端
手機或平板要要能吸引消費者,必須有豐富的應用,不只包括熱門應用,還包括各種長尾應用來知足不一樣的應用場景,但僅此還不夠,應用必須質量好,即界面好看,交互友好,功能全面。一個新平臺要說服開發者將應用移植過來很困難,最好的方式就是可以直接兼容應用,利用Android的生態系統(而iOS對其餘廠家封閉)。測試
設備可以兼容Android應用,除了使用Android原生系統外,有下面兩種方式:優化
1、系統是Android的分支系統,即平臺是Android的衍平生臺,比較著名例子就是國內小米的MIUI,國外的亞馬遜的Kindle Fire。阿里雲
2、系統提供兼容Dalvik的虛擬機,即平臺的Android應用的兼容平臺。Android應用的兼容平臺通常是基於linux上開發,經過提供可以兼容Dalvik的Java虛擬機來實現Android應用的兼容,例如已經有手機上市的從MeeGo發展過來的Jolla Sailfish(劍魚)操做系統,又例如Ubutun、阿里雲操做系統,以及可能的COS(China Operating System)系統。spa
控制操作系統
Android雖然是開源操做系統,可是從最初就受到Google嚴格管控。Google經過Android商標的受權進行管控。設備製造商必須符合兼容定義文檔(CDD)並經過兼容測試套件(CTS)測試纔可獲准使用Android商標和Google Play Store。.net
然而隨着時間的推移,這個控制點已經變得鬆動。Amazon和Yandex成功用本身的應用和內容商店替代了Google Play商店。三星竭盡全力地創建本身 Galaxy品牌。此外,還有很多Android的衍平生臺和Android應用的兼容平臺打着各自的品牌,使用替代的應用商店。翻譯
爲了從新控制Android平臺,或者更準確地說是控制Android生態系統,Google公司對控制點進行了調整,從平臺商標和應用發佈轉移到對應用開發的控制。Google將Android系統的某些關鍵API移入Google Play Services中,Google已經將數十個本身的應用和API從開源Android項目(AOSP)中移走,所以依賴特定Google應用和APIs的應用,包括日曆、位置API、地圖、消息推送、賬號同步和認證,將再不能在Android的分支版本中直接運行。
Google Play Services是私有的軟件開發包(SDK)和應用程序編程接口(API)。 在開發者文檔中,也稱爲Google移動服務(Google Mobile Services,GMS)。最先在2012年引入,爲開發者提供直接集成Google業務的API,如賬號同步,Google+,Google地圖,位置APIs,Google Play遊戲,雲消息,Android設備管理等等。Google Play Services是系統級進程,它和其餘Google應用是相互獨立的,它能夠經過Google Play Store進行更新,所以當將部分API轉入Google Play Services能夠部分解決Android操做系統的碎片化問題。
要指出的是AOSP上仍能夠提供照相、電子郵件、日曆等一些應用,可是這些應用和來自Google Play Service的應用相比,界面和體驗存在顯著的差別。Google在Google Play Services中優化了APIs,進行創新和增添新價值,所以,從用戶角度看,AOSP應用的體驗是過期。在ARS Technica的文章中有詳細說明,下面是當中的幾個例子。
此舉對開發者開發應用有深遠影響,造成了Android生態系統的新控制點。開發者現在同時使用Android OS和Google Play Services的API。對於Android分支版本可以支持前者,但不能支持後者。以前,Android的Google版本和分支版本API之間差別主要是應用內計費 ;如今,差別包括了不少重要的服務,這些服務是被不少開發者所使用的,若是開發者要將應用發佈給Android分支,就要向功能手機時代那樣,重寫他們應用的部分代碼去適配這些衍平生臺。
這種作法將直接威脅到依賴Android生態系統的平臺,它們沒法繼續支持某些關鍵API,沒法保證長期對API的支持。移動應用開發者要將Android應用適配這些平臺,須要進行額外的應用移植工做,但所以要說服開發者進行移植,須要收買成本或用戶量進行吸引。
反制
經過服務和API的替代,能夠下降Google新生態系統控制點的影響。
前面咱們看到AOSP上提供應用在功能和體驗上都不如Google Play Services上提供的應用,用戶天然會選擇後者。三星在打造Galaxy品牌的同時,花費大量精力重建了全部Google業務,減小Google控制影響。
亞馬遜利用其電商的優先對部分Google業務進行替代。亞馬遜的Kindle Fire生態系統一樣加載Android的修改版本,所以直接受到將關鍵API移出AOSP的影響。爲了維持Android和Kindle Fire之間的應用兼容性,Amazon須要爲非AOSP的全部Google API提供本身的版本,應用開發者須要在應用中明確支持這些APIs。Amazon已經這樣作了,最近在在API列表中增長分析和分割測試能力,API列表包括登陸、後端服務、計費、消息推送、廣告,固然還有用來發布的Amazon Appstore。這使得Amazon對於新的Android API控制有免疫能力。
國內,Google的雲服務並無本土服務流行,事實上,各品牌的Android手機都是提供替代的應用商店,替代的地圖服務,替代的搜索服務。這些服務由國內不一樣的移動互聯網企業所持有,很多已經向對開發者開放API,可是與Google Play Services向比較,有下面的欠缺:
1、國內移動互聯網業務API由不一樣的企業提供,沒有統一集成起來,缺少統一的文檔,缺少統一開發者社區和論壇;
2、國內移動互聯網業務沒有造成系統級進程,沒有做爲統一的開發套件向開發者提供。國內有一些分支平臺,可是沒有向開發者提供格外的開發jar包,提供額外的API調用。事實上,面對Google公司咄咄逼人的嚴格控制,他們能夠嘗試用搭建自有服務來替代Google Play Services。而因爲Google在中國市場的影響是弱小的,和國外相比,薄弱的環節包括Google應用以及Google Play Service,正好在此做爲分支平臺的在應用生態系統的突破口。
替代Google Play Services,須要做爲系統級服務,這樣從開發者視圖看,減小底層原生操做系統對API的影響,同時能夠普遍地適用不一樣版本的Android衍生系統中。困難終於這些服務有不一樣廠家提供,須要將分散的國內移動互聯網業務開發的API集成起來,爲開發者提供統一提供自由服務的jar包,開發者可在現有的Eclipse開發環境中調用自由服務的API,並進行安裝和調測。可是將這些市場上直接或間接的競爭者糾合在一塊兒來一塊兒辦事,是困難的。即便國家層面成立的產業聯盟,多半也是面和心不和,應付應付。
思考
Google對生態系統的控制從平臺嚮應用轉移,這給咱們重要的啓示,咱們能夠經過應用開發的控制來界入生態系統。要利用現有的生態系統,最直接的方式是兼容Android應用,此外咱們還能夠利用跨平臺HTML5技術,支持HTML5應用,經過下降開發工做量和擴大適配設備提高用戶量來吸引開發者,Firefox OS,Windows Phone 八、黑莓10採用了這條策略。目前HTML5尚未向原生操做系統那樣出現寡頭,它做爲一種跨平臺技術也還沒有發展爲成熟的系統平臺,相關的生態鏈正在構建過程當中,正是切入的好機遇。
如下是廣告:
25萬年薪招Android開發工程師,上班地點上海張江高科,詳情請點擊如下連接: