android驅(qū)動開發(fā)權(quán)威指南這本書以Android驅(qū)動本質(zhì)為源剖析了Android驅(qū)動程序開發(fā)要用到的DMA、中斷、同步、等待隊(duì)列與signal等多項(xiàng)技術(shù)。這里東坡小編分享android驅(qū)動開發(fā)權(quán)威指南電子書籍,內(nèi)容詳細(xì)完整,帶書簽,方便大家閱讀。
android驅(qū)動開發(fā)權(quán)威指南適合從事Linux開發(fā)、Android底層驅(qū)動開發(fā)、系統(tǒng)框架開發(fā),以及Android底層模塊驗(yàn)證測試等的相關(guān)軟件工程人員閱讀;也適合從事Android智能手機(jī)其他領(lǐng)域的研發(fā)人員參考;還適合作為大、中專院校與培訓(xùn)機(jī)構(gòu)的相關(guān)實(shí)踐性指導(dǎo)教材。
android驅(qū)動開發(fā)權(quán)威指南目錄
前言
第一篇 Android的前世今生——Android概述篇
第1章 Android的前世今生
1.1 Android的起源
1.2 開放手機(jī)聯(lián)盟
1.3 開源與相關(guān)協(xié)議
1.4 系統(tǒng)的升級與發(fā)展
第2章 Android體系結(jié)構(gòu)
2.1 四層空間基本結(jié)構(gòu)
2.1.1 Android系統(tǒng)底層開發(fā)
2.1.2 應(yīng)用程序開發(fā)
2.2 Android代碼目錄結(jié)構(gòu)
2.3 Android開發(fā)環(huán)境搭建
第二篇 勿于浮砂筑高臺——Linux驅(qū)動基礎(chǔ)篇
第3章 Linux 內(nèi)核綜述
3.1 OS基本概念
3.1.1 多用戶系統(tǒng)
3.1.2 用戶和組
3.1.3 進(jìn)程
3.1.4 Linux單核架構(gòu)
3.2 Linux內(nèi)核綜述
3.2.1 進(jìn)程/內(nèi)核模型綜述
3.2.2 內(nèi)存管理綜述
3.2.3 文件系統(tǒng)綜述
3.2.4 設(shè)備驅(qū)動簡述
第4章 Linux內(nèi)核編程與內(nèi)核模塊
4.1 Linux內(nèi)核源代碼目錄結(jié)構(gòu)
4.2 Linux內(nèi)核的編譯與啟動
4.3 Linux內(nèi)核的C編程
4.4 Linux內(nèi)核模塊基礎(chǔ)與骨架
4.5 Linux模塊的加載與卸載
4.6 Linux模塊的參數(shù)與導(dǎo)出符號
4.7 Linux模塊的使用計(jì)數(shù)
第5章 Linux文件系統(tǒng)
5.1 Linux文件系統(tǒng)概述
5.1.1 Linux文件系統(tǒng)的目錄結(jié)構(gòu)
5.1.2 設(shè)備驅(qū)動與Linux文件系統(tǒng)的關(guān)聯(lián)
5.2 Linux設(shè)備文件系統(tǒng)
5.2.1 devfs設(shè)備文件系統(tǒng)
5.2.2 udev設(shè)備文件系統(tǒng)
5.2.3 sysfs文件系統(tǒng)與Linux設(shè)備
5.2.4 udev的組成
5.2.5 udev規(guī)則文件
第6章 Linux字符設(shè)備驅(qū)動
6.1 Linux字符設(shè)備驅(qū)動結(jié)構(gòu)
6.1.1 cdev結(jié)構(gòu)體
6.1.2 分配和釋放設(shè)備號
6.1.3 file_operations結(jié)構(gòu)體
6.1.4 Linux字符設(shè)備驅(qū)動的組成
6.2 一個(gè)字符設(shè)備驅(qū)動例子——virtualchar
6.2.1 頭文件、宏及設(shè)備結(jié)構(gòu)體
6.2.2 加載與卸載設(shè)備驅(qū)動
6.2.3 驅(qū)動函數(shù)實(shí)現(xiàn)
6.2.4 驅(qū)動設(shè)備私有數(shù)據(jù)
6.3 對virtualchar設(shè)備的訪問
第7章 Linux設(shè)備驅(qū)動中的內(nèi)存與I/O訪問
7.1 CPU與內(nèi)存和I/O之間的故事
7.1.1內(nèi)存空間與I/O空間
7.1.2 內(nèi)存管理單元MMU
7.2 Linux內(nèi)存管理
7.3 Linux內(nèi)存訪問
7.4 Linux I/O訪問
7.4.1 訪問I/O
7.4.2 申請與釋放I/O資源
7.4.3 I/O訪問流程
7.4.4 設(shè)備地址與用戶空間的映射
7.5 DMA
7.5.1 DMA與Cache的一致性
7.5.2 Linux下的DMA編程
第8章 Linux設(shè)備驅(qū)動中的中斷
8.1 Linux中斷及中斷處理架構(gòu)
8.2 Linux中斷編程
8.2.1 申請和釋放中斷
8.2.2 使能與屏蔽中斷
8.2.3 底半部機(jī)制
8.2.4 中斷共享
8.3 Linux定時(shí)器
8.4 Linux延時(shí)處理
8.4.1 短延時(shí)
8.4.2 長延時(shí)
8.4.3 睡眠延時(shí)
第9章 Linux設(shè)備驅(qū)動中的并發(fā)
9.1 Linux中的并發(fā)與競爭
9.2 Linux中常用的同步訪問技術(shù)
9.2.1 中斷屏蔽
9.2.2 原子操作
9.2.3 自旋鎖
9.2.4 信號量
9.2.5 互斥燈
9.3 增加并發(fā)控制的virtualchar驅(qū)動
第10章 Linux設(shè)備的阻塞式與非阻塞式訪問
10.1 阻塞式與非阻塞式訪問
10.1.1 等待隊(duì)列
10.1.2 支持阻塞操作的virtualfifo設(shè)備驅(qū)動
10.2 Linux的輪詢訪問
10.2.1 應(yīng)用程序中的輪詢編程
10.2.2 設(shè)備驅(qū)動中的輪詢編程
10.2.3 支持輪詢操作的virtualfifo驅(qū)動
第11章 Linux設(shè)備驅(qū)動中的異步訪問
11.1 Linux 2.6 中的異步訪問
11.1.1 異步訪問概念與GNU C庫函數(shù)
11.1.2 使用信號作為異步訪問的通知
11.1.3 使用回調(diào)函數(shù)作為異步訪問的通知
11.1.4 異步訪問與設(shè)備驅(qū)動
11.2 異步Fifo驅(qū)動例子
11.2.1 在virtualfifo驅(qū)動中增加異步通知
11.2.2 在用戶空間驗(yàn)證virtualfifo的異步通知
第12章 Linux塊設(shè)備驅(qū)動
12.1 塊設(shè)備的I/O操作特點(diǎn)
12.2 Linux塊設(shè)備驅(qū)動結(jié)構(gòu)
12.2.1 block_device_operations結(jié)構(gòu)體
12.2.2 gendisk結(jié)構(gòu)體
12.2.3 request與bio結(jié)構(gòu)體
12.2.4 塊設(shè)備驅(qū)動注冊與注銷
12.3 Linux塊設(shè)備驅(qū)動的模塊加載與卸載
12.4 塊設(shè)備的打開/釋放/IOCTL
第13章 Linux網(wǎng)絡(luò)設(shè)備驅(qū)動
13.1 Linux網(wǎng)絡(luò)設(shè)備驅(qū)動體系結(jié)構(gòu)
13.2 Linux網(wǎng)絡(luò)設(shè)備驅(qū)動結(jié)構(gòu)
13.3 Linux網(wǎng)絡(luò)設(shè)備驅(qū)動I/O實(shí)現(xiàn)
13.3.1 網(wǎng)絡(luò)設(shè)備初始化
13.3.2 網(wǎng)絡(luò)數(shù)據(jù)包的收發(fā)
第三篇 實(shí)踐出真知——Android驅(qū)動實(shí)踐篇
第14章 Android HAL層的設(shè)計(jì)
14.1 Android HAL概述
14.2 為Android開發(fā)虛擬驅(qū)動virtualio
14.3 Android集成C程序訪問virtualio
14.4 Android通過HAL訪問virtualio
14.4.1 virtualio HAL模塊實(shí)現(xiàn)
14.4.2 實(shí)現(xiàn)訪問virtualio HAL模塊JNI
14.4.3 在Framework層增加virtualio服務(wù)
第15章 Framebuffer子系統(tǒng)
15.1 Linux Framebuffer一般子系統(tǒng)
15.1.1 Framebuffer數(shù)據(jù)結(jié)構(gòu)
15.1.2 Framebuffer驅(qū)動
15.2 Android Framebuffer子系統(tǒng)實(shí)踐
15.2.1 硬件基礎(chǔ)
15.2.2 CPU側(cè)顯示驅(qū)動模塊
15.2.3 LCM驅(qū)動模塊
15.3 Android系統(tǒng)對Framebuffer的使用
第16章 Input子系統(tǒng)
16.1 Linux Input一般子系統(tǒng)
16.1.1 Input數(shù)據(jù)結(jié)構(gòu)
16.1.2 Input內(nèi)核模塊
16.2 Android Input子系統(tǒng)實(shí)踐
16.2.1 硬件基礎(chǔ)
16.2.2 Input驅(qū)動模塊
16.3 Android系統(tǒng)對Input的使用
第17章 V4L2子系統(tǒng)
17.1 Linux V4L2一般子系統(tǒng)
17.1.1 V4L2數(shù)據(jù)結(jié)構(gòu)
17.1.2 V4L2接口
17.1.3 V4L2虛擬驅(qū)動vivi
17.2 Android V4L2實(shí)踐
17.2.1 硬件基礎(chǔ)
17.2.2 CPU側(cè)CCIC驅(qū)動模塊
17.2.3 OV5642模組驅(qū)動模塊
17.3 Android系統(tǒng)對V4L2的使用
第18章 Binder IPC通信子系統(tǒng)
18.1 Binder驅(qū)動概述
18.2 Binder通信模型
18.3 Binder驅(qū)動
18.3.1 Binder相關(guān)的結(jié)構(gòu)體
18.3.2 Android Binder子系統(tǒng)的架構(gòu)設(shè)計(jì)
18.4 Binder的工作流程
第19章 USB子系統(tǒng)
19.1 USB協(xié)議基礎(chǔ)知識
19.1.1 USB物理連接
19.1.2 USB通信協(xié)議
19.2 USB子系統(tǒng)底層
19.2.1 USB Core
19.2.2 Linux USB gadget三層架構(gòu)
19.3 Android USB子系統(tǒng)實(shí)踐
19.3.1 Android IPC通信補(bǔ)充
19.3.2 Android USB Mass Storage流程分析
第20章 Bootloader引導(dǎo)子系統(tǒng)
20.1 Bootloader流程分析
20.1.1 Bootloader概述
20.1.2 U-Boot啟動流程分析
20.2 Bootloader修改指南
20.2.1 開機(jī)第一幀圖的修改
20.2.2 開機(jī)模式的定制
參考文獻(xiàn)
android驅(qū)動開發(fā)權(quán)威指南節(jié)選
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版