Android 操作系統-新手必知 Android 操作系統-新手必知 Android 操作系統介紹 Android是Google于2007年11月05日宣布的基于Linux平臺的開源手機操作系統的名稱,該平臺由操作系統、中間件、用戶界面和應用軟件組成。它采用軟件堆層(Software Stack,又名軟件疊層)的架構,主要分為三部分。底層以Linux內核工作為基礎,由C語言開發,只提供基本功能;中間層包括函數庫Library和 虛擬機Virtual Machine,由C++開發。最上層是各種應用軟件,包括通話程序,短信程序等,應用軟件則由各公司自行開發,以Java作為編寫程序的一部分。 Android一詞的本義指“機器人”,最初的Android主要支持手機,后來經過開發改良,逐漸擴展到平板電腦及其他一些領域上,是首個為移動終端打造的真正的開放和完整的移動軟件。 系統架構: Android的系統架構和其操作系統一樣,采用了分層的架構。Android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和Linux內核層。 一、應用程序 Android會同一系列核心應用程序包一起發布,該應用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯系人管理程序等。所有的應用程序都是使用JAVA語言編寫的。 二、應用程序框架 開發人員也可以完全訪問核心應用程序所使用的API框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序都可以發布它的功能塊并且任何其它的應用程序都可以使用其所發布的功能塊(不過得遵循框架的安全性)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。 三、系統運行庫 Android 包含一些C/C++庫,這些庫能被Android系統中不同的組件使用。它們通過 Android 應用程序框架為開發者提供服務。 四、Linux內核層 Android內核是基于Linux 內核的修改的內核版本,它提供了用于支持Android平臺的設備驅動。 系統結構: 一、系統內核 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 的HAL(硬件抽像層)是能以封閉源碼形式提供硬件驅動模塊。HAL 的目的是為了把 Android framework 與 Linux kernel 隔開,讓 Android 不至過度依賴 Linux kernel,以達成 Kernel independent 的概念,也讓 Android framework 的開發能在不考量驅動程序實現的前提下進行發展。 三、中介軟件 操作系統與應用程序的溝通橋梁,應用分為兩層:函數層(Library)和虛擬機(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同時包含了Webkit,所謂的Webkit 就是Apple Safari 瀏覽器背后的引擎。Surface flinger 是就2D或3D的內容顯示到屏幕上。Android使用工具鏈(Toolchain)為Google自制的BionicLibc。 Android采用OpenCORE作為基礎多媒體框架。Open CORE可分7大塊:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。 Android 使用skia 為核心圖形引擎,搭配OpenGL/ES。skia與LinuxCairo功能相當,但相較于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本身是一個權限分立的操作系統。在這類操作系統中,每個應用都以唯一的一個系統識別身份運行(Linux用戶ID與群組ID)。系統的各部分也分別使用各自獨立的識別方式。Linux就是這樣將應用與應用,應用與系統隔離開。 應用組件: Android開發四大組件分別是: 一、活動(Activity): 用于表現功能。 二、服務(Service): 后臺運行服務,不提供界面呈現。 三、廣播接收器(BroadcastReceiver):用于接收廣播。 四、內容提供商(ContentProvider): 支持在多個應用中存儲和讀取數據,相當于數據庫。 Android 操作系統的優點: 一、開源 Android不像其他的操作系統那樣封閉。它是開源的,允許第三方修改。所謂的“開源”是用于描述那些源碼可以被公眾使用的軟件,并且此軟件的使用、修改和發行也不受限制。Android操作系統的開源意味著開放的平臺允許任何移動端的廠商加入到Android聯盟中來。同時專業人士也可以利用其開放的源代碼進行二次開發,打造出個性化的Android。 二、給用戶的自由度高 Android操作系統給予了用戶跟高的自由度,熟悉Android的都清楚:用戶可以根據自己的喜好來設置手機界面,Android的應用市場甚至上還有各式各樣的啟動器來供用戶自己選擇,讓自己的手機與眾不同。 深圳安卓學習實訓,小班授課,實操為主,詳情聯系郭老師QQ754634522 三、選擇多樣化 由于Android的開放性,眾多的廠商為了迎合大眾會推出層出不窮的新產品。迄今為止,以Android為操作系統的機型已經達到了幾十上百種。但是這些功能、機型上的差異不會影響到數據的同步、軟件的兼容等等。這樣便給了消費者更多地購機選擇。 更多學習單片機嵌入式 ARM PCB FPGA DSP Linux c 的童鞋請咨詢郭老師QQ1962426343 TEL:15737137972 深圳 廣州 鄭州 長沙 南寧同步學習中。。 |