1. 程式人生 > >什麼是Android——Android平臺簡介

什麼是Android——Android平臺簡介

什麼是Android

——Android平臺簡介




Keyword: Google Android,Linux核心,開源,應用領域,開放手機聯盟(Open Handset Alliance)

     在網上看到有“Android平臺”和“Android框架”的概念,首先要清楚的是:“Android框架”只是“平臺”的一部分而已。

     Android早期由Andy Rubin(Android之父)創辦,Google於2005年收購了成立公22個月的Android公司,開始了簡訊、手機檢索、定位等業務,進入了 基於Linux平臺的開發。Google公司在2007年11月5日正式公佈了這個平臺,之後由開放手機聯盟(Open Handset Alliance)開發。Open Handset Alliance組織由一群共同致力於構建更好的行動電話的公司組成。這個組織由Google領導,包括移動運營商、手持裝置製造商、零部件製造商、軟體 解決方案和平臺提供商以及市場營銷公司。

     Android平臺的更新速度很快,第一個版本是Android 1.5 Cupcake(蛋糕杯)接下來是Android 1.6 Donut(甜甜圈)、Android 2.0/2.0.1/2.1 Eclair (法式奶油夾心鬆餅)、Android 2.2/2.2.1 Froyo(凍酸奶)、Android 2.3 Gingerbread (薑餅人)、Android 3.0 Honeycomb(蜂巢)。3.0是為平板電腦優化的版本。還有流傳的Android 2.4 Ice Cream Sandwich(冰激凌三明治)和Android ?? Jelly Bean(膠質軟糖)  。可以發現一個有趣的事情,就是每個釋出代號都是一個甜品名稱,並且是從字母C開始順序向後排。

     從Android的發展看來,它已經不再侷限於移動應用領域了,還可以關注一下Google TV (執行Android系統的電視機=,=),試想一下還有可能出現安裝有Android的汽車、微波爐、電冰箱......

     來看看到底什麼是Android吧,它是一個平臺、是一個作業系統、使用Linux核心、包含一套開發框架、各種執行庫(Media、SQLite、 OpenGL ES等)、Dalvik虛擬機器,提供了Android SDK,包含豐富的(還算豐富=,=)工具集(有偵錯程式、庫、手機模擬器、文件、示例程式碼和教程),還有Android Development Tools(ADT),是基於Eclipse的開發輔助外掛

下圖顯示了Android作業系統的架構。

從上圖中可以清楚的看出:

  • 最上層是面向使用者的Application(應用程式),包括電話程式、聯絡人程式、瀏覽器、地圖、Email等。
  • 下面是Application Framework,為開發人員提供訪問核心元件所使用的API,包含了豐富的View元件、Content Providers(內容提供器)用來訪問另一個應用程式的資料(如聯絡人),或者共享它們自己的資料、Resource Manager(資源管理器)提供對資源的訪問(如本地字串,圖形,佈局檔案等)、Notification Manager(通知管理器)、Activity Manager(活動管理器)等等。
  • 第三層是系統執行庫,包含程式庫和Android執行庫。

     一、程式庫中包含了一些C/C++庫,通過應用框架為開發者提供服務,如:Libc(從BSD繼承來的標準C系統函式庫)、媒體庫、SGL(2D圖形引 擎)、3D libraries(基於OpenGL ES 1.0 APIs實現,可以使用硬體或軟體3D加速)、SQLite(資料庫引擎)等等。

     二、Android執行庫包括一個核心庫,該核心庫提供了JAVA程式語言核心庫的大多數功能。每一個Android應用程式都在自己的程序中執行,都擁 有一個獨立的Dalvik虛擬機器例項。Dalivk被設計成一個裝置可以同時高效地執行多個虛擬系統。Dalivk虛擬機器執行.dex檔案(Dalvik 的可執行檔案),該格式檔案針對小記憶體使用做了優化。同時虛擬機器是基於暫存器的,所有類都經由Java編譯器編譯,然後通過SDK中的dx工具轉化 成.dex格式,由虛擬機器執行。Dalivik虛擬機器依賴於linux核心的一些功能,比如執行緒機制和底層記憶體管理機制。

  • 接下來一層是Hardware Abstract Layer(硬體抽象層),你在早期的架構圖中看不到這一層。2008年,Patrick Brady就提出了Android HAL架構,它是為了把Linux kernel與上層框架完全隔開,讓Android不至於過度依賴Linux kernel,可以讓Android Framework的開發能在不考慮驅動程式的前提下進行。HAL仍以*.so形式存在,Stub向HAL“提供”操作函式,Runtime則是向HAL 取得特定模組的操作(operations)。2010年2月3日,Linux核心的開發者,將Android的驅動程式從Linux核心Staging tree(狀態樹)上去除,從此,Android與Linux核心開發就分開了。



 

  • 最下面一層是Linux核心,Android的核心繫統依賴於Linux核心,如安全性、記憶體管理、程序管理、網路協議棧和驅動模型。Android的 Linux kernel也不是GNU/Linux。Android將驅動程式移到userspace,使得Linux driver與Linux kernel分開。


Android平臺五大優勢特色


這些找工作的時候可能會被問到吧=,=


一、開放性


     在優勢方面,Android平臺首先就是其開發性,開發的平臺允許任何移動終端廠商加入到Android聯盟中來。顯著的開放性可以使其擁有更多的開發者,隨著使用者和應用的日益豐富,一個嶄新的平臺也將很快走向成熟。


     開發性對於Android的發展而言,有利於積累人氣,這裡的人氣包括消費者和廠商,而對於消費者來講,隨大的受益正是豐富的軟體資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。


二、掙脫運營商的束縛


  在過去很長的一段時間,特別是在歐美地區,手機應用往往受到運營商制約,使用什麼功能接入什麼網路,幾乎都受到運營商的控制。自從iPhone上市, 使用者可以更加方便地連線網路,運營商的制約減少。隨著EDGE、HSDPA這些2G至3G行動網路的逐步過渡和提升,手機隨意接入網路已不是運營商口中的 笑談。


三、豐富的硬體選擇


  這一點還是與Android平臺的開放性相關,由於Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產品。功能上的差異和特 色,卻不會影響到資料同步、甚至軟體的相容。好比你從諾基亞Symbian風格手機一下改用蘋果iPhone,同時還可將Symbian中優秀的軟體帶到 iPhone上使用、聯絡人等資料更是可以方便地轉移。


四、不受任何限制的開發商


  Android平臺提供給第三方開發商一個十分寬泛、自由的環境。因此不會受到各種條條框框的阻擾,可想而知,會有多少新穎別緻的軟體會誕生。但也有其兩面性,血腥、暴力、情色方面的程式和遊戲如可控制正是留給Android難題之一。


五、無縫結合的Google應用


  如今叱詫網際網路的Google已經走過10年度歷史。從搜尋巨人到全面的網際網路滲透,Google服務如地圖、郵件、搜尋等已經成為連線使用者和網際網路的重要紐帶,而Android平臺手機將無縫結合這些優秀的Google服務。