Android

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

Android(安卓)

官方網站網址:http://www.android.com/

目錄

什麼是Android

  Android是基於Linux開放性內核的操作系統,是Google公司在2007年11月5日公佈的手機操作系統。早期由原名為"Android"的公司開發,谷歌在2005年收購"Android.Inc"後,繼續進行對Android系統開發運營,它採用了軟體堆層(software stack,又名軟體疊層)的架構,主要分為三部分。底層Linux內核只提供基本功能,其他的應用軟體則由各公司自行開發,部分程式以Java編寫。

  2011年初數據顯示,僅正式上市兩年的操作系統Android已經超越稱霸十年的塞班系統,使之躍居全球最受歡迎的智能手機平臺。現在,Android系統不但應用於智能手機,也在平板電腦市場急速擴張。採用Android系統主要廠商包括臺灣的HTC,(第一臺谷歌的手機G1由HTC生產代工)美國摩托羅拉,SE等,中國大陸廠商如:華為中興聯想等。

  Android一詞最早出現於法國作家利爾亞當在1886年發表的科幻小說《未來夏娃》中。他將外表像人的機器起名為Android。

Android的系統架構

一、應用程式

  Android以Java為編程語言,使介面到功能,都有層出不窮的變化,其中Activity等同於J2ME的MIDlet,一個Activity類(class)負責創建視窗(window),一個活動中的Activity就是在 foreground(前景)模式,背景運行的程式叫做Service。兩者之間通過由ServiceConnection和AIDL連結,達到複數程式同時運行的效果。如果運行中的 Activity 全部畫面被其他 Activity 取代時,該 Activity 便被停止(stopped),甚至被系統清除(kill)。

  View等同於J2ME的Displayable,程式人員可以通過 View 類與“XML layout”檔將UI放置在視窗上,Android 1.5的版本可以利用 View 打造出所謂的 Widgets,其實Widget只是View的一種,所以可以使用xml來設計layout,HTC的Android Hero手機即含有大量的widget。至於ViewGroup 是各種layout 的基礎抽象類(abstract class),ViewGroup之內還可以有ViewGroup。View的構造函數不需要再Activity中調用,但是Displayable的是必須的,在Activity 中,要通過findViewById()來從XML中取得View,Android的View類的顯示很大程度上是從XML中讀取的。View 與事件(event)息息相關,兩者之間通過Listener 結合在一起,每一個View都可以註冊一個event listener,例如:當View要處理用戶觸碰(touch)的事件時,就要向Android框架註冊View.OnClickListener。另外還有Image等同於J2ME的BitMap。

二、中介軟體

  操作系統與應用程式的溝通橋梁,並用分為兩層:函數層(Library)和虛擬機(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同時包含了Webkit,所謂的Webkit 就是Apple Safari 瀏覽器背後的引擎。Surface flinger 是就2D或3D的內容顯示到屏幕上。Android使用工具鏈(Toolchain)為Google自製的Bionic Libc。

  Android採用OpenCORE作為基礎多媒體框架。OpenCORE可分7大塊:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。

  Android 使用skia 為核心圖形引擎,搭配OpenGL/ES。skia與Linux Cairo功能相當,但相較於Linux Cairo, skia 功能還只是陽春型的。2005年Skia公司被Google收購,2007年初,Skia GL源碼被公開,目前Skia 也是Google Chrome 的圖形引擎。

  Android的多媒體資料庫採用SQLite資料庫系統資料庫又分為共用資料庫及私用資料庫。用戶可通過ContentResolver類(Column)取得共用資料庫。

  Android的中間層多以Java 實現,並且採用特殊的Dalvik 虛擬機(Dalvik Virtual Machine)。Dalvik虛擬機是一種“暫存器型態”(Register Based)的Java虛擬機,變數皆存放於暫存器中,虛擬機的指令相對減少。

  Dalvik虛擬機可以有多個實例(instance),每個Android應用程式都用一個自屬的Dalvik虛擬機來運行,讓系統在運行程式時可達到優化。Dalvik虛擬機並非運行Java位元組碼(Bytecode),而是運行一種稱為.dex格式的文件。

三、硬體抽像層

  Android 的 HAL(Hardware Abstraction Layer、硬體抽像層)是能以封閉源碼形式提供硬體驅動模塊。HAL 的目的是為了把 Android framework 與 Linux kernel 隔開,讓 Android 不至過度依賴 Linux kernel,以達成 kernel independent 的概念,也讓 Android framework 的開發能在不考量驅動程式實現的前提下進行發展。

  HAL stub 是一種代理人(proxy)的概念,stub 是以 *.so 檔的形式存在。Stub 向 HAL“提供”操作函數(operations),並由 Android runtime 向 HAL 取得 stub 的 operations,再 callback 這些操作函數。HAL 里包含了許多的 stub(代理人)。Runtime 只要說明“類型”,即 module ID,就可以取得操作函數。

四、編程語言

  Android 是運行於Linux kernel之上,但並不是GNU/Linux。因為在一般GNU/Linux 里支持的功能,Android 大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 為了達到商業應用,必須移除被GNU GPL授權證所約束的部份,例如Android將驅動程式移到userspace,使得Linux driver 與 Linux kernel徹底分開。bionic/libc/kernel/ 並非標準的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所產生的,這樣做是為了保留常數、數據結構與巨集。

  目前Android 的 Linux kernel控制包括安全(Security),存儲器管理(Memory Management),程式管理(Process Management),網路堆棧(Network Stack),驅動程式模型(Driver Model)等。下載Android源碼之前,先要安裝其構建工具 Repo來初始化源碼。Repo 是 Android 用來輔助Git工作的一個工具。

Android的歷史

  • 2005年,Google收購了成立僅22個月的高科技企業Android。 
  • 2007年11月5日,Google公司正式向外界展示Android操作系統。 
  • 2007年11月5日,Google與34家手機製造商、軟體開發商、電信運營商和晶元製造商共同創建開放手持設備聯盟(簡稱:OHA)。 
  • 2008年,Patrick Brady於Google I/O大會上提出Android HAL架構圖。 
  • 2008年8月18日,Android獲得美國聯邦通信委員會的批准。 
  • 2008年9月,Android1.0正式發佈。
  • 2008年9月22日,美國運營商德國T-Mobile在紐約正式對外發佈第一款Android手機——T-Mobile G1。該款手機為臺灣巨集達電子(HTC)代工製造,是世界上第一部使用Android操作系統的手機。
  • 2008年10月,全球業界都表示不看好Android操作系統,並且聲稱最多1年,Android就會被Google關閉。
  • 2008年10月22日,T-Mobile G1正式發售。
  • 2009年4月30日,Android1.5正式發佈。
  • 2009年4月,HTC G1和HTC G2市場大賣成為僅次於iPhone的熱門機型。
  • 2009年9月15日,Android1.6正式發佈。
  • 2009年9月,HTC Hero G3廣受歡迎,成為全球最受歡迎的機型。
  • 2009年10月28日,Android 2.0 智能手機操作系統正式發佈。
  • 2009年10月,Google發佈了旗下第一款自主品牌手機:Nexus one(HTC G5)。該款手機為臺灣巨集達電子(HTC)代工製造。
  • 2010年1月7日,Nexus One開始對外發售。
  • 2010年2月3日,Linux內核開發者Greg Kroah-Hartman將Android的驅動程式從Linux內核“狀態樹”(“staging tree”)上除去,從此,Android與Linux開發主流將分道揚鑣。
  • 2010年5月19日,Google正式對外發佈Android2.2智能操作系統。
  • 2010年5月20日,Google對外正式展示了搭載Android系統的智能電視-Google TV,該電視為全球首台智能電視。
  • 2010年7月1日,Google宣佈正式與雅虎亞馬遜合作,並且在Android上推出多項Kindle服務和雅虎服務。
  • 2010年7月9日,美國NDP集團調查顯示,Android系統已占據了美國移動系統市場28%的份額,全球17%的市場份額
  • 2010年9月,Android應用數量超過9萬個。
  • 2010年9月21日,Google對外公佈數據,每日銷售的Android設備的新用戶數達到20萬。
  • 2010年10月26日,Google宣佈Android達到第一個裡程碑:電子市場上獲得官方數字認證的Android應用數量已經達到10萬個。
  • 2010年12月7日,Google正式發佈Android2.3操作系統。
  • 2011年1月,Android應用數量超過20萬。
  • 2011年1月,Google對外公佈數據,每日Android設備的新用戶數達到30萬。
  • 2011年2月2日,Android3.0正式發佈。
  • 2011年3月25日,谷歌暫停開源Android3.0,並將暫時阻止小型手機生產商使用其Android3.0“Honeycomb”系統,期限未定。
  • 2011年7月,Google對外公佈數據,Android每天的新用戶達到55萬,Android設備用戶總數達1.35億。
  • 2011年8月,谷歌收購摩托羅拉移動
  • 2011年9月,數據顯示,Android應用數目已經達到48萬。
  • 2011年9月,Android的市場占有率達到43%。

Android的優勢

  1、開放性

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

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

  2、掙脫運營商的束縛

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

  3、豐富的硬體選擇

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

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

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

  5、無縫結合的Google應用

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

本條目對我有幫助9
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目

本条目由以下用户参与贡献

KAER,Yixi,彭家傑,Mis铭,Tracy,刘维燎,苏青荇.

評論(共1條)

提示:評論內容為網友針對條目"Android"展開的討論,與本站觀點立場無關。
123.150.182.* 在 2014年11月19日 00:26 發表

怎麼老是系統更新失敗啊

回複評論

發表評論請文明上網,理性發言並遵守有關規定。

MBA智库
打开APP

以上内容根据网友推荐自动排序生成