佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

佳礼资讯网 首页 佳礼网 数码 查看内容

安卓开源的真相:无法分支

12-2-2014 12:11 AM| 发布者: webtester | 评论: 5|原作者: ymcheong

摘要: 新闻来源: 安卓開源的真相:無法分支 雖然是名義上的開源系統,但如果微軟的手機採用Android系統,那將是個巨大的錯誤,諾基亞都不行,因為Google把Android做得無人可改。不止一次了,總有人跳出來「建議」微軟採用 ...
新闻来源: 安卓開源的真相:無法分支
雖然是名義上的開源系統,但如果微軟的手機採用Android系統,那將是個巨大的錯誤,諾基亞都不行,因為Google把Android做得無人可改。不止一次了,總有人跳出來「建議」微軟採用Android,取代掉市場乏力的Windows Phone系統。這種口水文章估計將來也不會停。



說這話的人到底是人笨呢,還是心眼壞。Google這麼多年來,已經把Android做成了本質上無法分支(fork)的軟體,開源隻是名義上的,對於其它手機廠來說毫無意義。沒人能再fork出自己的Android,同時保證可用性,吸引大量的開發者和海量的軟體

「微軟該轉Android」的論點是:Windows Phone平台沒能吸引到足夠的開發者投入精力,也沒能為開發者創造收入,但是Android兩者兼備。如果從Android fork出一個微軟自己的系統來,微軟就能一箭雙雕——在Android上部署自己最擅長的服務,包括Exchange,Active Dictory和System Center或是InTune;給予消費者完整的office體驗——並且取代掉Google的服務,完全基於自己的雲套件(Bing搜尋,Bing地圖,Azure)。同時還能保留大量使用者需要的Android應用。

按照這種邏輯,Android的豐富應用和巨大市場號召力會吸引消費者購買微軟的產品,更多熟悉Android API的開發者會入場。微軟的開發成本也會降低,因為核心的維護工作就讓Google去做好了。

這種事情根本沒法弄的原因在於,Android平台的正確使用方式不是這個樣子的,Android本來就不是為了大家一起玩而設計的,它是一個Google控制的「莊家定規則的遊戲」,隨著Android的每一次新版本發表,Google正把這種想法變得更加不切實際。

程式碼開源不徹底

大體上說,Google寫了兩大坨程式碼。

第一坨是核心的Android開源平台(AOSP)底層程式碼,它提供了整個智慧手機系統的基礎骨架:包括一份Android專用的Linux內核,Dalvik虛擬機,和部分基礎的使用者界面(設定、消息面板、鎖螢幕界面)。這部分程式碼以GPL和Apache的混合授權樣式發表。雖然Google周期性地發表這部分的開源程式碼包,但被行業批評為「一副關起門來悶頭搞」的不合作腔調。

第二坨稱之為「Google服務套件(GMS)」。GMS又分為兩大塊:Google Play Services提供了海量的API和系統服務,包括Google地圖,位置服務和內購功能;Google+整合;遠端Wipe;惡意軟體掃描等等。還有就是一些Google自己的軟體:搜尋,Gmail,Chrome瀏覽器,Gogole地圖等。

GMS提供了很多重要的系統特性。而且GMS是閉源的。任何人可以拿到AOSP的程式碼編譯好刷進任何一臺手機。但是GMS可不能這麼搞,為了獲得GMS的授權,裝置必須符合Google的硬體標準(效能,螢幕幕解析度等等),而且必須通過Google的測試。雖然Google表示GMS套件是免費的,但測試是收費的,平均每部規格GMS套件的Android手機都得支付給Google 0.75美元的測試費。換句話說,除了最有用的部分,Android的確都開源的。

GMS也沒法分割:如果手機要通過Google的測試,那麼它必將裝載上全部的Google軟體。



而且對於開發者來說,AOSP和GSM也是水乳交融,分不清彼此。Google正慢慢地把越來越多的功能從AOSP從開源的AOSP遷徙到閉源的GMS裡去。舉個栗子,在五太子Nexus 5上,手機的界面——你用來顯示圖示和加載程式的核心功能已經滾到了GMS套件的Search元件裡。

類似的,API也發生了相應的修改。比如AOSP本來是有一個位置服務的API可用,但GMS提供了一個很好,更新,提供更多功能的API。Google鼓勵開發者用GMS裡的API。AOPS裡的那個老API從Android 1.5以後就沒有更新過。這樣造成的結果就是很多新的第三方Android軟體其實很難說是Android的軟體,其實它們更應該是GMS軟體,離開閉源的GMS就沒法工作。

Android的四種使用方式(隻有一種是正確的)

對於手機廠來說,採用Android系統的方式一共有四種。

第一種就是Google希望各家採用的方式:同時使用AOPS和GMS。提交通過測試,裝載全部Google的服務和應用套件。這就是三星,HTC和LG採用的方式。這條道路還是給手機廠留下了一些自訂的空間。OEM廠可以在Google應用以外,裝載自己的相同的應用。但貌似Google對各廠在這點空間搞的花頭也不滿意了,有報導說Google和三星談判,三星同意減少在手機界面上的各種奇葩修改,特別是移除與Google應用重復的其它應用。

這種方式因為提供了完整的AOPS和GMS的API,也就保證了最佳的軟體相容性。同時也最大程度地保證了Android系統的使用者體驗,不管各廠怎麼折騰界面,Google的軟體總是存在的,使用者體驗總是一致的。

這讓Google也最大程度地保持自己對Android系統的控制力,而且這種控制力隻會與日俱增。每一次新版本Android的發表,Google就會把更多的API弄到GMS套件裡去,慢慢把AOSP上的肉一點點剃掉,隻剩一個底層的骨架。

第二種極端做法,整個移除GMS服務包,基於AOSP開發一些粗制濫造的替代品。當然,這樣做的結果,就是使用者得到的體驗會差很多,所謂能用就行了。在一些低階機上,很多廠家就是這麼幹的,特別是在中國市場。隻要你敢用,廠家提供了自己的軟體市場和各種替代軟體,填平Google軟體缺失所留下的空隙,但這些產品和採用GMS套件的手機比起來,在水準上要低很多,這些手機不相容很多基於GMS開發的軟體,而且數量不少,比如很多軟體依賴GMS的內購功能。

第三種做法介於第一種和第二種之間:發表基於AOSP的裝置,但是開發與GMS一樣的API以保證相容性,比如GPS和地圖服務,但是基於微軟而不是Google的。很少有廠家選擇這條道路,最接近這種做法的隻有Amazon,它們提供了GMS API的替代方案(特別是地圖服務),但完全沒法跟上Google的開發迭代速度。

是從技術上說,如果一家公司足夠土豪心,豹子膽,完全開發出自己的API,整個端掉GMS,這代價也絕對沒法讓人淡定。特別是為了保證相容性,這活不光是提供與GMS想通的功能,還包括提供和GMS提供的開發訊框架和開發者工具。

另外,GMS還有一些無法替代的東西,比如「Google+分享」,很少有公司能提供能與之匹敵的替代方案。又比如,GMS裡有一個API提供了多人回合遊戲功能,雖然廠家可以提供自己的API,並建設自己的後臺硬體支援回合制遊戲服務,但顯然這完全脫離GMS的做法,無法讓遊戲開發者接受。

更不要說這麼大費周章搞掉GMS,定是不小心忘了Google和Oracle之間關於這些API的漫長的專利官司。事實上,能做出這樣事情的廠家,不可能不引起Google法務部門的瘋狂點贊。Google有錢啊,如果他願意,法庭當茶館,慢慢和你談。

除了以上三條路以外,總有狠人能比劃出第四條道路:隻用AOSP的最基礎的功能,比如硬體支援層、通訊模組什麼的,餘下的全部推墻揭瓦,自己開發……但這相當於又把Android從頭開發了一遍。Amazon的自有API可以歸入這種「猛人」行列,提供了功能一樣,但是實作了與GMS完全不相容的API。我想不太會有廠家能做出Amazon這種事情。雖然還有像Ubuntu for Android這種怪東西,但那隻是精神可嘉。

嘛?C.O.S.比這還猛?但是這貨比劃的實在太猛了,我連呵呵都不敢。

相容性與控制權,魚和熊掌不可兼得

以上四種途徑中,第一種AOSP加GMS的做法是唯一能提供完整Android體驗的方法,並能保證開發者不會有任何別扭的地方,也是唯一能相容所有Andoid第三方應用的途徑。但顯然,這種做法不是微軟能接受的,這等於幫Google做硬體,讓Google唱戲,而且這一唱就沒有翻身之日了。

第二種——在AOSP的基礎上提供一些替代應用,這可以讓微軟在Android上整合自己的服務。這樣雖然能支援不少Android應用,但能支援多少並不確定。但至少肯定沒法支援像植物大戰僵屍2,憤怒的小鳥這些依賴GMS,並且有大量內購利潤的大牌應用,但如果這部手機就是設計來主要使用內建應用就行的(比如相機,瀏覽器,信件客戶端),那丟掉些相容性也無大礙。

NOKIA傳說中在開發的Android手機可能就是以這種方式實作:AOSP作為底層,上面全是諾基亞自己的服務。

這種做法可能隻適合於對軟體相容性要求不高的低階市場,能不能打正版僵屍無所謂的超低價手機,也是很多中國廠家採用的方案。但是對於微軟來說,這完全搞錯了方向:這家公司已經有了一個不能支援許多高大上賺錢應用的雞肋系統,幹嘛還要再搞一個?!

而且,能想象這種Android手機的使用者體驗有多差。Google已經把眾多核心功能遷移到GMS訊框架內,比如短信和Chrome瀏覽器。AOSP是一個多bug、老舊,基本上不會再有後續維護的訊框架。想要拋開GMS從AOSP開始重起爐灶,開發出同等使用者體驗的系統,那前面就是兩萬五千裡長征在歡迎你。因為Android開源的部分很差。



Amazon的Kindle Fire就是一個例子告訴你從AOSP平地起樓有多難。Kindle Fire不支援最新最酷的遊戲,因為開發者沒興趣去同時維護一個不依賴GMS訊框架的產品線,雖然兩者之間看上去很像。Windows Phone所遇到的問題,換了Android也完全沒有解決。隻能帶上GMS才能玩得開。

第三條道路,就是在AOSP的基礎上,從頭開發與GMS完全相容的介面——或許可以解決這個問題,但這也把做Android分支的工作量放大到極大。但如果能做到完全提供與GMS一樣的介面,開發者和使用者的體驗,以及那些隻基於AOSP的程式的相容性都可以得到保證。

但這個工作量……打個比方,大概和把Windows Phone的殼和API全部套在桌面版的Windows系統一樣。某種程度上,這個工作量可能會更大,比如在AOSP上重新開發一遍IE瀏覽器。

更重要的是,Google還是把著上遊控制權,因為Android系統的表現,完全是基於底層API提供的功能的:比如「分享到」功能,完全是Android自己的方法和風格,而這都是由Google決定的,這就限制了下遊開發者無法反駁Google的選擇。

最後一個——除了AOSP,其它全部推翻重來。自由度和靈活度都有了,然後呢?內核其實根本不重要好不好,不就是個內核麼!微軟已經有了一個手機系統的內核了,在Window Phone 8用的好好的。很明顯,對微軟來說,拋棄整個Windows Phone系統不是說連這內核都能不要了。這已經是一個為微軟量身打造的手機系統內核,沒道理用別人的。而且內核真的不是整件事情最難的部分。

所以,別鬧了

如果Android真的和Firefox OS或是Ubuntu一樣的開源境界,那麼「微軟你就從了Android吧」這種話題才有意義。但是Android和GMS已經密不可分。如果所有東西都在AOSP的開源訊框架下,其它人才能把後臺服務的一塊塊程式碼取代掉,以較小的工作量,同時又不毀掉相容性,這件事情才有可能。

但顯然事情已經不是這樣。不光因為Android骨子裡根本就不開源,而且Google正努力把它搞得越來越不開源。所以對於想fork自己的Android系統的人來說,選擇隻有兩個:要麼受制於Google得到其它的好處,要麼把控制權拿來,並放棄一切。

Android天生就不是讓你來隨便fork的。因為GMS,Google擺明了就是不許別人fork。那些建議微軟從了Android的人,不是居心叵測,就是根本不懂Google為什麼要做「開源」的Android。

還有一件事

別忘了Google和硬體商簽訂的授權協定裡規定了,通過Google授權採用Android系統的廠家不允許制造不含GMS套件但又基於AOSP,同時相容GMS API的手機裝置。換句話說,如果有廠家敢為其它軟體商制造純AOSP的裝置,將被完全拒絕使用任何GMS的軟體和API服務。Amazon隻好費盡力氣在地球上找到一家這樣的OEM廠家來給他們代工造Kindle,這必定是一家對自己的Android產品的沒有任何市場野心的公司。




生气

惊讶

难过

好笑

无聊

ADVERTISEMENT


相关阅读

发表评论 | 在论坛留言

最新评论

引用 ymcheong 12-2-2014 07:21 AM
很想看看诺基亚的 Android手机会以什么形态出场
引用 henry_chua 12-2-2014 05:28 PM
very good and details explanation. But i only understand less than 30%...
引用 JunJun04035 13-2-2014 10:25 AM
Forking, 一直是linux-base system的一个课题
就算android 被linux赶出家门,这个课题还是不断围绕着android
之前的Fire OS(基本上就是android)后来百度的尝试,以及目前碍于中国法律的MIUI v5到接下来的Microsoft/Nokia联合
都是针对android一个点:开源。

的确,楼主说的对,在google主导的android 开发中,通过紧抓API和GMS,google的确能控制Android硬件盟友的选择,走向和发展

但是楼主忘了一件事情:到底Android值不值得被分支?

从不断浮出水面的分支消息,我能说:非常值得。

还看Kindle Fire HDX的销售量,小米手机爆红的程度;再看Microsoft/Nokia的财力,智力,能力甚至生产力,难道会输给Amazon还是雷军?

所以,话不能说死。

必将Android是开源的。无论google想如何控制,其难度会慢慢加深,甚至到一个地步,google只能承认自己能控制的是这样多。

所以针对android的分支化,我觉得势在必行,看是谁会先走第一步
引用 ymcheong 14-2-2014 07:31 AM
JunJun04035 发表于 13-2-2014 10:25 AM
Forking, 一直是linux-base system的一个课题
就算android 被linux赶出家门,这个课题还是不断围绕着andro ...

请问大大,楼主是指我吗?
如果是的话,我要澄清一下,文章是从别的网站转载过來的(在文章的最上端有Link)。
引用 ppr350 14-2-2014 08:01 AM
毕竟是一盘生意,不是做善事,当然会自己的利益摆第一。

查看全部评论(5)


ADVERTISEMENT



ADVERTISEMENT




ADVERTISEMENT



ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 6-10-2024 01:34 AM , Processed in 0.137574 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部