馬上加入Android 台灣中文網,立即免費下載應用遊戲。
您需要 登錄 才可以下載或查看,沒有帳號?註冊
x
Android一詞的本義指“機器人”,同時也是Google於2007年11月5日宣布的基於Linux平台的開源手機操作系統的名稱,該平台由操作系統、中間件、用戶界面和應用軟件組成,號稱是首個為移動終端打造的真正開放和完整的移動軟件。目前,最新版本為Android 2.4 Gingerbread和Android 3.0 Honeycomb
系統簡介
Android是基於Linux開放性內核的操作系統,是Google公司在2007年11月5日公布的手機操作系統。
Android
早期由原名為"Android"的公司開發,谷歌在2005年收購"Android.Inc"後,繼續對Android系統開發運營,它採用了軟件堆層(software stack,又名軟件疊層)的架構,主要分為三部分。底層Linux內核只提供基本功能,其他的應用軟件則由各公司自行開發,部分程序以Java編寫。 2011年初數據顯示,僅正式上市兩年的操作系統Android已經超越稱霸十年的塞班系統,使之躍居全球最受歡迎的智能手機平台。現在,Android系統不但應用於智能手機,也在平板電腦市場急速擴張,在智能MP4方面也有較大發展。採用Android系統主要廠商包括台灣的HTC,(第一台谷歌的手機G1由HTC生產代工)美國摩托羅拉,SE等,中國大陸廠商如:首派(A101、A100、A80、A60S及未上市的A70),魅族(M9),華為、中興、聯想、藍魔等。
統架構
應用程序
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(硬件抽像層)是能以封閉源碼形式提供硬件驅動模塊。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本身是一個權限分立的操作系統。在這類操作系統中,每個應用都以唯一的一個系統識別身份運行(Linux用戶ID與群組ID)。系統的各部分也分別使用各自獨立的識別方式。Linux就是這樣將應用與應用,應用與系統隔離開。 系統更多的安全功能通過權限機制提供。權限可以限制某個特定進程的特定操作,也可以限制每個URI權限對特定數據段的訪問。 Android安全架構的核心設計思想是,在默認設置下,所有應用都沒有權限對其他應用、系統或用戶進行較大影響的操作。這其中包括讀寫用戶隱私數據(聯繫人或電子郵件),讀寫其他應用文件,訪問網絡或阻止設備待機等。
Android應用安裝時的權限提示界面
安裝應用時,在檢查程序簽名提及的權限,且經過用戶確認後,軟件包安裝器會給予應用權限。從用戶角度看,一款Android應用通常會要求如下的權限: 撥打電話、發送短信或彩信、修改/刪除SD卡上的內容、讀取聯繫人信息、讀取日程信息,寫入日程數據、讀取電話狀態或識別碼、精確的(基於GPS)地理位置、模糊的(基於網絡獲取)地理位置、創建藍牙連接、對互聯網的完全訪問、查看網絡狀態,查看WiFi狀態、避免手機待機、修改系統全局設置、讀取同步設定、開機自啟動、重啟其他應用、終止運行中的應用、設定偏好應用、震動控制、拍攝圖片等。 一款應用應該根據自身提供的功能,要求合理的權限。用戶也可以分析一款應用所需權限,從而簡單判定這款應用是否安全。如一款應用是不帶廣告的單機版,也沒有任何附加內容需要下載,那麼它要求訪問網絡的權限就比較可疑。編輯本段發行版本
很多玩家用戶可能會奇怪:“為什麼 Android 會用甜點作為它們系統版本的代號?”這個命名方法開始於 Andoird 1.5 發布的時候。作為每個版本代表的甜點的尺寸越變越大,然後按照26個字母數序:紙杯蛋糕,甜甜圈,松餅,凍酸奶,姜餅,蜂巢。
Android 1.1
發布時間:發布於 2008 年9月
Android 1.5
Cupcake紙杯蛋糕 發布時間:發布於 2009 年 4 月
Android 1.6
Donut甜甜圈 發布時間:2009 年 9 月
Android 2.0
Eclair松餅 發布時間:2009 年 10 月 26 日
Android 2.1
Eclair松餅 發布時間: 2009 年 10 月 26 日,又一個主要版本升級以創紀錄的速度放出。這次,大版本升級到了Android 2.1 “Eclair.”Android 2.1主要特性:提升硬件速度更多屏幕以及分辨率選擇大幅度的用戶界面改良支持 Exchange活動墻紙大幅改進虛擬鍵盤藍牙 2.1Google 地圖
Android 2.2
Froyo凍酸奶 谷歌於北京時間2010年5月20日晚上10:30點在舊金山Moscone會展中心舉辦Google I/O 2010大會第二天的會議,Google正式發布了代號是“froyo 凍酸奶”的Android操作系統2.2版。 相對於上一版本的 改變: 1、整體性能大幅度的提升 2、3G網絡共享功能。 3、Flash的支持。 4、App2sd功能。 5、全新的軟件商店。 6、更多的Web應用API接口的開發。
Android2.3
Gingerbread姜餅
gingerdroid
北京時間2010年12月7日凌晨,Google正式對外發布了他們的下一代智能手機操作系統Android 2.3也就被大家所熟知的Android Gingerbread系統。 主要更新包括: 遊戲:增加了新的垃圾回收和優化處理事件,以提高對遊戲的支持能力。原生代碼可直接存取輸入和感應器事件、EGL/OpenGL ES、OpenSL ES。新的管理窗口和生命週期的框架。 多媒體:支持VP8和WebM視頻格式,提供AAC和AMR寬頻編碼,提供了新的音頻效果器,比如混響、均衡、虛擬耳機和低頻提升 通訊方式:支持前置攝像頭、SIP/VOIP和NFC(近場通訊) 站在用戶的角度看,這次更新的亮點主要有: 簡化界面、速度提升: 更快更直觀的文字輸入: 一鍵文字選擇和複製/粘帖: 改進的電源管理系統: 新的應用管理方式: 原生支持前置攝像頭、互聯網通話和NFC(近場通訊): 系統原生支持VoIP,可以在聯繫人裡加入它的SIP帳戶,然後直接通過系統來撥打VoIP電話。 增加下載管理器:Android 2.4 Ice cream sandwich冰激凌三明治 預計在2011年第四季度發布。其甜品代號為 Ice cream sandwich(冰激凌三明治) 預計與2.3版本之間的變化不會太大,但是會有不少功能更新。畢竟已經採用了新的代號。 目前已知的Android 2.4帶來的更新包括更多的動畫特效、更快的運行速度、軟件通話降噪、視頻聊天等。 Android 2.4系統不會是之前一直謠傳的Android 3.0,其真正的版本號將會是Android 2.4。
Android2.4
2011年5月10日,在舊金山舉行的I/O開發者大會上,谷歌展示了Android 2.4(代號:冰淇淋三明治)智能手機系統。谷歌未透露Android 2.4的上市時間等細節。Android 2.4將解決開發者和消費者最大的抱怨:Android平台的分散。市場上有數以百計的Android設備,雖然選擇很多,但也給開發者帶來困難,很難開發出可滿足如此眾多手機和平板電腦需要的軟件。 谷歌強調,Android 2.4將解決這一問題。另外冰淇淋三明治將包含Honeycomb系統上所有最好的功能。例如“3D”用戶全息界面,可檢測你在屏幕上要找的東西,並據此進行更新。這有點難以解釋,簡單地說就是不管你在顯示屏上看什麼,軟件將自我調整以確保你有完美的視覺體驗。 Android平台正在迅速增長,而且只會變得更大。目前在Android市場有20萬種Android應用程序。谷歌也證實,已激活了1億部Android設備。儘管對冰淇淋三明治了解非常少,但看到谷歌將解決設備分散問題,並增加了一些漂亮的功能,還是令人欣慰。
Android3.0
Honeycomb(蜂巢) 3.0系統特性 ·優化針對平板 ·全新設計的UI增強網頁瀏覽功能 ·n-app purchases功能
Android3.1
Honeycomb 蜂巢(改進3.0BUG) ·經過優化的Gmail電子郵箱; ·全面支持GoogleMaps Android 3.1Honeycomb(3.0改進) Google發布了最新的Android3.1操作系統,新版本最大的改變是將Android手機系統跟平板系統再次合併,從而方便開發者。Android3.1相比3.0的升級有限,除了任務管理器可以滾動,支持USB 輸入設備(鍵盤、鼠標等)。 另外還有,它會支持 Google TV.可以支持XBOX 360無線手柄,這個就強悍了,大屏幕的Android平板電腦肯定會非常吃香,簡直就是一台隨身遊戲機嘛,還是用手感最好的無線手柄的。此外就是一些widget支持的變化,能更加容易的定制屏幕widget插件。
Android 3.2
Honeycomb(蜂巢) 2011年7月13日,谷歌公司放出了新版“蜂巢”Android 3.2的升級源碼,合作廠商摩托羅拉亦在當日發布了針對旗下XOOM平板電腦的升級固件,為用戶更新新版系統。 Android 3.2這一新版平板電腦操作系統開始支持7英寸設備,並引入了應用顯示縮放功能,可以讓那些針對手機開發的應用,更平滑的顯示在平板電腦上 |