Android系統軟件開發第二講:Android手機簡介_第1頁
Android系統軟件開發第二講:Android手機簡介_第2頁
Android系統軟件開發第二講:Android手機簡介_第3頁
Android系統軟件開發第二講:Android手機簡介_第4頁
Android系統軟件開發第二講:Android手機簡介_第5頁
已閱讀5頁,還剩27頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Android系統軟件開發第二講--Android簡介Android簡介Android一詞的本義指“機器人”。Google在2007年11月5日宣布的基于Linux平臺的開源操作系統Android,該平臺由操作系統、中間件、用戶界面和應用軟件組成,目標是為移動終端打造開放和完整的移動軟件。目前,最新版本為Android2.4Gingerbread和Android3.0Honeycomb。發行版本1.11.51.62.02.12.22.32.43.03.13.2開放聯盟Google和幾十個相關企業建立了開放聯盟〔OpenHandsetAlliance〕。聯盟成員包括摩托羅拉〔Motorola〕、HTC、SAMSUNG、LG、Intel、NVIDIA、SiRF、Skype、KUPAMap、MTK以及中國移動在內的34家技術和無線應用的領軍企業。這34家企業中并不包含把持Symbian的Nokia公司,以及憑借著iPhone風光正在的Apple公司,微軟沒有參加,加拿大RIM和它的Blackberry也被擋在門外團隊介紹Android平臺的研發隊伍,Google、HTC(宏達電)、T-Mobile、高通、摩托羅拉、三星、LG以及中國移動在內的34家企業都將基于該平臺開發的新型業務,應用之間的通用性和互聯性將在最大程度上得到保持。“開放聯盟”表示,Android平臺可以促使移動設備的創新,讓用戶體驗到最優越的移動效勞,同時,開發商也將得到一個新的開放級別,更方便的進行協同合作,從而保障新型移動設備的研發速度。團隊介紹34家企業的加盟,也將大大降低新型設備的研發本錢,完全整合的“全移動功能性產品”成為“開放聯盟”的最終目標。終端制造商移動運行商半導體公司軟件公司半導體公司具備優勢存在缺陷硬件抽象層HAL〔硬件抽像層〕是能以封閉源碼形式提供硬件驅動模塊。HAL的目的是為了把Androidframework與Linuxkernel隔開,讓Android不至過度依賴Linuxkernel,以達成kernelindependent的概念,也讓Androidframework的開發能在不考量驅動程序實現的前提下進行開展。硬件抽象層HALstub是一種代理人〔proxy〕的概念,stub是以*.so檔的形式存在。Stub向HAL“提供”操作函數〔operations〕,并由Androidruntime向HAL取得stub的operations,再callback這些操作函數。HAL里包含了許多的stub〔代理人〕。Runtime只要說明“類型”,即moduleID,就可以取得操作函數。中介軟件中介軟件操作系統與應用程序的溝通橋梁,應用分為兩層:函數層〔Library〕和虛擬機〔VirtualMachine〕。Bionic是Android改進libc的版本。Android同時包含了Webkit,所謂的Webkit就是AppleSafari瀏覽器背后的引擎。Surfaceflinger是就2D或3D的內容顯示到屏幕上。Android使用工具鏈(Toolchain)為Google自制的BionicLibc。中介軟件Android采用OpenCORE作為根底多媒體框架。OpenCORE可分7大塊:PVPlayer、PVAuthor、Codec、Common、PacketVideoMultimediaFramework(PVMF)、OperatingSystemCompatibilityLibrary(OSCL)、OpenMAX。中介軟件

Android使用skia為核心圖形引擎,搭配OpenGL/ES。skia與LinuxCairo功能相當,但相較于LinuxCairo,skia功能還只是雛形的。2005年Skia公司被Google收購,2007年初,SkiaGL源碼被公開,目前Skia也是GoogleChrome的圖形引擎。中介軟件Android的多媒體數據庫采用SQLite數據庫系統。數據庫又分為共用數據庫及私用數據庫。Android的中間層多以Java實現,并且采用特殊的Dalvik虛擬機〔DalvikVirtualMachine〕。Dalvik虛擬機是一種“暫存器型態”〔RegisterBased〕的Java虛擬機,變量皆存放于暫存器中,虛擬機的指令相對減少。中介軟件Dalvik虛擬機可以有多個實例〔instance〕,每個Android應用程序都用一個自屬的Dalvik虛擬機來運行,讓系統在運行程序時可到達優化。Dalvik虛擬機并非運行Java字節碼〔Bytecode〕,而是運行一種稱為.dex格式的文件。平安和權限Android本身是一個權限分立的操作系統。在這類操作系統中,每個應用都以唯一的一個系統識別身份運行〔Linux用戶ID與群組ID〕。系統的各局部也分別使用各自獨立的識別方式。Linux就是這樣將應用與應用,應用與系統隔離開。系統更多的平安功能通過權限機制提供。權限可以限制某個特定進程的特定操作,也可以限制每個URI權限對特定數據段的訪問。平安和權限Android平安架構的核心設計思想是,所有應用都沒有權限對其他應用、系統或用戶進行較大影響的操作。這其中包括讀寫用戶隱私數據〔聯系人或電子郵件〕,讀寫其他應用文件,訪問網絡或阻止設備待機等。

安裝應用時,在檢查程序簽名提及的權限,且經過用戶確認后,軟件包安裝器會給予應用權限。平安和權限Android權限:撥打、發送短信或彩信、修改/刪除SD卡上的內容;讀取聯系人信息、讀取日程信息,寫入日程數據;基于GPS地理位置、模糊的〔基于網絡獲取〕地理位置;創立藍牙連接、對互聯網的完全訪問、查看網絡狀態;平安和權限Android權限:查看WiFi狀態、防止待機、修改系統全局設置;讀取同步設定、開機自啟動、重啟其他應用;終止運行中的應用、設定偏好應用、震動控制;讀取狀態或識別碼、拍攝圖片等。平安和權限一款應用應該根據自身提供的功能,要求合理的權限。用戶也可以分析一款應用所需權限,從而簡單判定這款應用是否平安。如一款應用是不帶廣告的單機版,也沒有任何附加內容需要下載,那么它要求訪問網絡的權限就比較可疑。編程語言Android是運行于Linuxkernel之上,但并不是GNU/Linux。因為在一般GNU/Linux里支持的功能,Android大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等。編程語言Android為了到達商業應用,移除被GNUGPL授權證所約束的部份,例如Android將驅動程序移到userspace,使得Linuxdriver與Linuxkernel徹底分開。bionic/libc/kernel/并非標準的kernelheaderfiles。Android的kernelheader是利用工具由Linuxkernelheader所產生的,這樣做是為了保存常數、數據結構與宏。編程語言目前Android的Linuxkernel控制包括平安〔Security〕、存儲器管理〔MemoryManagement〕、程序管理〔ProcessManagement〕、網絡堆棧〔NetworkStack〕、驅動程序模型〔DriverModel〕等。下載Android源碼之前,先要安裝其構建工具Repo來初始化源碼。Repo是Android用來輔助Git工作的一個工具。Android開發Android以Java為編程語言。Activity--負責創立視窗〔window〕,一個活動中的Activity就是在foreground〔前景〕模式,背景運行的程序叫做Service。兩者之間通過由ServiceConnection和AIDL連結,到達復雜程序同時運行的效果。Android開發運行中的Activity全部畫面被其他Activity取代時,該Activity便被停止〔stopped〕,甚至被系統去除〔kill〕。View--程序人員可以通過View類與“XMLlayout”檔將UI放置在視窗上。Android1.5的版本可以利用View打造出所謂的Widgets,其實Widget只是View的一種,所以可以使用xml來設計layout,HTC的AndroidHero即含有大量的widget。Android開發ViewGroup是各種layout的根底抽象類〔abstractclass〕,ViewGroup之內還可以有ViewGroup。View的構造函數不需要再Activity中調用,但是Displayab

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論