第1章Android底層開發基礎
1.1什么是驅動
1.1.1驅動程序的魅力
1.1.2電腦中的驅動
1.1.3手機中的驅動程序
1.2開源還是不開源的問題
1.2.1霧里看花的開源
1.2.2從為什么選擇Java談為什么不開源驅動程序
1.2.3對驅動開發者來說是一把雙刃劍
1.3Android和Linux
1.3.1Linux簡介
1.3.2Android和Linux的關系
1.4簡析Linux內核
1.4.1內核的體系結構
1.4.2和Android密切相關的Linux內核知識
1.5分析Linux內核源代碼很有必要
1.5.1源代碼目錄結構
1.5.2瀏覽源代碼的工具
1.5.3為什么用匯編語言編寫內核代碼
1.5.4Linux內核的顯著特性
1.5.5學習Linux內核的方法
第2章分析Android源代碼
2.1搭建Linux開發環境和工具
2.1.1搭建Linux開發環境
2.1.2設置環境變量
2.1.3安裝編譯工具
2.2獲取Android源代碼
2.3分析并編譯Android源代碼
2.3.1Android源代碼的結構
2.3.2編譯Android源代碼
2.3.3運行Android源代碼
2.3.4實踐演練——演示編譯Android程序的兩種方法
2.4編譯Android Kernel
2.4.1獲取Goldfish內核代碼
2.4.2獲取MSM內核代碼
2.4.3獲取0MAP內核代碼
2.4.4編譯Android的Linux內核
2.5運行模擬器
2.5.1Linux環境下運行榭以器的方法
2.5.2模擬器輔助工具——adb
第3章驅動需要移植
3.1驅動開發需要做的工作
3.2Android移植
3.2.1移植的任務
3.2.2移植的內容
3.2.3驅動開發的任務
3.3Android對Linux的改造
3.3.1Android對Linux內核文件的改動
3.3.2為Android構建Linux的操作系統
3.4內核空間和用戶空間接口是一個媒介
3.4.1內核空間和用戶空間的相互作用
3.4.2系統和硬件之間的交互
3.4.3使用Relay實現內核到用戶空間的數據傳輸
3.5三類驅動程序
3.5.1字符設備驅動程序
3.5.2塊設備驅動程序
3.5.3網絡設備驅動程序
第4章HAL層深入分析
4.1認識HAL層
4.1.1HAL層的發展
4.1.2過去和現在的區別
4.2分析HAL層源代碼
4.2.1 分析HAL moudle
4.2.2分析mokoid工程
4.3總結HAL層的使用方法
4.4傳感器在HAL層的表現
4.4.1HAL層的Sensor代碼
4.4.2總結Sensor編程的流程
4.4.3分杯sensor源代碼看Android API與硬件平臺的銜接
4.5移植總結
4.5.1移植各個Android部件的方式
4.5.2移植技巧之一——不得不說的輔助工作
第5章Goldfish下的驅動解析
5.1staging驅動
5.1.1staging驅動概述
5.1.2Binder驅動程序
5.1.3Logger驅動程序
5.1.4Lowmemorykiller組件
5.1.5Timed Output驅動程序
5.1.6Timed Gpi0驅動程序
5.1.7Ram Console驅動程序
5.2wakelock和early_suspend
5.2.1wakelock和early_suspend的原理
5.2.2Android休眠
5.2.3Android喚醒
5.3Ashmem驅動程序
5.4Pmem驅動程序
5.5Alarm驅動程序
5.5.1Alarm簡析
5.5.2Alarm驅動程序的實現
5.6USB Gadget驅動程序
5.7Android Paranoid驅動程序
5.8Goldfish設備驅動
5.8.1FrameBuffer驅動
5.8.2鍵盤驅動
5.8.3實時時鐘驅動程序
5.8.4TTY終端驅動程序
5.8.5NandFlash驅動程序
5.8.6MMC驅動程序
5.8.7電池驅動程序
第6章MSM內核和驅動解析
6.1MSM基礎
6.1.1常見MSM處理器產品
6.1.2Snapdragon內核介紹
6.2移植MsM內核簡介
6.3移植MSM
6.3.1Makefile文件
6.3.2驅動和組件
6.3.3設備驅動
6.3.4高通特有的組件
第7章OMAP內核和驅動解析
7.1OMAP基礎
7.1.1OMAP簡析
7.1.2常見OMAP處理器產品
7.1.3開發平臺
7.2OMAP內核
7.3移植OMAP體系結構
7.3.1移植OMAP平臺
7.3.2移植OMAP處理器
7.4移植Android專用驅動和組件
7.5OMAP的設備驅動
第8章顯示系統驅動應用
8.1顯示系統介紹
8.1.1Android的版本
8.1.2不同版本的顯示系統
8.2移植和調試前的準備
8.2.1FrameBuffer驅動程序
8.2.2硬件抽象層
8.3實現顯示系統的驅動程序
……
第9章輸入系統驅動應用
第10章振動器系統驅動
第11章音頻系統驅動
第12章視頻輸出系統驅動
第13章OpenMax多媒體框架
第14章多媒體插件框架
第15章傳感器系統
第16章照相機系統
第17章Wi—Fi系統、藍牙系統和GPS系統
第18章電話系統
第19章其他系統