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