Android系統源代碼情景分析(修訂版)

Android系統源代碼情景分析(修訂版)
定價:774
NT $ 774
  • 作者:羅升陽
  • 出版社:電子工業出版社
  • 出版日期:2016-01-01
  • 語言:簡體中文
  • ISBN10:7121275473
  • ISBN13:9787121275470
  • 裝訂:830頁 / 普通級 / 1-1
 

內容簡介

本書結合使用情景,全面、深入、細致地分析了Android系統的源代碼,涉及到Linux內核層、硬件抽象層(HAL)、運行時庫層(Runtime)、應用程序框架層(Application Framework)以及應用程序層(Application)。

在組織上,本書將上述內容划分為初識Android系統、Android專用驅動系統和Android應用程序框架三大篇。初識Android系統篇介紹了參考書籍、基礎知識以及實驗環境搭建;Android專用驅動系統篇介紹了Logger日志驅動程序、Binder進程間通信驅動程序以及Ashmem匿名共享內存驅動程序;Android應用程序框架篇從組件、進程、消息以及安裝四個維度對Android應用程序的框架進行了深入的剖析。

通過上述內容及其組織,本書能使讀者既能從整體上把握Android系統的層次結構,又能從細節上掌握每一個層次的要點。

羅升陽:1984年出生,2007年畢業於浙江大學計算機系,取得學士學位,2010年畢業於上海交通大學計算機系,取得碩士學位。畢業后一直從事於互聯網軟件開發,並且致力於移動平台的研究,特別是對Android平台有深入的理解和研究。

在國內知名IT技術社區CSDN上發表了數十篇高質量的Android系統原創性文章,並且開設博客專欄--《老羅的Android之旅》,積極與網友互動,深受大家喜愛,訪問量一直居於前茅。
 

目錄

第1篇初識Android系統
第1章 准備知識2
1.1 Linux內核參考書籍2
1.2 Android應用程序參考書籍3
1.3 下載、編譯和運行Android源代碼3
1.3.1 下載Android源代碼4
1.3.2 編譯Android源代碼4
1.3.3 運行Android模擬器5
1.4 下載、編譯和運行Android內核源代碼6
1.4.1 下載Android內核源代碼6
1.4.2 編譯Android內核源代碼7
1.4.3 運行Android模擬器8
1.5 開發第一個Android應用程序8
1.6 單獨編譯和打包Android應用程序模塊11
1.6.1 導入單獨編譯模塊的mmm命令11
1.6.2 單獨編譯Android應用程序模塊12
1.6.3 重新打包Android系統鏡像文件12
第2章 硬件抽象層13
2.1 開發Android硬件驅動程序14
2.1.1 實現內核驅動程序模塊14
2.1.2 修改內核Kconfig文件21
2.1.3 修改內核Makefile文件22
2.1.4 編譯內核驅動程序模塊22
2.1.5 驗證內核驅動程序模塊23
2.2 開發C可執行程序驗證Android硬件驅動程序24
2.3 開發Android硬件抽象層模塊26
2.3.1 硬件抽象層模塊編寫規范26
2.3.2 編寫硬件抽象層模塊接口29
2.3.3 硬件抽象層模塊的加載過程33
2.3.4 處理硬件設備訪問權限問題36
2.4 開發Android硬件訪問服務38
2.4.1 定義硬件訪問服務接口38
2.4.2 實現硬件訪問服務39
2.4.3 實現硬件訪問服務的JNI方法40
2.4.4 啟動硬件訪問服務43
2.5 開發Android應用程序來使用硬件訪問服務44
第3章 智能指針49
3.1 輕量級指針50
3.1.1 實現原理分析50
3.1.2 應用實例分析53
3.2 強指針和弱指針54
3.2.1 強指針的實現原理分析55
3.2.2 弱指針的實現原理分析61
3.2.3 應用實例分析67
第2篇Android專用驅動系統
第4章 Logger日志系統74
4.1 Logger日志格式75
4.2 Logger日志驅動程序76
4.2.1 基礎數據結構77
4.2.2 日志設備的初始化過程78
4.2.3 日志設備文件的打開過程83
4.2.4 日志記錄的讀取過程84
4.2.5 日志記錄的寫入過程88
4.3 運行時庫層日志庫93
4.4 C/C++日志寫入接口100
4.5 Java日志寫入接口104
4.6 Logcat工具分析110
4.6.1 基礎數據結構111
4.6.2 初始化過程115
4.6.3 日志記錄的讀取過程127
4.6.4 日志記錄的輸出過程132
第5章 Binder進程間通信系統144
5.1 Binder驅動程序145
5.1.1 基礎數據結構146
5.1.2 Binder設備的初始化過程164
5.1.3 Binder設備文件的打開過程165
5.1.4 Binder設備文件的內存映射過程166
5.1.5 內核緩沖區管理173
5.2 Binder進程間通信庫183
5.3 Binder進程間通信應用實例188
5.4 Binder對象引用計數技術196
5.4.1 Binder本地對象的生命周期197
5.4.2 Binder實體對象的生命周期201
5.4.3 Binder引用對象的生命周期204
5.4.4 Binder代理對象的生命周期209
5.5 Binder對象死亡通知機制212
5.5.1 注冊死亡接收通知213
5.5.2 發送死亡接收通知216
5.5.3 注銷死亡接收通知221
5.6 Service Manager的啟動過程224
5.6.1 打開和映射Binder設備文件226
5.6.2 注冊為Binder上下文管理者227
5.6.3 循環等待Client進程請求231
5.7 Service Manager代理對象的獲取過程238
5.8 Service組件的啟動過程244
5.8.1 注冊Service組件245
5.8.2 啟動Binder線程池289
5.9 Service代理對象的獲取過程291
5.10 Binder進程間通信機制的Java接口300
5.10.1 Service Manager的Java代理對象的獲取過程300
5.10.2 Java服務接口的定義和解析310
5.10.3 Java服務的啟動過程313
5.10.4 Java服務代理對象的獲取過程320
5.10.5 Java服務的調用過程323
第6章 Ashmem匿名共享內存系統327
6.1 Ashmem驅動程序328
6.1.1 基礎數據結構328
6.1.2 匿名共享內存設備的初始化過程330
6.1.3 匿名共享內存設備文件的打開過程332
6.1.4 匿名共享內存設備文件的內存映射過程334
6.1.5 匿名共享內存塊的鎖定和解鎖過程336
6.1.6 匿名共享內存塊的回收過程344
6.2 運行時庫cutils的匿名共享內存訪問接口345
6.3 匿名共享內存的C++訪問接口349
6.3.1 MemoryHeapBase349
6.3.2 MemoryBase359
6.3.3 應用實例364
6.4 匿名共享內存的Java訪問接口370
6.4.1 MemoryFile370
6.4.2 應用實例375
6.5 匿名共享內存的共享原理386
第3篇Android應用程序框架
第7章 Activity組件的啟動過程392
7.1 Activity組件應用實例392
7.2 根Activity組件的啟動過程398
7.3 子Activity組件在進程內的啟動過程432
7.4 子Activity組件在新進程中的啟動過程440
第8章 Service組件的啟動過程443
8.1 Service組件應用實例443
8.2 Service組件在新進程中的啟動過程451
8.3 Service組件在進程內的綁定過程463
第9章 Android系統廣播機制486
9.1 廣播機制應用實例487
9.2 廣播接收者的注冊過程493
9.3 廣播的發送過程501
第10章 Content Provider組件的實現原理524
10.1 Content Provider組件應用實例525
10.1.1 Articles Provider525
10.1.2 Article535
10.2 Content Provider組件的啟動過程550
10.3 Content Provider組件的數據共享原理573
10.3.1 數據共享模型573
10.3.2 數據傳輸過程576
10.4 Content Provider組件的數據更新通知機制596
10.4.1 注冊內容觀察者597
10.4.2 發送數據更新通知603
第11章 Zygote和System進程的啟動過程611
11.1 Zygote進程的啟動腳本611
11.2 Zygote進程的啟動過程614
11.3 System進程的啟動過程622
第12章 Android應用程序進程的啟動過程630
12.1 應用程序進程的創建過程630
12.2 Binder線程池的啟動過程639
12.3 消息循環的創建過程641
第13章 Android應用程序的消息處理機制645
13.1 創建線程消息隊列645
13.2 線程消息循環過程650
13.3 線程消息發送過程655
13.4 線程消息處理過程660
第14章 Android應用程序的鍵盤消息處理機制667
14.1 鍵盤消息處理模型667
14.2 InputManager的啟動過程670
14.2.1 創建InputManager670
14.2.2 啟動InputManager673
14.2.3 啟動InputDispatcher675
14.2.4 啟動InputReader677
14.3 InputChannel的注冊過程688
14.3.1 創建InputChannel689
14.3.2 注冊Server端InputChannel697
14.3.3 注冊系統當前激活的應用程序窗口701
14.3.4 注冊Client端InputChannel706
14.4 鍵盤消息的分發過程709
14.4.1 InputReader獲得鍵盤事件710
14.4.2 InputDispatcher分發鍵盤事件717
14.4.3 系統當前激活的應用程序窗口獲得鍵盤消息727
14.4.4 InputDispatcher獲得鍵盤事件處理完成通知743
14.5 InputChannel的注銷過程746
14.5.1 銷毀應用程序窗口747
14.5.2 注銷Client端InputChannel756
14.5.3 注銷Server端InputChannel758
第15章 Android應用程序線程的消息循環模型764
15.1 應用程序主線程消息循環模型765
15.2 與界面無關的應用程序子線程消息循環模型766
15.3 與界面相關的應用程序子線程消息循環模型769
第16章 Android應用程序的安裝和顯示過程778
16.1 應用程序的安裝過程778
16.2 應用程序的顯示過程814
網路書店 類別 折扣 價格
  1. 新書
    $774