Android 操做系統-新手必知

  Android 操做系統-新手必知
Android 操做系統介紹數據庫


Android是Google於2007年11月05日宣佈的基於Linux平臺的開源手機操做系統的名稱,該平臺由操做系統、中間件、用戶界面和應用軟件組成。它採用軟件堆層(Software Stack,又名軟件疊層)的架構,主要分爲三部分。底層以Linux內核工做爲基礎,由C語言開發,只提供基本功能;中間層包括函數庫Library和 虛擬機Virtual Machine,由C++開發。最上層是各類應用軟件,包括通話程序,短信程序等,應用軟件則由各公司自行開發,以Java做爲編寫程序的一部分。瀏覽器


Android一詞的本義指「機器人」,最初的Android主要支持手機,後來通過開發改良,逐漸擴展到平板電腦及其餘一些領域上,是首個爲移動終端打造的真正的開放和完整的移動軟件。安全


系統架構:數據結構


Android的系統架構和其操做系統同樣,採用了分層的架構。Android分爲四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和Linux內核層。架構


1、應用程序
Android會同一系列核心應用程序包一塊兒發佈,該應用程序包包括客戶端,SMS短消息程序,日曆,地圖,瀏覽器,聯繫人管理程序等。全部的應用程序都是使用JAVA語言編寫的。框架


2、應用程序框架
開發人員也能夠徹底訪問核心應用程序所使用的API框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序均可以發佈它的功能塊而且任何其它的應用程序均可以使用其所發佈的功能塊(不過得遵循框架的安全性)。一樣,該應用程序重用機制也使用戶能夠方便的替換程序組件。ionic


3、系統運行庫
Android 包含一些C/C++庫,這些庫能被Android系統中不一樣的組件使用。它們經過 Android 應用程序框架爲開發者提供服務。ide


4、Linux內核層
Android內核是基於Linux 內核的修改的內核版本,它提供了用於支持Android平臺的設備驅動。函數


系統結構:工具


1、系統內核
Android 是運行於Linux kernel之上,但並非GNU/Linux。由於在通常GNU/Linux 裏支持的功能,Android 大都沒有支持,包括Cairo、X十一、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 所產生的,這樣作是爲了保留常數、數據結構與宏。


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


3、中介軟件
操做系統與應用程序的溝通橋樑,應用分爲兩層:函數層(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格式的文件。


4、安全權限機制


Android自己是一個權限分立的操做系統。在這類操做系統中,每一個應用都以惟一的一個系統識別身份運行(Linux用戶ID與羣組ID)。系統的各部分也分別使用各自獨立的識別方式。Linux就是這樣將應用與應用,應用與系統隔離開。


應用組件:


Android開發四大組件分別是:
1、活動(Activity): 用於表現功能。
2、服務(Service): 後臺運行服務,不提供界面呈現。
3、廣播接收器(BroadcastReceiver):用於接收廣播。
4、內容提供商(ContentProvider): 支持在多個應用中存儲和讀取數據,至關於數據庫。


Android 操做系統的優勢:


1、開源
Android不像其餘的操做系統那樣封閉。它是開源的,容許第三方修改。所謂的「開源」是用於描述那些源碼能夠被公衆使用的軟件,而且此軟件的使用、修改和發行也不受限制。Android操做系統的開源意味着開放的平臺容許任何移動端的廠商加入到Android聯盟中來。同時專業人士也能夠利用其開放的源代碼進行二次開發,打造出個性化的Android。


2、給用戶的自由度高
Android操做系統給予了用戶跟高的自由度,熟悉Android的都清楚:用戶能夠根據本身的喜愛來設置手機界面,Android的應用市場甚至上還有各式各樣的啓動器來供用戶本身選擇,讓本身的手機不同凡響。 深圳安卓學習實訓,小班授課,實操爲主,詳情聯繫郭老師QQ754634522


3、選擇多樣化
因爲Android的開放性,衆多的廠商爲了迎合大衆會推出層出不窮的新產品。迄今爲止,以Android爲操做系統的機型已經達到了幾十上百種。可是這些功能、機型上的差別不會影響到數據的同步、軟件的兼容等等。這樣便給了消費者更多地購機選擇。

 

更多學習單片機嵌入式 ARM PCB FPGA DSP Linux c 的童鞋請諮詢郭老師QQ1962426343 TEL:15737137972 深圳 廣州 鄭州 長沙 南寧同步學習中。。

相關文章
相關標籤/搜索