Android 架構分析

首先要注意到,Android系統有著極短的開發時間,因此Android在架構上有著四處借鑑的特點。

Android分為四個層,從低到高分別是linux核心層、系統執行庫層、應用程式框架層和應用程式層。在最底層,Android使用了Linux核心,從而能夠利用起Linux已有的豐富的硬體支援(當然Android由於版權原因在Linux核心之上使用了完全不同的架構,現在已經被從Linux狀態樹上移出,算是完全脫離正式的Linux系統了)。在Linux核心之上,Android選擇使用Java進行各項API的開發,因此製作了適宜移動端使用的Dalvik虛擬機器(現在已被更快的ART所取代),從而向上提供系統執行庫。再往上則是豐富的應用程式框架層,最上層則是豐富的應用程式;利用Java跨平臺的性質,基於Android框架開發的應用程式可以不用編譯運行於任何一臺安裝有android系統的平臺,這可以說是Android的精髓所在。

1 Android架構分層圖

Android 優勢分析

系統開源

Android由於最底層使用Linux核心,使用的是GPL許可證,也就意味著相關的程式碼是必須開源的。2007年11月,Google與84家硬體製造商、軟體開發商及電信營運商組建開放手機聯盟共同研發改良Android系統,隨後Google以Apache開源許可證的授權方式(比GPL協議稍嚴格些),釋出了Android的原始碼。自此之後,Android的發展可以說是突飛猛進。開源帶來的是快速流行的能力與較低的學習成本。一方面,各個手機廠商無需自行開發手機作業系統,因此紛紛採用Android系統,甚至可以按照自己的目的進行深度定製(雖然有時候會負分優化)。另一方面,開源也促進了學習研究社群的迅速興起,對於開發者來說,相比iOS,開源使得安卓是一個更適合研究與魔改的系統,而不受到不開源系統的限制。

開源帶來的一個極大的好處就是手機廠商成本的降低。除卻了作業系統開發的高成本,Android廠商的手機價格可以控制在很低的水平;或者在同樣價位中相對iOS擁有更高階的硬體配置。因此在中低端市場,安卓有著絕對的統治地位;在高階市場也與iOS有一較之力。可以說是安卓實現了普通消費者也能使用智慧機的夢想。

一份2016年的市場份額調查

可以看到在Android與iOS兩雄相逐的今天,Android在低端市場擁有絕對的統治力

跨平臺特性

由於使用Java進行開發,Android繼承了Java跨平臺的優點。任何Android應用幾乎無需任何修改就能運行於所有的Android裝置。這允許各個Android廠商可以自行使用各種各樣的硬體裝置;而且不僅僅侷限於手機,平板,手環,甚至電視和各種智慧家居都在使用Android。相比起來iOS的封閉性一定程度上使得iOS的使用範圍受到侷限(當然這可能也是蘋果樂於看到的)。

另一方面,跨平臺也極大地方便了龐大的應用開發者群體。同樣的應用,對不同的裝置編寫不同的程式是一件及其浪費勞動力的事情,而Android的出現很好地改善了這一情況。Android在系統執行庫層實現了一個硬體抽象層,向上對開發者提供了硬體的抽象,從而實現跨平臺,向下也極大地方便了Android系統向各式裝置的移植。

豐富的應用

作業系統代表著一個完整的生態圈,一個孤零零的系統,即使設計的再好,沒有豐富的應用支援,是很難大規模地流行開的。Android由於一開始的大力推廣,以及上述幾項很適宜流行的特點,使得Android在一開始就吸引了很多開發者,時至今日,Android已經積累了相當多的應用,更多的應用使得Android更加流行,從而吸引更多的開發者開發更多更好的應用,形成一個良性迴圈。

反例可以舉含著金湯匙的Windows Phone,當然,Windows Phone有著各種各樣的問題,但與其他領域不同的是,由於上述提到的關於應用的良性\惡性迴圈的存在,作業系統領域(嚴格地說是面向大眾的作業系統)是很難有很深的細分的,不夠流行的系統會缺乏足夠優秀的應用,從而加劇開發者與使用者的流失。而優質應用對於作業系統有著極為重要的意義。2004年三星拒絕收購面臨資金難題的Android團隊,於是在被Google收購的Android大型其道之後,與2009年試圖挽回頹勢,釋出了自主研發的Bada系統,然而不到三年三星就終止了Bada的研發;同樣的,BlackBerry 10, Tizen還有曾經如日中天的Sybian,這些作業系統敗下陣來後,徹底失去了其市場份額。在作業系統的決鬥場中,“You win or you die.”

Google強大的技術支援

Google讓Android變得越來越強大,進而快速流行。Google豐厚的技術實力,讓Android可以迅速用上谷歌地圖、Chrome瀏覽器、Google Now語音命令等優質服務;Google的網際網路身份和強大號召力,讓Android能在短期內吸引到運營商、製造商和開發者的支援;Google強大的開發能力也保證了Android有著持續有效的產品迭代,使其不斷完善。
可惜由於Google退出中國市場的決策,中國的使用者並不能享受到Google提供的很多優質服務,也算是一大憾事。

Android 存在的問題

跨平臺一定程度上犧牲了效能(正在改善)

由於使用虛擬機器技術,Android在效能上是有一些劣勢的。在很長一段時間Android使用自主研發的Dalvik虛擬機器提供應用程式框架支援並執行各種應用程式。在以前的Android系統上,所有的應用程式都是執行在Dalvik中。雖說優點在於這種機制可以讓各種各樣的應用程式執行在多種硬體架構上,但應用程式每次執行時其中一部分程式碼都要需要機器重新編譯。這個過程即消耗時間又要消耗系統資源,所以執行效率難免會降低。

同時,由於Android支援各種不同的硬體,與環境單一的iOS比起來,相容性會帶來效能的犧牲。由於版權問題,很多硬體的驅動並沒有放在linux核心層而是放在了使用者態,這也一定程度上犧牲了效能。

然而Android的執行效能正在得到逐步改善。從Android 5.0開始Dalvik虛擬機器將會被徹底廢棄,改為使用ART執行環境。相比Dalvik,ART的處理機制完全不同,它會在應用程式安裝時就把程式程式碼轉換成機器語言,讓程式成為真正的本地應用。這樣做的好處是程式的啟動時間被極大的提高,執行速度也會更快。電量消耗的更少,系統行也跟著更加流暢。我們也期待未來Android還會有進一步的優化。

應用水平安全性有待

由於在推廣早起致力於Android的迅速流行,Android應用的編寫的門檻被降得很低,許可權管理方面的機制很不完善,這就導致Android系統的安全性常被人詬病。iOS由於系統有著極其嚴格的許可權管理,加上Apple Store對釋出的應用的審查(未越獄的iOS手機不能安裝未經Apple Store審查釋出的應用),其安全性往往能夠得到很好的保障。而在國內Google Store的缺失,導致Android使用者不得不安裝各種渠道的應用,從而帶來較大的安全隱患。

然而這種安全性的評判也是不完全準確的。一個足夠水平的應用開發者是有能力開發出在安全性上足夠合格的Android應用的。另一方面大部分國產Android手機廠商也致力於搭建自己的應用生態圈,如華為,小米等。(雖然很多應用良心程度不敢恭維)。

 總結

總的說來,Android是擁有很多優點,被廣泛使用的一款作業系統。在Android與iOS兩雄逐鹿的今天,Android可以說是對抗蘋果iOS壟斷的唯一系統。雖然Android仍然存在一些問題,但它的發展前景是絕對值的相信的。

參考資料: