出版時(shí)間:2012-7 出版社:電子工業(yè)出版社 作者:韓超 頁數(shù):434 字?jǐn)?shù):717000
Tag標(biāo)簽:無
內(nèi)容概要
《android核心原理與系統(tǒng)級應(yīng)用高效開發(fā)》是一本介紹android核心開發(fā)的技術(shù)圖書,主要目標(biāo)是讓android的開發(fā)者更深入地理解android系統(tǒng),讓開發(fā)的過程更正確、更有效率。本書主要由兩大部分組成,第1篇自下而上介紹android核心框架層的結(jié)構(gòu),并將開發(fā)的技巧和要點(diǎn)蘊(yùn)含于其中;第2篇偏重系統(tǒng)級的應(yīng)用層,關(guān)注android開發(fā)過程中的重點(diǎn)方面。
《android核心原理與系統(tǒng)級應(yīng)用高效開發(fā)》為android系統(tǒng)級別的開發(fā)者系統(tǒng)化而有條理性地展示了龐大的android系統(tǒng)的軟件結(jié)構(gòu),點(diǎn)明開發(fā)思路;android應(yīng)用程序的開發(fā)者可以通過本書加深認(rèn)識,拓展開發(fā)手段;從事android硬件移植的開發(fā)者可以通過本書加深對系統(tǒng)全局的了解。
作者簡介
韓 超
中國大陸地區(qū)Linux和移動(dòng)設(shè)備領(lǐng)域的資深工程師、架構(gòu)師。長期從事一線開發(fā)工作,兼具開發(fā)實(shí)踐經(jīng)驗(yàn)和完備的教育思維模式。韓超是中國大陸地區(qū)較早開發(fā)Android系統(tǒng)的人員,曾從事系統(tǒng)框架、芯片移植適配和移動(dòng)產(chǎn)品等開發(fā)領(lǐng)域;也曾經(jīng)引領(lǐng)各種技術(shù)人員進(jìn)入Android領(lǐng)域,并組織參與技術(shù)交流。曾出版《Android系統(tǒng)原理及開發(fā)要點(diǎn)詳解》、《Android系統(tǒng)級深入開發(fā)——移植與調(diào)試》、《Android經(jīng)典應(yīng)用程序開發(fā)》、《Android核心原理與系統(tǒng)級應(yīng)用高效開發(fā)》等作品。
書籍目錄
第1篇 Android核心框架層開發(fā)
第1章 Android系統(tǒng)框架
1.1 Android系統(tǒng)基礎(chǔ)結(jié)構(gòu)
1.2 Android的開發(fā)環(huán)境
1.2.1 開發(fā)環(huán)境
1.2.2 源代碼獲取
1.2.3 編譯Android源代碼
1.2.4 仿真器運(yùn)行
1.2.5 使用工具
1.3 系統(tǒng)結(jié)構(gòu)和代碼結(jié)構(gòu)
1.3.1 軟件系統(tǒng)結(jié)構(gòu)
1.3.2 源代碼結(jié)構(gòu)
第2章 編譯結(jié)構(gòu)和各種構(gòu)建
2.1 Android的系統(tǒng)構(gòu)建
2.1.1 編譯環(huán)境要求
2.1.2 構(gòu)建流程
2.1.3 環(huán)境設(shè)置
2.1.4 系統(tǒng)構(gòu)建結(jié)果
2.2 各種部件的構(gòu)建
2.2.1 Android.mk的語法
2.2.2 各種部件的構(gòu)建方式
2.2.3 預(yù)編譯內(nèi)容的安裝
2.3 Android編譯的板級支持
2.3.1 支持一個(gè)板的工作
2.3.2 buildspec.mk文件的作用
2.3.3 vendersetup.sh和lunch命令
2.3.4 BoardConfig.mk文件的作用
2.3.5 AndroidProducts.mk文件
2.3.6 AndroidBoard.mk文件
2.3.7 編譯中的層疊加
第3章 本地層基礎(chǔ)部分
3.1 本地層基礎(chǔ)部分結(jié)構(gòu)
3.2 C語言基礎(chǔ):Bionic
3.2.1 Bionic各個(gè)部分的結(jié)構(gòu)
3.2.2 Bionic的頭文件
3.2.3 內(nèi)存泄露的檢查庫
3.2.4 屬性系統(tǒng)的支持
3.3 C語言底層庫
3.3.1 Log庫
3.3.2 C語言工具庫libcutils
3.3.3 屬性和套接字支持
3.4 init可執(zhí)行程序和相關(guān)腳本
3.4.1 init可執(zhí)行程序的結(jié)構(gòu)
3.4.2 啟動(dòng)腳本init.rc
3.4.3 init的內(nèi)建動(dòng)作和初始化
3.4.4 init的循環(huán)
3.4.5 設(shè)備管理功能
3.5 shell工具
3.5.1 shell程序sh
3.5.2 命令工具箱toolbox
3.6 Android屬性和套接字機(jī)制
3.6.1 屬性機(jī)制
3.6.2 套接字機(jī)制
第4章 本地層框架部分
4.1 本地層框架部分結(jié)構(gòu)
4.2 框架層的工具庫libutils
4.2.1 libutils的結(jié)構(gòu)
4.2.2 基本的定義和類型
4.2.3 數(shù)據(jù)結(jié)構(gòu)和容器類
4.2.4 工具類
4.2.5 引用計(jì)數(shù)和強(qiáng)弱引用指針
4.2.6 線程類及相關(guān)輔助功能
4.2.7 文件操作的監(jiān)聽循環(huán)
4.3 作為全局守護(hù)進(jìn)程的可執(zhí)行程序
4.3.1 app_process
4.3.2 keystore
4.3.3 installd
4.3.4 vold
4.3.5 netd
4.4 Binder的IPC機(jī)制結(jié)構(gòu)
4.4.1 Android Binder機(jī)制的層次
結(jié)構(gòu)
4.4.2 具體Binder的實(shí)現(xiàn)
4.5 Binder庫以及相關(guān)內(nèi)容
4.5.1 具體Binder的實(shí)現(xiàn)
4.5.2 Binder庫的核心功能
4.5.3 Binder框架和具體IPC
結(jié)構(gòu)的實(shí)現(xiàn)
4.5.4 IServiceManager相關(guān)
4.5.5 Binder庫中的其他部分
4.6 servicemanager可執(zhí)行程序和
服務(wù)的實(shí)現(xiàn)
4.6.1 服務(wù)管理器可執(zhí)行程序和
進(jìn)程
4.6.2 在系統(tǒng)中實(shí)現(xiàn)“服務(wù)”
4.6.3 servicemanager對服務(wù)的
管理
4.6.4 Android中本地服務(wù)的層次
結(jié)構(gòu)
第5章 本地的啟動(dòng)流程、調(diào)試和
設(shè)計(jì)結(jié)構(gòu)
5.1 Android啟動(dòng)流程的本地階段
5.1.1 啟動(dòng)流程概述
5.1.2 BootLoader運(yùn)行及加載
內(nèi)核
5.1.3 Linux內(nèi)核運(yùn)行和加載根文件
系統(tǒng)
5.1.4 運(yùn)行用戶空間的第一個(gè)
進(jìn)程
5.1.5 掛接各個(gè)文件系統(tǒng)
5.1.6 系統(tǒng)各個(gè)進(jìn)程的運(yùn)行
5.1.7 啟動(dòng)圖
5.2 Android本地部分的調(diào)試
5.2.1 標(biāo)準(zhǔn)Linux調(diào)試方法
5.2.2 使用log的方法
5.2.3 Android的特殊調(diào)試工具
5.3 本地程序的結(jié)構(gòu)設(shè)計(jì)
5.3.1 目標(biāo)和設(shè)計(jì)思路
5.3.2 守護(hù)進(jìn)程+保留Socket的
設(shè)計(jì)結(jié)構(gòu)
5.3.3 守護(hù)進(jìn)程+本地層Binder的
設(shè)計(jì)結(jié)構(gòu)
第6章 Java運(yùn)行環(huán)境
6.1 Dalvik虛擬機(jī)和相關(guān)工具
6.1.1 Dalvik的概述
6.1.2 虛擬機(jī)的實(shí)現(xiàn)和運(yùn)行
6.1.3 Dalvik工具
6.1.4 nativehelper庫
6.2 Java基礎(chǔ)庫libcore
6.2.1 libcore的源代碼結(jié)構(gòu)
6.2.2 luni目錄中的內(nèi)容
6.2.3 libcore中的其他內(nèi)容
第7章 Java框架層
7.1 Java框架層結(jié)構(gòu)
7.2 Android的Java層的API
7.2.1 Java框架層API的含義
7.2.2 API的描述文件
7.2.3 被隱藏的內(nèi)容
7.2.4 不贊成使用的(過時(shí)的)API
7.3 Java框架庫framework.jar
7.3.1 框架庫的組成和作用
7.3.2 框架庫的API
7.3.3 框架庫的編譯結(jié)構(gòu)
7.3.4 框架庫的各個(gè)部分
7.3.5 屬性機(jī)制
7.3.6 套接字機(jī)制
7.4 Java服務(wù)庫services.jar
7.4.1 服務(wù)庫的組成和作用
7.4.2 服務(wù)管理器
7.4.3 主要的服務(wù)功能
7.4.4 啟動(dòng)結(jié)束的處理
7.5 資源包framework-res.apk
7.5.1 資源包的組成和作用
7.5.2 作為API的資源id
7.5.3 資源包AndroidManifest.Xml
文件
7.6 策略庫
7.6.1 策略庫的組成和作用
7.6.2 策略庫的功能和使用
7.7 Java層的Binder機(jī)制
7.7.1 Java Binder的框架
7.7.2 Java框架層的Binder使用
7.7.3 Binder中參數(shù)和返回值的
類型
第8章 Java本地調(diào)用
8.1 Android的Java本地調(diào)用
8.1.1 JNI的基本概念
8.1.2 Android的JNI實(shí)現(xiàn)基礎(chǔ)
8.1.3 Android中JNI的存在方式
8.2 在框架中使用JNI
8.2.1 框架層使用JNI的結(jié)構(gòu)
8.2.2 框架層JNI的實(shí)現(xiàn)
8.3 在應(yīng)用程序包中使用JNI
8.3.1 應(yīng)用程序包的JNI部分
8.3.2 應(yīng)用程序包中JNI的典型
實(shí)現(xiàn)方式
8.3.3 結(jié)構(gòu)上的幾種變化
8.4 JNI的高級使用
8.4.1 JNI的雙向調(diào)用
8.4.2 線程的處理
8.4.3 JNIHelp中的特殊處理
第9章 Java啟動(dòng)流程、調(diào)試和程序
結(jié)構(gòu)
9.1 Java部分的啟動(dòng)流程
9.1.1 啟動(dòng)流程概述
9.1.2 Java系統(tǒng)的守護(hù)進(jìn)程
9.1.3 ZygoteInit 類的執(zhí)行
9.1.4 系統(tǒng)服務(wù)器部分
9.1.5 Java應(yīng)用程序部分的啟動(dòng)
9.2 Java部分的調(diào)試
9.2.1 在Java中使用Log
9.2.2 Java層的命令行程序
9.2.3 代碼內(nèi)容相關(guān)的調(diào)試
9.2.4 DDMS工具
9.2.5 HierarchyViewer工具
9.3 Java層程序的結(jié)構(gòu)設(shè)計(jì)
9.3.1 目標(biāo)和設(shè)計(jì)思路
9.3.2 在系統(tǒng)服務(wù)器中服務(wù)的
設(shè)計(jì)結(jié)構(gòu)
9.3.3 Service組件的設(shè)計(jì)結(jié)構(gòu)
第10章 GUI系統(tǒng)和應(yīng)用程序管理
10.1 GUI系統(tǒng)的結(jié)構(gòu)和模塊關(guān)系
10.2 UI框架庫及相關(guān)
10.2.1 基本類型方面
10.2.2 顯示相關(guān)
10.2.3 按鍵和事件的處理
10.2.4 其他內(nèi)容
10.3 Surface圖層系統(tǒng)
10.3.1 Surface系統(tǒng)的結(jié)構(gòu)
10.3.2 Surface本地的接口部分
10.3.3 Surface本地實(shí)現(xiàn)部分
10.3.4 Surface的JNI代碼
10.3.5 Surface的Java部分
10.4 2D圖形系統(tǒng)
10.4.1 2D圖形系統(tǒng)的結(jié)構(gòu)
10.4.2 Skia底層庫
10.4.3 圖形系統(tǒng)的JNI接口
10.4.4 2D圖形包
10.5 3D圖形系統(tǒng)
10.5.1 OpenGL系統(tǒng)的結(jié)構(gòu)
10.5.2 OpenGL的本地代碼
10.5.3 OpenGL的JNI代碼
10.5.4 OpenGL的Java類
10.6 窗口和視圖部分
10.6.1 窗口和視圖部分的結(jié)構(gòu)
10.6.2 窗口管理的底層實(shí)現(xiàn)
10.6.3 視圖實(shí)現(xiàn)和上層的窗口
管理器的實(shí)現(xiàn)
10.7 活動(dòng)和應(yīng)用程序管理
10.7.1 活動(dòng)和應(yīng)用程序管理的
結(jié)構(gòu)
10.7.2 活動(dòng)界面的實(shí)現(xiàn)
10.7.3 應(yīng)用程序管理的實(shí)現(xiàn)
第2篇 Android系統(tǒng)級應(yīng)用
開發(fā)要點(diǎn)
第11章 Android應(yīng)用層接口結(jié)構(gòu)與
安全
11.1 Android應(yīng)用層接口結(jié)構(gòu)
11.1.1 標(biāo)準(zhǔn)應(yīng)用程序和源代碼開發(fā)
的應(yīng)用程序
11.1.2 第三方應(yīng)用程序和預(yù)置應(yīng)用
程序
11.2 Android的安全系統(tǒng)
11.2.1 安全機(jī)制概述
11.2.2 Linux的用戶和組
11.2.3 Android的許可
11.3 程序簽名問題
11.3.1 Android應(yīng)用簽名的概念
11.3.2 Android應(yīng)用簽名的流程
11.3.3 不同的程序簽名
11.3.4 證書生成工具
11.4 安全策略
11.4.1 安全策略的幾個(gè)方面
11.4.2 安全策略的實(shí)現(xiàn)
11.4.3 安全策略的定制
第12章 應(yīng)用層的本地內(nèi)容和NDK
開發(fā)
12.1 本地應(yīng)用的標(biāo)準(zhǔn)化
12.2 NDK環(huán)境
12.2.1 NDK的基本概念
12.2.2 從幾個(gè)方面理解NDK的
不同含義
12.3 NDK的組成結(jié)構(gòu)
12.3.1 NDK環(huán)境的結(jié)構(gòu)
12.3.2 NDK中包含的內(nèi)容
12.4 NDK開發(fā)基礎(chǔ)
12.4.1 編譯流程
12.4.2 NDK編程要點(diǎn)
12.4.3 開發(fā)結(jié)構(gòu)
12.5 使用JNI的方式
12.5.1 NDK中使用JNI工程
結(jié)構(gòu)
12.5.2 在本地操作Bitmap位圖
12.5.3 在本地使用OpenGL ES
繪制
12.5.4 程序?qū)崿F(xiàn)
12.6 在本地構(gòu)建應(yīng)用
12.6.1 本地應(yīng)用接口基礎(chǔ)
12.6.2 實(shí)現(xiàn)本地活動(dòng)的輔助庫:
android_native_app_glue
12.6.3 程序?qū)崿F(xiàn)
第13章 預(yù)置的應(yīng)用程序?qū)?br />13.1 預(yù)置應(yīng)用層程序概述
13.2 預(yù)置綜合應(yīng)用程序
13.2.1 主屏幕
13.2.2 設(shè)置
13.2.3 聯(lián)系人和電話
13.2.4 短信息和彩信
13.2.5 瀏覽器和郵件
13.2.6 音樂
13.2.7 照相機(jī)和錄音機(jī)
13.2.8 畫廊
13.2.9 搜索
13.2.10 時(shí)鐘、計(jì)算器和日歷
13.3 預(yù)置內(nèi)容提供者
13.3.1 聯(lián)系人信息提供者
13.3.2 媒體信息提供者
13.3.3 電話信息提供者
13.3.4 下載信息提供者
13.4 預(yù)置輸入法
13.5 活動(dòng)墻紙系統(tǒng)
13.5.1 活動(dòng)墻紙選擇器
13.5.2 幾個(gè)具體的活動(dòng)墻紙
13.6 實(shí)現(xiàn)框架功能的應(yīng)用程序包
13.6.1 系統(tǒng)界面
13.6.2 設(shè)置信息提供者
13.6.3 幾個(gè)主體為Service組件
的應(yīng)用程序包
第14章 Android系統(tǒng)定制
14.1 Android系統(tǒng)定制概述
14.2 普通應(yīng)用程序的定制
14.2.1 普通應(yīng)用定制的方面
14.2.2 預(yù)置的應(yīng)用程序的組件
可見性
14.2.3 組件的intent-filter
14.3 桌面的定制
14.3.1 桌面程序的入口和功能
14.3.2 桌面程序細(xì)節(jié)
14.3.3 在桌面之前執(zhí)行的程序
14.4 系統(tǒng)資源的定制
14.4.1 定義資源的概念和原則
14.4.2 一些配置的數(shù)值
14.4.3 可繪制內(nèi)容的定制
14.4.4 樣式和主題的定制
14.4.5 內(nèi)部布局的定制
14.5 框架內(nèi)部組件和界面的定制
14.5.1 內(nèi)部組件
14.5.2 內(nèi)部界面
14.6 狀態(tài)欄界面的定制
14.6.1 狀態(tài)欄界面的功能和
布局
14.6.2 狀態(tài)欄界面
14.7 鎖屏界面的定制
14.7.1 鎖屏界面的功能
14.7.2 鎖屏界面
14.8 開機(jī)動(dòng)畫的定制
第15章 系統(tǒng)級的調(diào)試和測試
15.1 調(diào)試
15.1.1 命令行調(diào)試工具
15.1.2 界面上的輔助工具
15.2 測試系統(tǒng)和工具
15.2.1 測試系統(tǒng)的結(jié)構(gòu)
15.2.2 Monkey
15.2.3 MonkeyRunner
15.3 代碼級別的測試
15.3.1 代碼測試框架
15.3.2 代碼測試方式
15.4 兼容性及兼容性測試
15.4.1 Android兼容性
15.4.2 CTS兼容性驗(yàn)證
15.4.3 CTS的相關(guān)源代碼和原理
附錄A Android版本演進(jìn)和
Android 4.x
A.1 Android版本的演進(jìn)
A.2 編譯系統(tǒng)的更新
A.3 本地框架層的更新
A.3.1 init.rc中的關(guān)鍵字
A.3.2 surfaceflinger作為獨(dú)立的
守護(hù)進(jìn)程
A.3.3 netd守護(hù)進(jìn)程
A.4 Java框架的更新
A.4.1 Java框架的API描述
A.4.2 Java類庫的升級
A.4.3 Java服務(wù)包
A.4.4 工具
A.5 GUI系統(tǒng)的更新
A.5.1 GUI系統(tǒng)
A.5.2 Skia引擎的改動(dòng)
A.5.3 OpenGL引擎的改動(dòng)
A.5.4 窗口的變化
A.6 Java應(yīng)用程序?qū)拥母?br />A.6.1 SystemUI
A.6.2 桌面
A.6.3 普通應(yīng)用程序
A.7 本地標(biāo)準(zhǔn)應(yīng)用和NDK環(huán)境
章節(jié)摘錄
版權(quán)頁: 插圖: 1.活動(dòng)管理器服務(wù)(ActivityManagerService) 活動(dòng)管理服務(wù)定義了系統(tǒng)組件層次的管理功能,是服務(wù)庫各個(gè)功能模塊中比較復(fù)雜的一個(gè)。 am子目錄主要負(fù)責(zé)活動(dòng)管理功能,其中的主文件是ActivityManagerService.java?;顒?dòng)管理器服務(wù)的主要ActivityManagerService類繼承了ActivityManagerNative,實(shí)際上繼承了以下文件中的接口:frameworks/base/core/java/android/app/IActivityManager.java。 活動(dòng)管理器服務(wù)提供的主要功能如下所示。 ● 各個(gè)組件的注冊和許可(包括Uri許可)的檢查。 ● Activity組件的啟動(dòng)、返回結(jié)果的處理,使用觀測者(IActivityWatcher)。 ● Service組件的啟動(dòng)、停止、綁定、解除綁定。 ● BoardcastReceiver組件的注冊、注銷,廣播的發(fā)送。 ● 處理應(yīng)用程序的狀態(tài)(進(jìn)程信息的設(shè)置獲取、殺死進(jìn)程、應(yīng)用的錯(cuò)誤、崩潰)。 ● 關(guān)機(jī)、喚醒和睡眠等操作。 ● 安裝系統(tǒng)級別的ContentProvider。 相比其他服務(wù),ActivityManagerService偏重于更上層、綜合性的內(nèi)容。其管是表示應(yīng)用程序的Application(包括其運(yùn)行的進(jìn)程上下文),Activity、Service、BoardcastReceiver和ContentProvider4種組件,以及相關(guān)的Permission。 2.窗口管理器服務(wù)(WindowManagerService) 窗口管理器服務(wù)的主文件是WindowManagerService.java,負(fù)責(zé)應(yīng)用程序中窗口相關(guān)內(nèi)容的處理。WindowManagerService的實(shí)現(xiàn)Android GUI系統(tǒng)的運(yùn)行密切相關(guān)。 WindowManagerService類實(shí)現(xiàn)了以下文件中定義的接口: frameworks/base/core/java/android/view/IWindowManager.aidl frameworks/base/core/java/android/view/IWindowSession.aidl WindowManagerService提供的主要功能如下所示。 ● 窗口和View的構(gòu)建和行為的管理。 ● 輸入事件的處理。 ● 窗口旋轉(zhuǎn)、動(dòng)畫等處理。 ● 鎖屏界面等特殊屏幕的處理。 3.包管理器服務(wù)(PackageManagerService) 包管理器服務(wù)的主文件是PackageManagerService.java,主要負(fù)責(zé)系統(tǒng)apk包安裝和卸載的相關(guān)處理。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
Android核心原理與系統(tǒng)級應(yīng)用高效開發(fā) PDF格式下載