定 價:¥59.80
作 者: | 楊青平 |
出版社: | 人民郵電出版社 |
叢編項: | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787115489159 | 出版時間: | 2018-08-01 | 包裝: | 平裝 |
開本: | 16開 | 頁數(shù): | 字?jǐn)?shù): |
第 1章 初識Android 1
1.1 智能手機(jī)的系統(tǒng)結(jié)構(gòu) 1
1.2 Android系統(tǒng)架構(gòu) 2
1.2.1 應(yīng)用層 3
1.2.2 應(yīng)用框架層 3
1.2.3 系統(tǒng)運(yùn)行庫層 3
1.2.4 核心層 4
1.3 Android Telephony框架結(jié)構(gòu) 5
1.3.1 系統(tǒng)運(yùn)行庫層的HAL 6
1.3.2 簡析HAL結(jié)構(gòu) 6
1.3.3 Android為什么引入HAL 7
1.3.4 Android中HAL的運(yùn)行結(jié)構(gòu) 7
本章小結(jié) 8
第 2章 搭建Android源代碼編譯調(diào)試環(huán)境 9
2.1 Ubuntu Linux操作系統(tǒng)及工具安裝 10
2.1.1 PC配置建議 10
2.1.2 Ubuntu安裝光盤制作 10
2.1.3 Ubuntu安裝過程 10
2.1.4 安裝OpenJDK 12
2.1.5 Ubuntu系統(tǒng)工具包更新升級 13
2.2 Android源代碼下載及編譯過程 13
2.2.1 工作目錄設(shè)置 13
2.2.2 源代碼下載 13
2.2.3 開始編譯Android源代碼 14
2.2.4 編譯單個模塊 16
2.3 Android Studio及SDK 17
2.3.1 下載和配置Android Studio 17
2.3.2 Android SDK下載及配置和使用 17
2.3.3 使用Android SDK啟動Android虛擬設(shè)備 19
2.3.4 Android調(diào)試工具adb的使用方法 20
2.3.5 相關(guān)技巧匯總 20
2.4 在Google手機(jī)上調(diào)試Android源碼 21
2.4.1 Google手機(jī)對應(yīng)編譯選項 21
2.4.2 Google手機(jī)刷入工廠鏡像 21
2.4.3 編譯本地鏡像并刷入Google手機(jī) 22
2.4.4 Google手機(jī)上調(diào)試Android源碼 25
2.4.5 關(guān)鍵問題總結(jié) 26
本章小結(jié) 27
第3章 深入解析通話流程 29
3.1 撥號流程分析 29
3.1.1 打開Nexus 6P手機(jī)的撥號盤 30
3.1.2 進(jìn)入撥號界面DialtactsActivity 30
3.1.3 DialpadFragment撥號盤 32
3.1.4 ITelecomService接收撥號請求服務(wù) 33
3.1.5 CallsManager撥號流程處理 35
3.1.6 IInCallService服務(wù)的響應(yīng)過程 40
3.1.7 繼續(xù)分析CallsManager.placeOutgoingCall 46
3.1.8 Telecom應(yīng)用撥號流程回顧與總結(jié) 50
3.1.9 IConnectionService服務(wù)的響應(yīng)過程 51
3.1.10 TelecomAdapter接收消息回調(diào) 55
3.1.11 撥號流程總結(jié) 56
3.2 來電流程分析 57
3.2.1 分析radio來電日志 58
3.2.2 UNSOL_RESPONSE_CALL_STATE_CHANGED消息處理 58
3.2.3 擴(kuò)展RegistrantList消息處理機(jī)制 59
3.2.4 GsmCdmaCallTracker消息處理 61
3.2.5 ITelecomService處理來電消息 63
3.2.6 來電流程總結(jié) 66
3.3 通話總結(jié) 66
3.3.1 通話關(guān)鍵代碼匯總 66
3.3.2 通話狀態(tài)更新消息上報流程 68
3.3.3 控制通話消息下發(fā)流程 69
3.4 建立Android通話模型 70
本章小結(jié) 71
第4章 詳解Telecom 73
4.1 Telecom應(yīng)用加載入口 73
4.1.1 TelecomManager類核心邏輯分析 74
4.1.2 Telecom應(yīng)用代碼匯總 76
4.1.3 ITelecomService的onBind過程 77
4.1.4 第 二個撥號入口 79
4.2 Telecom交互模型 79
4.2.1 匯總frameworks/base/telecomm代碼 80
4.2.2 綁定IInCallService機(jī)制 81
4.2.3 綁定IConnectionService機(jī)制 82
4.2.4 演進(jìn)Telecom交互模型 85
4.3 核心Listener回調(diào)消息處理 86
4.3.1 CallsManagerListener 86
4.3.2 Call.Listener 88
4.3.3 CreateConnectionResponse 90
4.3.4 總結(jié)Listener消息 90
4.4 擴(kuò)展CallsManager 92
4.4.1 記錄通話日志 92
4.4.2 耳機(jī)Hook事件 93
4.4.3 通知欄信息同步 93
本章小結(jié) 94
第5章 詳解TeleService 95
5.1 加載過程分析 95
5.1.1 應(yīng)用基本信息 96
5.1.2 PhoneGlobals.onCreate 97
5.1.3 TelephonyGlobals.onCreate 98
5.2 Telephony Phone 98
5.2.1 GsmCdmaPhone 99
5.2.2 Composition(組合)關(guān)系 101
5.2.3 Facade Pattern 102
5.2.4 Handler消息處理機(jī)制 103
5.3 擴(kuò)展PhoneAccount 105
5.3.1 PhoneAccount初始化過程 105
5.3.2 PhoneAccount注冊響應(yīng) 108
5.3.3 PhoneAccount在撥號流程中的作用分析 109
5.3.4 小結(jié) 112
5.4 TeleService服務(wù) 113
5.4.1 phone系統(tǒng)服務(wù) 113
5.4.2 isub系統(tǒng)服務(wù) 115
5.4.3 IConnectionService應(yīng)用服務(wù) 118
本章小結(jié) 123
第6章 Voice Call語音通話模型 125
6.1 詳解GsmCdmaCallTracker 125
6.1.1 代碼結(jié)構(gòu)解析 126
6.1.2 Handler消息處理方式 127
6.1.3 與RILJ對象的交互機(jī)制 130
6.2 handlePollCalls方法 134
6.2.1 準(zhǔn)備階段 134
6.2.2 更新通話相關(guān)信息 135
6.2.3 發(fā)出通知 140
6.2.4 更新mState 141
6.3 通話管理模型分析 142
6.3.1 GsmCdmaCall 143
6.3.2 GsmCdmaConnection 143
6.3.3 DriverCall、Call、Connection 146
6.4 補(bǔ)充通話連接斷開處理機(jī)制 149
6.4.1 本地主動掛斷通話 149
6.4.2 遠(yuǎn)端斷開通話連接 152
6.5 區(qū)分Connection 154
6.6 擴(kuò)展InCallUi 155
6.6.1 初始化過程 155
6.6.2 addCall 158
6.6.3 InCallUi通話界面 160
6.6.4 updateCall 165
6.7 驗(yàn)證Call運(yùn)行模型 166
6.7.1 Telephony Voice Call 167
6.7.2 Telecom Call 170
6.7.3 InCallUi Call 171
本章小結(jié) 173
第7章 ServiceState網(wǎng)絡(luò)服務(wù) 175
7.1 ServiceState 176
7.1.1 ServiceState類的本質(zhì) 176
7.1.2 關(guān)鍵常量信息 177
7.1.3 關(guān)鍵屬性 177
7.1.4 關(guān)鍵方法 178
7.2 ServiceStateTracker運(yùn)行機(jī)制詳解 179
7.2.1 核心類圖 179
7.2.2 代碼結(jié)構(gòu) 180
7.2.3 Handler消息處理機(jī)制 181
7.2.4 與RILJ對象的交互機(jī)制 184
7.3 handlePollStateResult方法 186
7.3.1 異常處理 186
7.3.2 handlePollStateResultMessage 187
7.3.3 繼續(xù)更新mNewSS 190
7.3.4 完成收尾工作 191
7.4 *#*#4636#*#*測試工具 193
7.4.1 網(wǎng)絡(luò)服務(wù)信息 194
7.4.2 擴(kuò)展ITelephonyRegistry 196
7.4.3 展示小區(qū)信息 197
7.4.4 小區(qū)信息更新源頭 198
7.4.5 信號強(qiáng)度實(shí)時變化 199
7.5 飛行模式 201
7.5.1 飛行模式開啟關(guān)閉入口邏輯 201
7.5.2 Radio模塊開啟關(guān)閉 202
7.5.3 WiFi模塊開啟關(guān)閉 202
7.5.4 藍(lán)牙模塊開啟關(guān)閉 202
7.6 擴(kuò)展SIM卡業(yè)務(wù) 203
7.6.1 SIM卡業(yè)務(wù)分析 203
7.6.2 駐網(wǎng)過程分析 204
7.6.3 SoftSim業(yè)務(wù)實(shí)現(xiàn)分析 205
本章小結(jié) 206
第8章 Data Call移動數(shù)據(jù)業(yè)務(wù) 207
8.1 DcTracker初始化過程 207
8.1.1 Handler消息注冊 208
8.1.2 初始化ApnContext 208
8.1.3 認(rèn)識APN 210
8.1.4 創(chuàng)建DcController 212
8.1.5 注冊O(shè)bserver 213
8.1.6 廣播接收器 213
8.1.7 加載ApnSetting 213
8.2 解析StateMachine 215
8.2.1 State設(shè)計模式 215
8.2.2 StateMachine核心類 215
8.2.3 初始化流程 216
8.2.4 運(yùn)行流程 217
8.2.5 小結(jié) 218
8.3 DataConnection 219
8.3.1 關(guān)鍵屬性 220
8.3.2 關(guān)鍵方法 220
8.3.3 StateMachine初始化流程 221
8.4 開啟移動數(shù)據(jù)業(yè)務(wù) 222
8.4.1 流程分析 222
8.4.2 前置條件分析 227
8.4.3 DcActiveState收尾工作 231
8.4.4 Suspend掛起狀態(tài) 232
8.4.5 查看手機(jī)上網(wǎng)基本信息 232
8.5 關(guān)閉移動數(shù)據(jù)業(yè)務(wù) 233
8.6 DataConnection狀態(tài)轉(zhuǎn)換 233
8.7 獲取Android手機(jī)上網(wǎng)數(shù)據(jù)包 234
8.7.1 使用tcpdump工具抓取TCP/IP數(shù)據(jù)包 234
8.7.2 使用Wireshark軟件分析TCP/IP數(shù)據(jù)包 235
本章小結(jié) 235
第9章 SMS&MMS業(yè)務(wù) 236
9.1 短信發(fā)送流程 236
9.1.1 進(jìn)入短信應(yīng)用 236
9.1.2 短信編輯界面 237
9.1.3 Action處理機(jī)制 239
9.1.4 繼續(xù)跟進(jìn)短信發(fā)送流程 241
9.1.5 phone進(jìn)程中的短信發(fā)送流程 243
9.2 擴(kuò)展短信發(fā)送業(yè)務(wù) 245
9.2.1 確認(rèn)短信發(fā)送結(jié)果 245
9.2.2 重發(fā)機(jī)制 246
9.2.3 狀態(tài)報告 247
9.3 短信接收流程 247
9.3.1 RIL接收短信消息 247
9.3.2 GsmInboundSmsHandler 248
9.3.3 Messaging應(yīng)用接收新短信 250
9.3.4 PDU 251
9.3.5 短信業(yè)務(wù)小結(jié) 252
9.4 彩信關(guān)鍵業(yè)務(wù)邏輯 253
9.4.1 彩信發(fā)送入口 253
9.4.2 imms系統(tǒng)服務(wù) 254
9.4.3 彩信發(fā)送流程 255
9.4.4 Data Call 256
9.4.5 doHttp 259
9.4.6 接收彩信 259
9.4.7 MmsService小結(jié) 260
本章小結(jié) 261
第 10章 Radio Interface Layer 262
10.1 解析RILJ 263
10.1.1 認(rèn)識RIL類 263
10.1.2 RILRequest 265
10.1.3 IRadio關(guān)聯(lián)的服務(wù) 266
10.1.4 RIL消息分類 270
10.1.5 Solicited Request 270
10.1.6 Solicited Response 271
10.1.7 UnSolicited 274
10.2 詳解rild 274
10.2.1 RIL_startEventLoop 275
10.2.2 獲取RIL_RadioFunctions 275
10.2.3 注冊RIL_RadioFunctions 277
10.3 libril初始化流程 278
10.3.1 RIL_startEventLoop 278
10.3.2 RIL_register 280
10.4 擴(kuò)展hal接口 281
10.4.1 增加接口定義 282
10.4.2 驗(yàn)證生成的代碼 282
10.4.3 實(shí)現(xiàn)新增接口 285
10.4.4 運(yùn)行結(jié)果驗(yàn)證 286
10.5 RILC運(yùn)行機(jī)制 287
10.5.1 Solicited消息 287
10.5.2 UnSolicited消息 291
本章小結(jié) 293"