Android核心原理與系統級應用高效開發

來源:互聯網
上載者:User
《Android核心原理與系統級應用高效開發》
基本資料
作者: 韓超 [作譯者介紹]
出版社:電子工業出版社
ISBN:9787121173615
上架時間:2012-7-2
出版日期:2012 年7月
開本:16開
頁碼:448
版次:1-1
所屬分類: 電腦 更多關於 》》》《Android核心原理與系統級應用高效開發》
內容簡介
書籍
電腦書籍
  《android核心原理與系統級應用高效開發》是一本介紹android核心開發的技術圖書,主要目標是讓android的開發人員更深入地理解android系統,讓開發的過程更正確、更有效率。本書主要由兩大部分組成,第1篇自下而上介紹android核心架構層的結構,並將開發的技巧和要點蘊含於其中;第2篇偏重系統級的應用程式層,關注android開發過程中的重點方面。
  《android核心原理與系統級應用高效開發》為android系統層級的開發人員系統化而有條理性地展示了龐大的android系統的軟體結構,點明開發思路;android應用程式的開發人員可以通過本書加深認識,拓展開發手段;從事android硬體移植的開發人員可以通過本書加深對系統全域的瞭解。
目錄
《android核心原理與系統級應用高效開發》
第1篇 android核心架構層開發
第1章 android系統架構 2
1.1 android系統基礎結構 2
1.2 android的開發環境 3
1.2.1 開發環境 3
1.2.2 原始碼擷取 4
1.2.3 編譯android原始碼 4
1.2.4 模擬器運行 5
1.2.5 使用工具 5
1.3 系統結構和代碼結構 7
1.3.1 軟體系統結構 7
1.3.2 原始碼結構 9
第2章 編譯結構和各種構建 13
2.1 android的系統構建 13
2.1.1 編譯環境要求 13
2.1.2 構建流程 14
2.1.3 環境設定 16
2.1.4 系統構建結果 16
2.2 各種組件的構建 18
2.2.1 android.mk的文法 18
2.2.2 各種組件的構建方式 19
2.2.3 先行編譯內容的安裝 23
2.3 android編譯的板級支援 24
2.3.1 支援一個板的工作 24
2.3.2 buildspec.mk檔案的作用 25
2.3.3 vendersetup.sh和lunch命令 26
2.3.4 boardconfig.mk檔案的作用 27
2.3.5 androidproducts.mk檔案 28
2.3.6 androidboard.mk檔案 29
2.3.7 編譯中的層疊加 30
第3章 本地層基礎部分 31
3.1 本地層基礎部分結構 31
3.2 c語言基礎:bionic 31
3.2.1 bionic各個部分的結構 32
3.2.2 bionic的標頭檔 32
3.2.3 記憶體泄露的檢查庫 33
3.2.4 屬性系統的支援 34
3.3 c語言底層庫 35
3.3.1 log庫 35
3.3.2 c語言工具庫libcutils 36
3.3.3 屬性和通訊端支援 40
3.4 init可執行程式和相關指令碼 42
3.4.1 init可執行程式的結構 42
3.4.2 啟動指令碼init.rc 43
3.4.3 init的內建動作和初始化 48
3.4.4 init的迴圈 50
3.4.5 裝置管理功能 55
3.5 shell工具 57
3.5.1 shell程式sh 57
3.5.2 命令工具箱toolbox 59
3.6 android屬性和通訊端機制 60
3.6.1 屬性機制 60
3.6.2 通訊端機制 63
第4章 本地層架構部分 67
4.1 本地層架構部分結構 67
4.2 架構層的工具庫libutils 67
4.2.1 libutils的結構 68
4.2.2 基本的定義和類型 69
4.2.3 資料結構和容器類 70
4.2.4 工具類 75
4.2.5 引用計數和強弱引用指標 77
4.2.6 線程類及相關協助工具功能 83
4.2.7 檔案操作的監聽迴圈 87
4.3 作為全域守護進程的可執行程式 89
4.3.1 app_process 89
4.3.2 keystore 90
4.3.3 installd 91
4.3.4 vold 92
4.3.5 netd 94
4.4 binder的ipc機制結構 96
4.4.1 android binder機制的階層 96
4.4.2 具體binder的實現 97
4.5 binder庫以及相關內容 98
4.5.1 具體binder的實現 98
4.5.2 binder庫的核心功能 99
4.5.3 binder架構和具體ipc結構的實現 100
4.5.4 iservicemanager相關 110
4.5.5 binder庫中的其他部分 113
4.6 servicemanager可執行程式和服務的實現 115
4.6.1 服務管理員可執行程式和進程 115
4.6.2 在系統中實現“服務” 118
4.6.3 servicemanager對服務的管理 121
4.6.4 android中本地服務的階層 121
第5章 本地的啟動流程、調試和設計結構 123
5.1 android啟動流程的本地階段 123
5.1.1 啟動流程概述 123
5.1.2 bootloader運行及載入核心 124
5.1.3 linux核心運行和載入根檔案系統 125
5.1.4 運行使用者空間的第一個進程 125
5.1.5 掛接各個檔案系統 126
5.1.6 系統各個進程的運行 126
5.1.7 啟動圖 128
5.2 android本地部分的調試 130
5.2.1 標準linux調試方法 130
5.2.2 使用log的方法 138
5.2.3 android的特殊調試工具 139
5.3 本地程式的結構設計 145
5.3.1 目標和設計思路 145
5.3.2 守護進程+保留socket的設計結構 146
5.3.3 守護進程+本地層binder的設計結構 147
第6章 java運行環境 149
6.1 dalvik虛擬機器和相關工具 149
6.1.1 dalvik的概述 149
6.1.2 虛擬機器的實現和運行 150
6.1.3 dalvik工具 154
6.1.4 nativehelper庫 156
6.2 java基礎庫libcore 156
6.2.1 libcore的原始碼結構 156
6.2.2 luni目錄中的內容 158
6.2.3 libcore中的其他內容 159
第7章 java架構層 160
7.1 java架構層結構 160
7.2 android的java層的api 161
7.2.1 java架構層api的含義 161
7.2.2 api的描述檔案 162
7.2.3 被隱藏的內容 166
7.2.4 不贊成使用的(過時的)api 166
7.3 java架構庫framework.jar 168
7.3.1 架構庫的組成和作用 168
7.3.2 架構庫的api 168
7.3.3 架構庫的編譯結構 169
7.3.4 架構庫的各個部分 170
7.3.5 屬性機制 173
7.3.6 通訊端機制 174
7.4 java服務庫services.jar 175
7.4.1 服務庫的組成和作用 176
7.4.2 服務管理員 176
7.4.3 主要的服務功能 177
7.4.4 啟動結束的處理 180
7.5 資源套件framework-res.apk 180
7.5.1 資源套件的組成和作用 181
7.5.2 作為api的資源id 182
7.5.3 資源套件androidmanifest.xml檔案 182
7.6 策略庫 183
7.6.1 策略庫的組成和作用 183
7.6.2 策略庫的功能和使用 183
7.7 java層的binder機制 184
7.7.1 java binder的架構 185
7.7.2 java架構層的binder使用 189
7.7.3 binder中參數和傳回值的類型 194
第8章 java本地調用 198
8.1 android的java本地調用 198
8.1.1 jni的基本概念 198
8.1.2 android的jni實現基礎 198
8.1.3 android中jni的存在方式 201
8.2 在架構中使用jni 201
8.2.1 架構層使用jni的結構 201
8.2.2 架構層jni的實現 204
8.3 在應用程式套件組合中使用jni 207
8.3.1 應用程式套件組合的jni部分 207
8.3.2 應用程式套件組合中jni的典型實現方式 207
8.3.3 結構上的幾種變化 210
8.4 jni的進階使用 211
8.4.1 jni的雙向調用 211
8.4.2 線程的處理 215
8.4.3 jnihelp中的特殊處理 216
第9章 java啟動流程、調試和程式結構 218
9.1 java部分的啟動流程 218
9.1.1 啟動流程概述 218
9.1.2 java系統的守護進程 219
9.1.3 zygoteinit 類的執行 220
9.1.4 系統伺服器部分 222
9.1.5 java應用程式部分的啟動 227
9.2 java部分的調試 229
9.2.1 在java中使用log 229
9.2.2 java層的命令列程式 229
9.2.3 代碼內容相關的調試 232
9.2.4 ddms工具 237
9.2.5 hierarchyviewer工具 239
9.3 java層程式的結構設計 241
9.3.1 目標和設計思路 241
9.3.2 在系統伺服器中服務的設計結構 242
9.3.3 service組件的設計結構 243
第10章 gui系統和應用程式管理 245
10.1 gui系統的結構和模組關係 245
10.2 ui架構庫及相關 246
10.2.1 基本類型方面 246
10.2.2 顯示相關 247
10.2.3 按鍵和事件的處理 247
10.2.4 其他內容 249
10.3 surface圖層系統 249
10.3.1 surface系統的結構 250
10.3.2 surface本地的介面部分 251
10.3.3 surface本地實現部分 254
10.3.4 surface的jni代碼 255
10.3.5 surface的java部分 256
10.4 2d圖形系統 258
10.4.1 2d圖形系統的結構 258
10.4.2 skia底層庫 259
10.4.3 圖形系統的jni介面 263
10.4.4 2d圖形包 264
10.5 3d圖形系統 264
10.5.1 opengl系統的結構 265
10.5.2 opengl的本地代碼 265
10.5.3 opengl的jni代碼 267
10.5.4 opengl的java類 268
10.6 視窗和視圖部分 270
10.6.1 視窗和視圖部分的結構 270
10.6.2 視窗管理的底層實現 271
10.6.3 視圖實現和上層的視窗管理器的實現 275
10.7 活動和應用程式管理 277
10.7.1 活動和應用程式管理的結構 277
10.7.2 活動介面的實現 278
10.7.3 應用程式管理的實現 282
第2篇 android系統級應用開發要點
第11章 android應用程式層介面結構與安全 288
11.1 android應用程式層介面結構 288
11.1.1 標準應用程式和原始碼開發的應用程式 288
11.1.2 第三方應用程式和預置應用程式 290
11.2 android的安全系統 290
11.2.1 安全機制概述 290
11.2.2 linux的使用者和組 291
11.2.3 android的許可 294
11.3 程式簽名問題 296
11.3.1 android應用簽名的概念 296
11.3.2 android應用簽名的流程 296
11.3.3 不同的程式簽名 298
11.3.4 認證產生工具 299
11.4 安全性原則 300
11.4.1 安全性原則的幾個方面 300
11.4.2 安全性原則的實現 306
11.4.3 安全性原則的定製 310
第12章 應用程式層的本地內容和ndk開發 312
12.1 本地應用的標準化 312
12.2 ndk環境 313
12.2.1 ndk的基本概念 313
12.2.2 從幾個方面理解ndk的不同含義 313
12.3 ndk的組成結構 314
12.3.1 ndk環境的結構 314
12.3.2 ndk中包含的內容 315
12.4 ndk開發基礎 317
12.4.1 編譯流程 317
12.4.2 ndk編程要點 318
12.4.3 開發結構 319
12.5 使用jni的方式 320
12.5.1 ndk中使用jni工程結構 320
12.5.2 在本地操作bitmap位元影像 320
12.5.3 在本地使用opengl es繪製 321
12.5.4 程式實現 321
12.6 在本地構建應用 328
12.6.1 本地應用介面基礎 328
12.6.2 實現本地活動的輔助庫: android_native_app_glue 332
12.6.3 程式實現 333
第13章 預置的應用程式層 339
13.1 預置應用程式層程式概述 339
13.2 預置綜合應用程式 340
13.2.1 主畫面 340
13.2.2 設定 342
13.2.3 連絡人和電話 345
13.2.4 簡訊息和多媒體訊息 347
13.2.5 瀏覽器和郵件 349
13.2.6 音樂 352
13.2.7 照相機和錄音機 354
13.2.8 畫廊 358
13.2.9 搜尋 359
13.2.10 時鐘、計算機和日曆 360
13.3 預置內容提供者 361
13.3.1 連絡人資訊提供者 361
13.3.2 媒體資訊提供者 362
13.3.3 電話資訊提供者 363
13.3.4 下載資訊提供者 363
13.4 預置IME 364
13.5 活動牆紙系統 365
13.5.1 活動牆紙選取器 365
13.5.2 幾個具體的活動牆紙 366
13.6 實現架構功能的應用程式套件組合 366
13.6.1 系統介面 367
13.6.2 設定資訊提供者 368
13.6.3 幾個主體為service組件的應用程式套件組合 369
第14章 android系統定製 371
14.1 android系統定製概述 371
14.2 普通應用程式的定製 371
14.2.1 普通應用定製的方面 371
14.2.2 預置的應用程式的組件可見度 372
14.2.3 組件的intent-filter 372
14.3 案頭的定製 373
14.3.1 傳統型程式的入口和功能 374
14.3.2 傳統型程式細節 375
14.3.3 在案頭之前執行的程式 378
14.4 系統資源的定製 378
14.4.1 定義資源的概念和原則 379
14.4.2 一些配置的數值 379
14.4.3 可繪製內容的定製 379
14.4.4 樣式和主題的定製 380
14.4.5 內部布局的定製 382
14.5 架構內部組件和介面的定製 383
14.5.1 內部組件 383
14.5.2 內部介面 385
14.6 狀態列介面的定製 385
14.6.1 狀態列介面的功能和布局 385
14.6.2 狀態列介面 387
14.7 鎖定畫面的定製 389
14.7.1 鎖定畫面的功能 390
14.7.2 鎖定畫面 391
14.8 開機動畫的定製 393
第15章 系統級的調試和測試 396
15.1 調試 396
15.1.1 命令列調試工具 396
15.1.2 介面上的協助工具輔助 402
15.2 測試系統和工具 403
15.2.1 測試系統的結構 404
15.2.2 monkey 404
15.2.3 monkeyrunner 406
15.3 代碼層級的測試 409
15.3.1 代碼測試架構 409
15.3.2 代碼測試方式 411
15.4 相容性及相容性測試 414
15.4.1 android相容性 414
15.4.2 cts相容性驗證 416
15.4.3 cts的相關原始碼和原理 419
附錄a android版本演化和
android 4.x 423
a.1 android版本的演化 423
a.2 編譯系統的更新 423
a.3 本地架構層的更新 425
a.3.1 init.rc中的關鍵字 425
a.3.2 surfaceflinger作為獨立的守護進程 425
a.3.3 netd守護進程 426
a.4 java架構的更新 426
a.4.1 java架構的api描述 426
a.4.2 java類庫的升級 427
a.4.3 java服務包 428
a.4.4 工具 428
a.5 gui系統的更新 429
a.5.1 gui系統 429
a.5.2 skia引擎的改動 430
a.5.3 opengl引擎的改動 430
a.5.4 視窗的變化 430
a.6 java應用程式層的更新 432
a.6.1 systemui 432
a.6.2 案頭 432
a.6.3 普通應用程式 433
a.7 本地標準應用程式和ndk環境 434

本圖書資訊來源:中國互動出版網

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.