注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)計(jì)算機(jī)組織與體系結(jié)構(gòu)Android系統(tǒng)源代碼情景分析(第三版)

Android系統(tǒng)源代碼情景分析(第三版)

Android系統(tǒng)源代碼情景分析(第三版)

定 價(jià):¥129.00

作 者: 羅升陽(yáng) 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: >程序設(shè)計(jì) >計(jì)算機(jī)/網(wǎng)絡(luò) >移動(dòng)開(kāi)發(fā)

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787121325212 出版時(shí)間: 2017-09-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 848 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  在內(nèi)容上,本書(shū)結(jié)合使用情景,全面、深入、細(xì)致地分析Android系統(tǒng)的源代碼,涉及到Linux內(nèi)核層、硬件抽象層(HAL)、運(yùn)行時(shí)庫(kù)層(Runtime)、應(yīng)用程序框架層(Application Framework)以及應(yīng)用程序?qū)樱ˋpplication)。在組織上,本書(shū)將上述內(nèi)容劃分為初識(shí)Android系統(tǒng)、Android專用驅(qū)動(dòng)系統(tǒng)和Android應(yīng)用程序框架三大篇章。初識(shí)Android系統(tǒng)篇介紹了參考書(shū)籍、基礎(chǔ)知識(shí)以及實(shí)驗(yàn)環(huán)境搭建;Android專用驅(qū)動(dòng)系統(tǒng)篇介紹了Logger日志驅(qū)動(dòng)程序、Binder進(jìn)程間通信驅(qū)動(dòng)程序以及Ashmem匿名共享內(nèi)存驅(qū)動(dòng)程序;Android應(yīng)用程序框架篇從組件、進(jìn)程、消息以及安裝四個(gè)維度來(lái)對(duì)Android應(yīng)用程序的框架進(jìn)行了深入的剖析。通過(guò)上述內(nèi)容及其組織,本書(shū)能使讀者既能從整體上把握Android系統(tǒng)的層次結(jié)構(gòu),又能從細(xì)節(jié)上去掌握每一個(gè)層次的要點(diǎn)。

作者簡(jiǎn)介

  2007年畢業(yè)于浙江大學(xué)計(jì)算機(jī)系,取得學(xué)士學(xué)位,2010年畢業(yè)于上海交通大學(xué)計(jì)算機(jī)系,取得碩士學(xué)位。畢業(yè)后一直從事互聯(lián)網(wǎng)軟件開(kāi)發(fā),并且致力于移動(dòng)平臺(tái)的研究,特別是對(duì)Android平臺(tái)有深入的理解和研究。在國(guó)內(nèi)知名IT技術(shù)社區(qū)CSDN上發(fā)表了數(shù)十篇高質(zhì)量的Android系統(tǒng)原創(chuàng)性文章,并且開(kāi)設(shè)博客專欄――《老羅的Android之旅》,積極與網(wǎng)友互動(dòng),深受大家的喜愛(ài),訪問(wèn)量一直居于前茅。

圖書(shū)目錄

目  錄
第1篇 初識(shí)Android系統(tǒng)
第1章 準(zhǔn)備知識(shí)2
1.1 Linux內(nèi)核參考書(shū)籍2
1.2 Android應(yīng)用程序參考書(shū)籍3
1.3 下載、編譯和運(yùn)行Android源代碼3
1.3.1 下載Android源代碼5
1.3.2 編譯Android源代碼6
1.3.3 運(yùn)行Android模擬器7
1.4 下載、編譯和運(yùn)行Android內(nèi)核源代碼8
1.4.1 下載Android內(nèi)核源代碼8
1.4.2 編譯Android內(nèi)核源代碼8
1.4.3 運(yùn)行Android模擬器9
1.5 開(kāi)發(fā)第一個(gè)Android應(yīng)用程序10
1.6 單獨(dú)編譯和打包Android應(yīng)用程序模塊12
1.6.1 導(dǎo)入單獨(dú)編譯模塊的mmm命令12
1.6.2 單獨(dú)編譯Android應(yīng)用程序模塊13
1.6.3 重新打包Android系統(tǒng)鏡像文件13
1.7 為真機(jī)編譯ROM14
1.7.1 下載LineageOS16
1.7.2 下載設(shè)備開(kāi)源代碼16
1.7.3 下載設(shè)備私有文件17
1.7.4 編譯ROM17
1.7.5 刷入TWRP17
1.7.6 刷入ROM19
第2章 硬件抽象層21
2.1 開(kāi)發(fā)Android硬件驅(qū)動(dòng)程序22
2.1.1 實(shí)現(xiàn)內(nèi)核驅(qū)動(dòng)程序模塊22
2.1.2 修改內(nèi)核Kconfig文件29
2.1.3 修改內(nèi)核Makefile文件30
2.1.4 編譯內(nèi)核驅(qū)動(dòng)程序模塊30
2.1.5 驗(yàn)證內(nèi)核驅(qū)動(dòng)程序模塊31
2.2 開(kāi)發(fā)C可執(zhí)行程序驗(yàn)證Android硬件驅(qū)動(dòng)程序32
2.3 開(kāi)發(fā)Android硬件抽象層模塊34
2.3.1 硬件抽象層模塊編寫(xiě)規(guī)范34
2.3.2 編寫(xiě)硬件抽象層模塊接口37
2.3.3 硬件抽象層模塊的加載過(guò)程41
2.3.4 處理硬件設(shè)備訪問(wèn)權(quán)限問(wèn)題44
2.4 開(kāi)發(fā)Android硬件訪問(wèn)服務(wù)46
2.4.1 定義硬件訪問(wèn)服務(wù)接口46
2.4.2 實(shí)現(xiàn)硬件訪問(wèn)服務(wù)47
2.4.3 實(shí)現(xiàn)硬件訪問(wèn)服務(wù)的JNI方法48
2.4.4 啟動(dòng)硬件訪問(wèn)服務(wù)51
2.5 開(kāi)發(fā)Android應(yīng)用程序來(lái)使用硬件訪問(wèn)服務(wù)52
第3章 智能指針57
3.1 輕量級(jí)指針58
3.1.1 實(shí)現(xiàn)原理分析58
3.1.2 應(yīng)用實(shí)例分析61
3.2 強(qiáng)指針和弱指針62
3.2.1 強(qiáng)指針的實(shí)現(xiàn)原理分析63
3.2.2 弱指針的實(shí)現(xiàn)原理分析69
3.2.3 應(yīng)用實(shí)例分析75
第2篇 Android專用驅(qū)動(dòng)系統(tǒng)
第4章 Logger日志系統(tǒng)82
4.1 Logger日志格式83
4.2 Logger日志驅(qū)動(dòng)程序84
4.2.1 基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)85
4.2.2 日志設(shè)備的初始化過(guò)程86
4.2.3 日志設(shè)備文件的打開(kāi)過(guò)程91
4.2.4 日志記錄的讀取過(guò)程92
4.2.5 日志記錄的寫(xiě)入過(guò)程96
4.3 運(yùn)行時(shí)庫(kù)層日志庫(kù)101
4.4 C/C++日志寫(xiě)入接口108
4.5 Java日志寫(xiě)入接口112
4.6 Logcat工具分析118
4.6.1 基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)119
4.6.2 初始化過(guò)程123
4.6.3 日志記錄的讀取過(guò)程135
4.6.4 日志記錄的輸出過(guò)程140
第5章 Binder進(jìn)程間通信系統(tǒng)152
5.1 Binder驅(qū)動(dòng)程序153
5.1.1 基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)154
5.1.2 Binder設(shè)備的初始化過(guò)程172
5.1.3 Binder設(shè)備文件的打開(kāi)過(guò)程173
5.1.4 Binder設(shè)備文件的內(nèi)存映射過(guò)程174
5.1.5 內(nèi)核緩沖區(qū)管理181
5.2 Binder進(jìn)程間通信庫(kù)191
5.3 Binder進(jìn)程間通信應(yīng)用實(shí)例196
5.4 Binder對(duì)象引用計(jì)數(shù)技術(shù)204
5.4.1 Binder本地對(duì)象的生命周期205
5.4.2 Binder實(shí)體對(duì)象的生命周期209
5.4.3 Binder引用對(duì)象的生命周期212
5.4.4 Binder代理對(duì)象的生命周期217
5.5 Binder對(duì)象死亡通知機(jī)制220
5.5.1 注冊(cè)死亡接收通知221
5.5.2 發(fā)送死亡接收通知224
5.5.3 注銷(xiāo)死亡接收通知229
5.6 Service Manager的啟動(dòng)過(guò)程232
5.6.1 打開(kāi)和映射Binder設(shè)備文件234
5.6.2 注冊(cè)為Binder上下文管理者235
5.6.3 循環(huán)等待Client進(jìn)程請(qǐng)求239
5.7 Service Manager代理對(duì)象的獲取過(guò)程246
5.8 Service組件的啟動(dòng)過(guò)程252
5.8.1 注冊(cè)Service組件253
5.8.2 啟動(dòng)Binder線程池297
5.9 Service代理對(duì)象的獲取過(guò)程299
5.10 Binder進(jìn)程間通信機(jī)制的Java接口308
5.10.1 Service Manager的Java代理對(duì)象的獲取過(guò)程308
5.10.2 Java服務(wù)接口的定義和解析318
5.10.3 Java服務(wù)的啟動(dòng)過(guò)程321
5.10.4 Java服務(wù)代理對(duì)象的獲取過(guò)程328
5.10.5 Java服務(wù)的調(diào)用過(guò)程331
第6章 Ashmem匿名共享內(nèi)存系統(tǒng)335
6.1 Ashmem驅(qū)動(dòng)程序336
6.1.1 基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)336
6.1.2 匿名共享內(nèi)存設(shè)備的初始化過(guò)程338
6.1.3 匿名共享內(nèi)存設(shè)備文件的打開(kāi)過(guò)程340
6.1.4 匿名共享內(nèi)存設(shè)備文件的內(nèi)存映射過(guò)程342
6.1.5 匿名共享內(nèi)存塊的鎖定和解鎖過(guò)程344
6.1.6 匿名共享內(nèi)存塊的回收過(guò)程352
6.2 運(yùn)行時(shí)庫(kù)cutils的匿名共享內(nèi)存訪問(wèn)接口353
6.3 匿名共享內(nèi)存的C++訪問(wèn)接口357
6.3.1 MemoryHeapBase357
6.3.2 MemoryBase367
6.3.3 應(yīng)用實(shí)例372
6.4 匿名共享內(nèi)存的Java訪問(wèn)接口378
6.4.1 MemoryFile378
6.4.2 應(yīng)用實(shí)例383
6.5 匿名共享內(nèi)存的共享原理394
第3篇 Android應(yīng)用程序框架
第7章 Activity組件的啟動(dòng)過(guò)程400
7.1 Activity組件應(yīng)用實(shí)例400
7.2 根Activity組件的啟動(dòng)過(guò)程406
7.3 子Activity組件在進(jìn)程內(nèi)的啟動(dòng)過(guò)程440
7.4 子Activity組件在新進(jìn)程中的啟動(dòng)過(guò)程448
第8章 Service組件的啟動(dòng)過(guò)程451
8.1 Service組件應(yīng)用實(shí)例451
8.2 Service組件在新進(jìn)程中的啟動(dòng)過(guò)程459
8.3 Service組件在進(jìn)程內(nèi)的綁定過(guò)程471
第9章 Android系統(tǒng)廣播機(jī)制494
9.1 廣播機(jī)制應(yīng)用實(shí)例495
9.2 廣播接收者的注冊(cè)過(guò)程501
9.3 廣播的發(fā)送過(guò)程509
第10章 Content Provider組件的實(shí)現(xiàn)原理532
10.1 Content Provider組件應(yīng)用實(shí)例533
10.1.1 ArticlesProvider533
10.1.2 Article543
10.2 Content Provider組件的啟動(dòng)過(guò)程558
10.3 Content Provider組件的數(shù)據(jù)共享原理581
10.3.1 數(shù)據(jù)共享模型581
10.3.2 數(shù)據(jù)傳輸過(guò)程584
10.4 Content Provider組件的數(shù)據(jù)更新通知機(jī)制604
10.4.1 注冊(cè)內(nèi)容觀察者605
10.4.2 發(fā)送數(shù)據(jù)更新通知611
第11章 Zygote和System進(jìn)程的啟動(dòng)過(guò)程619
11.1 Zygote進(jìn)程的啟動(dòng)腳本619
11.2 Zygote進(jìn)程的啟動(dòng)過(guò)程622
11.3 System進(jìn)程的啟動(dòng)過(guò)程630
第12章 Android應(yīng)用程序進(jìn)程的啟動(dòng)過(guò)程638
12.1 應(yīng)用程序進(jìn)程的創(chuàng)建過(guò)程638
12.2 Binder線程池的啟動(dòng)過(guò)程647
12.3 消息循環(huán)的創(chuàng)建過(guò)程649
第13章 Android應(yīng)用程序的消息處理機(jī)制653
13.1 創(chuàng)建線程消息隊(duì)列653
13.2 線程消息循環(huán)過(guò)程658
13.3 線程消息發(fā)送過(guò)程663
13.4 線程消息處理過(guò)程668
第14章 Android應(yīng)用程序的鍵盤(pán)消息處理機(jī)制675
14.1 鍵盤(pán)消息處理模型675
14.2 InputManager的啟動(dòng)過(guò)程678
14.2.1 創(chuàng)建InputManager678
14.2.2 啟動(dòng)InputManager681
14.2.3 啟動(dòng)InputDispatcher683
14.2.4 啟動(dòng)InputReader685
14.3 InputChannel的注冊(cè)過(guò)程696
14.3.1 創(chuàng)建InputChannel697
14.3.2 注冊(cè)Server端InputChannel705
14.3.3 注冊(cè)系統(tǒng)當(dāng)前激活的應(yīng)用程序窗口709
14.3.4 注冊(cè)Client端InputChannel714
14.4 鍵盤(pán)消息的分發(fā)過(guò)程717
14.4.1 InputReader獲得鍵盤(pán)事件718
14.4.2 InputDispatcher分發(fā)鍵盤(pán)事件725
14.4.3 系統(tǒng)當(dāng)前激活的應(yīng)用程序窗口獲得鍵盤(pán)消息735
14.4.4 InputDispatcher獲得鍵盤(pán)事件處理完成通知751
14.5 InputChannel的注銷(xiāo)過(guò)程754
14.5.1 銷(xiāo)毀應(yīng)用程序窗口755
14.5.2 注銷(xiāo)Client端InputChannel764
14.5.3 注銷(xiāo)Server端InputChannel766
第15章 Android應(yīng)用程序線程的消息循環(huán)模型772
15.1 應(yīng)用程序主線程消息循環(huán)模型773
15.2 與界面無(wú)關(guān)的應(yīng)用程序子線程消息循環(huán)模型774
15.3 與界面相關(guān)的應(yīng)用程序子線程消息循環(huán)模型777
第16章 Android應(yīng)用程序的安裝和顯示過(guò)程786
16.1 應(yīng)用程序的安裝過(guò)程 786
16.2 應(yīng)用程序的顯示過(guò)程822

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)