Android

From Wikipedia, the free encyclopedia

Android
Remove ads

Android(讀音:['ændrɔid])係一個公開源碼嘅Linux作業系統,主要用喺手提電子產品,好似有電腦功能嘅智能電話平板電腦。家陣未有劃一唐名,粵語用者,多數用番英文名Android叫佢,少數人亦會叫佢做安撞,其它華語地區(大陸同臺灣)一般叫安卓

Android 嘅其他意思,睇 Android (搞清楚)
Quick Facts 開發者, 程式語言 ...
Thumb
Thumb
用Android系統嘅三星智能電話
Thumb
早期Android設備

Android呢個名,最早見於科幻小說《未來夏娃》,係法國作家利爾亞當寫嘅,一八八六年發表。佢將外表似人咁樣,就叫Android。Android操作系統,最初由Andy Rubin創辦[3],最初只係支援手機。二零零五年,由Google收購注資,並同啲手機大廠,一齊搞開放手機聯盟(Open Handset Alliance),開發改良,逐漸擴展到平板電腦同埋其他用途上面[4]

二零一零年末,Andr​​oid正式推出咗兩年,就贏咗十年霸主嘅諾基亞Symbian系統,成爲全球最受歡迎嘅智能手機平台。用Android系統嘅手機廠商,包括HTCSamsungMotorolaLenovoLGSony Ericsson華為等。Android另一對手,iOS係得一個樣,由蘋果公司控制,Android就同佢相反,各廠商可以有唔同設計,可以遷就唔同習慣,算係針對iOS嘅弱點。

Remove ads

歷史

Android早期由「Android之父」Andy Rubin創辦,Google響2005年收購成立咗只有22個月嘅高科技企業Android,展開咗短訊、搵電話、定位等業務,基於Linux嘅通用平台進入咗開發。Google公司響2007年11月5號正式公佈呢個操作系統,2008年,Patrick Brady 喺 Google I/O演講《Anatomy & Physiology of an Android》,重搞咗Andr​​oid HAL架構圖。HAL用*.so檔嘅形式存在,搞到Android framework同Linux kernel隔開。

2010年2月3號,Linux內核開發者Greg Kroah-Hartman將An​​droid嘅驅動由Linux內核「狀態樹」(staging tree)上面剷咗,Android同Linux核心開發分道揚鑣[5]

市場衝擊

其他作業系統好似微軟Windows Mobile,手機商要同微軟畀相當於手機成本10%嘅牌照費,Android就免費開源打​,此外,手機製造商同網絡商為咗要保障收入,通常會限制用戶可以用啲咩功能同服務。Android就唔設限制,可以好似用電腦上網咁,用到好多服務[6]。Android對手有蘋果電腦嘅iOS微軟Windows PhoneRIM用嘅BlackBerry OS系統等[7]

Google Play

内文:Google Play

2009年2月,Google推出Android Market,用戶可以喺嗰度下載手機應用程式(apps)同幫apps評分[8]

2012年3月,Android Market改名做Google Play。

版本

Android系統差唔多每半年升級一次,喺版本10之前每代Android系統都用甜品命名:

  • 1.5 版叫做 Cup Cake (紙杯蛋糕
  • 1.6 版叫做 Donut (冬甩
  • 2.0 版叫做 Eclair (閃電泡芙
  • 2.1 版叫做 Eclair (閃電泡芙)
  • 2.2 版叫做 Froyo (冰凍乳酪
  • 2.3 版叫做 Gingerbread (薑餅
  • 3.0 版叫做 Honeycomb (蜂巢
  • 4.0 版叫做 Ice Cream Sandwich(雪糕三文治
  • 4.1 版叫做 Jelly Bean (啫喱豆
  • 4.2 版叫做 Jelly Bean (啫喱豆)
  • 4.3 版叫做 Jelly Bean (啫喱豆)
  • 4.4 版叫做 KitKat (KitKat朱古力)
  • 5.0 版叫做 Lollipop (波板糖
  • 5.1 版叫做 Lollipop (波板糖)
  • 6.0 版叫做 Marshmallow (棉花糖
  • 7.0 版叫做 Nougat (鳥結糖
  • 8.0 版叫做 Oreo (奧利奧
  • 9.0 版叫做 Pie (
  • 10 版 (開發代號為Q)
  • 11 版

以C D E F G H I J K L M N O P Q字頭順序排列。

More information 代號, 介紹 ...

應用

中國移動基於Android系統開發咗OPhone平台,並於OPhone2.0或以上兼容Android Market。2010年9月,華為推出咗全世界第一部Android2.2嘅手機IDEOS。同年10月,韓國嘅三星電子推出咗7寸嘅Samsung Galaxy Tab同法國嘅愛可視(Archos)推出咗10寸嘅Android 2.2嘅平板電腦。呢兩部平板電腦當時被譽為蘋果iPad嘅殺手,因為佢哋都有USB同Flash瀏覽網頁。

Remove ads

系統架構

Thumb
Android系統架構

應用程式

Android 用 Linux 做核心嘅 Andr​​oid 行動平台,用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嘅Andr​​oid 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,就可以取得操作函數。

程式語言

Thumb
T-Mobile G1

Android係執行於Linux kernel之上,但並唔係GNU/Linux。因為喺一般GNU/Linux裏面支持嘅功能,Android大都冇,包括CairoX11AlsaFFmpegGTKPango以及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 Managemeat)、程序管理(Process Management)、網絡堆疊(Network Stack)、驅動程式模型(Driver Model)等。下載Android源碼之前,要先安裝咗佢嘅構建工具Repo嚟初始化源碼。Repo係Android用來輔助Git工作嘅一個工具。

Remove ads

參考

睇埋

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads