Android框架揭秘

Android框架揭秘

《Android框架揭秘》,是人民郵電出版社2012年出版的圖書,作者是(韓)金泰延 宋亨周 朴知勛 李白 林起永。

基本介紹

  • 書名:Android框架揭秘
  • 作者:(韓)金泰延等
  • 譯者:武傳海
  • ISBN:9787115274762
  • 頁數:424
  • 出版社:人民郵電出版社
  • 出版時間:2012 年4月
  • 開本:16
基本信息,內容簡介,目錄,

基本信息

作者:(韓)金泰延 宋亨周 朴知勛 李白 林起永
譯者:武傳海
ISBN:9787115274762
出版日期:2012 年4月
開本:16開
頁碼:424
版次:1-1

內容簡介

《android框架揭秘》通過對android系統原始碼的分析,主要介紹android框架的初始化過程及主要組件的工作原理。作者直接分析和整理了android框架的主要原始碼,並詳細講解了理解框架工作原理所需的各種基礎知識和構成實際android平台骨幹的服務框架。其中的主要內容包括:通過啟動程式了解android框架的概要,移植android以及如何開發適合各種機器的應用程式,分析android框架所需的基礎知識,jni(java native interface)與binder基礎知識,zygote、service manager、service server等android核心組件,android服務框架的結構與理解,通過camera service、activity manager service等服務分析實際的android服務等。
《android框架揭秘》不僅可以供具備一定開發經驗的android開發人員參考閱讀,也可作為android開發初學者的android框架入門教材使用。

目錄

《android框架揭秘》
第1章 android framework概要 1
1.1 android原始碼組成 2
1.2 通過啟動過程分析android framework 3
第2章 搭建android開發環境 7
2.1 主機環境構成 7
2.1.1 安裝virtualbox 7
2.1.2 安裝ubuntu 8
2.2 搭建android平台編譯環境 9
2.2.1 編譯工具 10
2.2.2 安裝repo 11
2.2.3 下載android原始碼 11
2.2.4 編譯android原始碼 12
2.3 搭建android sdk開發環境 13
2.3.1 下載、安裝eclipse 13
2.3.2 下載android sdk starter 13
2.3.3 安裝adt外掛程式 14
2.3.4 設定android sdk路徑 16
2.3.5 安裝android sdk 16
2.4 開發android應用程式 18
.2.5 應用程式framework源碼級別調試 21
2.5.1 載入應用程式framework源 21
2.5.2 調試helloworld framework(源碼級) 24
2.6 小結 27
第3章 init進程 29
3.1 init進程運行過程 29
3.2 init進程源碼分析 31
3.3 init.rc腳本檔案分析與執行 40
3.3.1 動作列表(action list) 41
3.3.2 服務列表(service list) 43
3.3.3 init.rc檔案分析函式 44
3.3.4 動作列表與服務列表的運行 48
3.4 創建設備節點檔案 52
3.4.1 創建靜態設備節點 52
3.4.2 動態設備感知 57
3.5 進程的終止與再啟動 58
3.6 屬性服務 62
3.6.1 屬性初始化 63
3.6.2 屬性變更請求處理 65
3.7 小結 67
第4章 jnindk 69
4.1 android與jni 69
4.2 jni的基本原理 72
4.2.1 在java中調用c庫函式 72
4.2.2 小結 83
4.3 調用jni函式 84
4.3.1 調用jni函式的示例程式結構 84
4.3.2 java層代碼(jnifuncmain.java) 85
4.3.3 分析jni本地函式代碼 87
4.3.4 編譯及運行結果 101
4.3.5 在android中的套用舉例 102
4.4 在c程式中運行java類 102
4.4.1 invocation api套用示例 103
4.4.2 編譯及運行 108
4.4.3 invocation api在android中的套用舉例:zygote進程 110
4.5 直接註冊jni本地函式 110
4.5.1 載入本地庫時,註冊jni本地函式 111
4.5.2 android中的套用舉例 115
4.6 使用android ndk開發 122
4.6.1 安裝android ndk 123
4.6.2 使用android ndk開發步驟 127
4.6.3 小結 136
第5章 zygote 137
5.1 zygote是什麼 137
5.2 由app_process運行zygoteinit class 142
5.2.1 生成appruntime對象 143
5.2.2 調用appruntime對象 144
5.2.3 創建dalvik虛擬機 145
5.2.4 運行zygoteinit類 146
5.3 zygoteinit類的功能 147
5.3.1 綁定/dev/socket/zygote套接字 149
5.3.2 載入應用程式framework中的類與平台資源 150
5.3.3 運行systemserver 155
5.3.4 運行新android應用程式 158
第6章 android服務概要 163
6.1 示例程式:理解android服務的運行 163
6.2 android服務的種類 166
6.3 android應用程式服務 168
6.4 android系統服務 182
6.5 運行系統服務 185
6.5.1 分析媒體伺服器(media server)的運行代碼 186
6.5.2 分析系統伺服器(system server)的運行代碼 188
6.6 android service framework、binder driver概要及相關術語 192
第7章 android binder ipc 197
7.1 linux記憶體空間與binder driver 197
7.2 android binder model 199
7.2.1 binder ipc數據傳遞 201
7.2.2 binder ipc數據流 202
7.2.3 binder協定(binder protocol) 204
7.2.4 rpc代碼與rpc數據 206
7.2.5 binder定址(binder addressing) 206
7.3 android binder driver分析 209
7.3.1 從進程的角度看服務的使用 210
7.3.2 從binder driver角度看服務的使用 214
7.3.3 binder driver函式分析 219
7.4 context manager 251
7.5 小結 256
第8章 android service framework 257
8.1 服務框架(service framework) 257
8.2 服務框架(service framework)的構成 259
8.2.1 各層構成元素的配置 260
8.2.2 各層構成元素間的相互作用 261
8.2.3 類的結構 264
8.3 運行機制 266
8.3.1 服務接口 267
8.3.2 服務 273
8.3.3 服務代理(service proxy) 276
8.3.4 binder ipc處理 280
8.4 本地服務管理器(native service manager) 282
8.4.1 service manager概要 282
8.4.2 service manager類 284
8.4.3 service manager的運行 286
8.5 編寫本地服務 314
8.5.1 設計helloworld系統服務 314
8.5.2 helloworld服務接口 315
8.5.3 helloworld服務 316
8.5.4 helloworld服務代理 319
8.5.5 運行helloworld服務 320
8.6 小結 325
第9章 本地系統服務(native system service)分析 327
9.1 相機服務(cameral service) 327
9.2 相機應用程式 328
9.3 相機服務框架(camera service framework) 331
9.3.1 相機服務框架層次結構 331
9.3.2 相機服務框架類 333
9.4 相機服務框架的運行 334
9.4.1 初始化相機服務 334
9.4.2 連線相機服務 335
9.4.3 相機服務連線過程分析 337
9.4.4 相機設定與控制 340
9.4.5 相機設定與控制分析 341
9.4.6 相機事件處理 342
9.4.7 相機事件處理分析 343
9.5 小結 345
第10章 java服務框架(java service framework) 347
10.1 java服務框架(java service framework) 347
10.1.1 java服務框架的層次結構 348
10.1.2 java服務框架中各個類間的相互作用 351
10.2 運行機制 354
10.2.1 java服務框架初始化 355
10.2.2 binder 355
10.2.3 binderproxy 361
10.2.4 parcel 364
10.3 java系統服務的實現 367
10.3.1 鬧鐘服務(alarm manager service)分析 368
10.3.2 編寫helloworldservice系統服務 372
10.3.3 使用helloworldservice系統服務 375
10.3.4 編譯helloworldservice系統服務 378
10.4 java service manager 380
10.4.1 java service manager簡介 380
10.4.2 binderinternal 381
10.4.3 java service manager的運行實例 383
10.5 使用aidl生成服務代理與服務stub 389
10.5.1 在aidl檔案中定義服務接口 390
10.5.2 使用aidl編譯器,生成服務接口、服務stub以及服務代理 391
10.5.3 繼承stub類創建服務 392
10.5.4 服務接口的調用 393
10.6 小結 394
第11章 java系統服務運行分析 395
11.1 activity manager service 395
11.2 activity manager service創建服務分析 397
11.2.1 controller activity-調用startservice()方法 398
11.2.2 activity manager service的startservice()方法的調用過程(使用binder rpc) 399
11.2.3 activity manager service——運行startservice() stub方法 405
11.2.4 運行activitythread類的main() 方法 409
11.2.5 activity manager service——attachapplication() stub方法 414
11.3 小結 421
附錄 aidl語法 423

相關詞條

熱門詞條

聯絡我們