Android系統(tǒng)學習總結(jié)一
掃描二維碼
隨時隨地手機看文章
一、如何學習android系統(tǒng)?
1、了解android系統(tǒng)
主要包括發(fā)展歷史,android的基本架構(gòu),內(nèi)核,文件系統(tǒng)。
2、使用android系統(tǒng)
現(xiàn)在基本上有android手機的人天天都在用。
3、研究學習android系統(tǒng)
主要包括獲取源代碼、編譯運行系統(tǒng)源碼、編譯的原理、系統(tǒng)啟動流程。
4、定制修改開發(fā)android系統(tǒng)
主要包括進行系統(tǒng)定制,android底層開發(fā)。
二、android的發(fā)展史
2003年Android公司成立,系統(tǒng)開始開發(fā)
2005年Android公司被google公司收購
2007年11月5日,google公司成立手機開發(fā)聯(lián)盟
2008年9月Android 1.0正式發(fā)布,HTC的G1手機使用
三、android系統(tǒng)整體框架
其中包括幾個重要的組成部分,主要有如下:
1、Linux內(nèi)核
android系統(tǒng)在標準linux內(nèi)核的基礎上加了android特有的一些驅(qū)動。
binder驅(qū)動,用于進程間通訊
還有電源管理,音頻驅(qū)動,輸入設備驅(qū)動等。
2.android核心庫層
2.1 libc
BSD繼承來的標準C系統(tǒng)函數(shù)庫
2.2 SSL(Secure Sockets Layer 安全套接層)
SSL在傳輸層對網(wǎng)絡連接進行加密, 有以下三個功能:
(1) 使用公鑰證書對雙端進行認證
(2) 通信加密
(3) 數(shù)據(jù)完整性檢查
2.3 SGL
底層的2D圖形引擎
2.4 Webkit
web瀏覽器引擎,支持Android瀏覽器和一個可嵌入的web視圖
2.5 FreeType
位圖(bitmap)和矢量(vector)字體顯示
2.6 OpenGL ES
3D加速庫,支持硬件加速及高度優(yōu)化的軟件加速
2.7 SQLite
強勁的輕型關系型數(shù)據(jù)庫引擎
2.8 Media Framework
基于PacketVideo OpenCORE實現(xiàn),支持多種常用的音頻(MP3、AAC和AMR)、視頻格式(MPEG4, H.264)的錄制回放,支持靜態(tài)圖片文件(JPG, PNG)
2.9 Surface Managerd
對顯示子系統(tǒng)的管理,為多個應用程序提供2D和3D圖層的無縫融合dw
android運行時環(huán)境
包含Dalvik虛擬機和java核心庫,提供java編程語言核心庫大多數(shù)功能。
Dalvik,冰島小漁村的名字,非常小,非常美麗
java虛擬機。
a.每一個android應用程序在獨立的虛擬機中運行,每一個虛擬機一個進程。xxx.java
b.基于寄存器,一般jvm都是基于棧的,所以速度快。
c.執(zhí)行.dex壓縮文件,針對內(nèi)存優(yōu)化。
d.java類通過java編譯器編譯成.class,然后再由dx生成.dex文件。
e.依賴于linux內(nèi)核的一些東西,線程和內(nèi)存管理等。
3.應用程序框架層
主要是為了讓應用程序開發(fā)更加方便,快捷,容易。不然一個系統(tǒng)如果應用程序開發(fā)難,那么相關應用程序自然就少,應用少的話玩的人自然就少。
3.1 Activity Manager
window + 用戶交互代碼,主要用于管理應用程序的生命周期。
3.2 window Manager
顯示窗口管理
3.3 view system
基本界面組件
3.4 資源管理器
管理應用程序相關的字符串,圖片,布局文件等資源
3.5 內(nèi)容提供者
用來應用程序和應用程序之間共享數(shù)據(jù)的,比如電話應用和短信應用共享聯(lián)系人信息。
3.6包管理器
管理應用程序包
3.7 電話管理器
電話相關業(yè)務
3.8 消息(Notification)Manager
在狀態(tài)欄顯示信息
3.9 定位管理器
獲得當前地理位置
3.10 XMPP serice
即時消息服務
4.應用程序和小組件
電話,消息等等應用程序,都是java語言開發(fā)。
5. android源代碼獲取
https://android.googlesource.com/
6.android源代碼目錄
abi 應用程序二進制接口
bionic bionic c庫
bootable 啟動引導相關代碼
dalvik dalvik java虛擬機
其中幾個比較重要,跟移植密切相關的目錄:
device 產(chǎn)品相關代碼,按廠家分類
framework 應用程序框架代碼
out 目標輸出目錄
build 編譯系統(tǒng)規(guī)則
developers & development 開發(fā)工具,例子
hardware HAL層代碼,硬件抽象層代碼
packages 系統(tǒng)級應用程序代碼
external 第三方庫工具,webkit 等。
ndk 本地代碼 linux應用層
system 系統(tǒng)核心服務代碼,init初始化程序
免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!





