第一篇 android架構是如何滿足設計目標的?

來源:互聯網
上載者:User

        從google的初衷來看 Android 作業系統的目標是與蘋果的移動作業系統競爭,因此目標市場定位於一是智能手機、平板電腦等移動終端,二是定位於 TV智能 終端及 其它智能消費終端,也就是富媒體富用戶端裝置。服務人群和涉眾也就是相關的客戶群體包括移動終端等廠商、開發人員、最終的消費使用者三大類群體。

        因此開發的作業系統要想成功必須滿足三大利益相關方的利益,也就是系統實現的需求。

        從廠商角度最重要的利益除了要能夠賺錢以外,還要能夠保護廠商自己的智慧財產權,保護廠商在系統上開發的相關代碼,二是使用得系統必須開放,沒有智慧財產權糾紛,也就是能夠做到不開放自己,而開放別人,最後是系統能夠支援終端的豐富多樣的硬體和不同的網路環境。

        要滿足的開發人員的需求包括一 應用開發(包括介面開發)及發布要方便容易,沒有太大的門檻,介面開發最好能夠支援2D/3D介面 ;二是支援支援 web和HTML5 應用開發 。

        要滿足的最終終端使用者的需求包括:一、應用運行穩定,能夠保護私人資料。 二、功能擴充方便,能夠支援多種媒體播放;三是 效能。

         因此架構設計上就要考慮這些需求,並想方設法加以滿足,下面我們看看ANDROID架構設計上作了什麼重大的決策來滿足這些需求。

         v  基於linux作業系統,因此藉助LINUX作業系統對豐富硬體的支援,並且開源、成熟、效能穩定,並且是目前嵌入式系統的主流作業系統,具有大量的使用者和開發人員,因此ANDROID底層作業系統使用LINUX作業系統實在是一個明智之舉,即可以滿足廠商對別人代碼開放及支援豐富硬體的需求,又能夠讓開發人員沒有門檻的輕易介入,效能上也能夠滿足終端使用者的要求。

         v  為了保護廠商的智慧財產權,google實現了一層硬體抽象層(HAL), 為廠商開發自己的驅動提供了標準的介面,又無需開原始碼 。因為這個緣故linux 也把android驅動踢出了代碼樹 。

         v  應用採用JAVA開發,這也是一個明智之舉,一是世界上有大量的JAVA開發人員,因此有現成的JAVA基礎包(Data structures、Utilities、File access、 Network Access等) 和大量的開源擴充包可以利用,並且採用JAVA語言開發應用也比採用C/C++開發容易。而為了保護和利用原先C/C++程式員開發的代碼,也支援採用NDK方式支援編譯 原先用C/C++語言開發的代碼。而為了不與SUN的java虛擬機器發生專利糾紛和效能考慮,android
的java虛擬機器採用了 Dalvik虛擬機器,一種基於寄存器方式的JAVA虛擬機器實現,具有高度CPU最佳化的位元組碼解釋程式,且以最佳化的.dex檔案格式運行,能夠高效的使用運行時記憶體。

         v  採用組件開發應用模式 ,並提供符合好萊塢設計原則的完善的架構方便應用組件的開發, 應用開發人員只需象填空一樣實現架構提供的固定的回調介面,讀取XML描述的資源就可以完成一個應用程式的開發,不用開發人員自己維護應用的生命週期管理,因此更方便了開發人員開發應用。

         v  應用資源和應用描述檔案與代碼的分離,應用資源和應用描述檔案採用XML描述.因此應用可方便擴充,方便開發人員。

         v  應用程式最終打包成一個APK檔案,方便應用程式的發布.

         v  大量採用第三方開源或開放 代碼

         v  基於WEBKIT和V8 引擎,4.0版本實現了chrome瀏覽器,支援HTML5 應用開發。

         v  基於BSD License的為嵌入系統最佳化過的C庫– bionic,也是基於效能和著作權考慮。

         v  輕量級的SQLITE資料庫儲存,並提供content providers 組件方便應用程式層跨進程 使用,方便密集資料類型的應用開發。

         v  提供了統一的本地媒體播放架構。

         v  提供對OPENGL ES 、skia的支援, 因此可以支援開發2D/3D UI介面。

         v  影響效能的關鍵服務採用C++本地服務實現,如(媒體架構、 Audio Flinger、 surface Flinger)。

         以上這些重大的架構設計決策有效滿足了廠商、開發人員、終端使用者的利益,因此再加上google的號召力,ANDROID開放作業系統成為目前最流行的移動作業系統是必然的。

                               歡迎轉載,轉載請註明出處。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.