linux内核epub,Android底层开发技术实战详解——内核、移植和驱动(第2版)[EPUB][MOBI][AZW3][42.33MB]...
內(nèi)容簡介
本書從底層原理開始講起,結(jié)合真實(shí)的案例向讀者詳細(xì)介紹了Android內(nèi)核、移植和驅(qū)動開發(fā)的整個(gè)流程。全書分為21章,依次講解驅(qū)動移植的必要性, Goldfish、OMAP內(nèi)核和驅(qū)動解析,顯示系統(tǒng)、輸入系統(tǒng)、振動器系統(tǒng)、音頻系統(tǒng)、視頻輸出系統(tǒng)的驅(qū)動,OpenMax多媒體和多媒體插件框架,傳感器,照相機(jī),Wi-Fi,藍(lán)牙和GPS,USB Gadget驅(qū)動,Lights光系統(tǒng)和Battery電池系統(tǒng)等。在每一章中,重點(diǎn)介紹了與Android驅(qū)動開發(fā)相關(guān)的底層知識,并對Android源碼進(jìn)行了剖析。
目錄
第1章 Android底層開發(fā)基礎(chǔ)
1.1 什么是驅(qū)動
1.1.1 驅(qū)動程序的魅力
1.1.2 手機(jī)中的驅(qū)動程序
1.2 開源還是不開源的問題
1.2.1 霧里看花的開源
1.2.2 從為什么選擇Java談為什么不開源驅(qū)動程序
1.2.3 對驅(qū)動開發(fā)者來說是一把雙刃劍
1.3 Android和Linux
1.3.1 Linux簡介
1.3.2 Android和Linux的關(guān)系
1.4 簡析Linux內(nèi)核
1.4.1 內(nèi)核的體系結(jié)構(gòu)
1.4.2 和Android密切相關(guān)的Linux內(nèi)核知識
1.5 分析Linux內(nèi)核源代碼很有必要
1.5.1 源代碼目錄結(jié)構(gòu)
1.5.2 Linux 3.10的特性
1.5.3 瀏覽源代碼的工具
1.5.4 為什么用匯編語言編寫內(nèi)核代碼
1.5.5 Linux內(nèi)核的顯著特性
1.5.6 學(xué)習(xí)Linux內(nèi)核的方法
第2章 分析Android源代碼
2.1 搭建Linux開發(fā)環(huán)境和工具
2.1.1 搭建Linux開發(fā)環(huán)境
2.1.2 設(shè)置環(huán)境變量
2.1.3 安裝編譯工具
2.2 獲取Android源代碼
2.3 分析并編譯Android源代碼
2.3.1 Android源代碼的結(jié)構(gòu)
2.3.2 編譯Android源代碼
2.3.3 運(yùn)行Android源代碼
2.3.4 實(shí)踐演練――演示編譯Android程序的兩種方法
2.4 編譯Android Kernel
2.4.1 獲取Goldfish內(nèi)核代碼
2.4.2 獲取MSM內(nèi)核代碼
2.4.3 獲取OMAP內(nèi)核代碼
2.4.4 編譯Android的Linux內(nèi)核
2.5 運(yùn)行模擬器
2.5.1 Linux環(huán)境下運(yùn)行模擬器的方法
2.5.2 模擬器輔助工具――adb
第3章 驅(qū)動需要移植
3.1 驅(qū)動開發(fā)需要做的工作
3.2 Android移植
3.2.1 移植的任務(wù)
3.2.2 移植的內(nèi)容
3.2.3 驅(qū)動開發(fā)的任務(wù)
3.3 Android對Linux的改造
3.3.1 Android對Linux內(nèi)核文件的改動
3.3.2 為Android構(gòu)建Linux的操作系統(tǒng)
3.4 內(nèi)核空間和用戶空間接口是一個(gè)媒介
3.4.1 內(nèi)核空間和用戶空間的相互作用
3.4.2 系統(tǒng)和硬件之間的交互
3.4.3 使用Relay實(shí)現(xiàn)內(nèi)核到用戶空間的數(shù)據(jù)傳輸
3.5 三類驅(qū)動程序
3.5.1 字符設(shè)備驅(qū)動程序
3.5.2 塊設(shè)備驅(qū)動程序
3.5.3 網(wǎng)絡(luò)設(shè)備驅(qū)動程序
第4章 HAL層深入分析
4.1 認(rèn)識HAL層
4.1.1 HAL層的發(fā)展
4.1.2 過去和現(xiàn)在的區(qū)別
4.2 分析HAL層源代碼
4.2.1 分析HAL moudle
4.2.2 分析mokoid工程
4.3 總結(jié)HAL層的使用方法
4.4 傳感器在HAL層的表現(xiàn)
4.4.1 HAL層的Sensor代碼
4.4.2 總結(jié)Sensor編程的流程
4.4.3 分析Sensor源代碼看Android API與硬件平臺的銜接
4.5 移植總結(jié)
4.5.1 移植各個(gè)Android部件的方式
4.5.2 移植技巧之一――不得不說的輔助工作
4.6 開發(fā)一個(gè)硬件驅(qū)動程序
4.6.1 源代碼文件wuming.h和
wuming.c
4.6.2 編譯配置處理
4.6.3 修改配置文件
4.6.4 驗(yàn)證驅(qū)動程序
第5章 分析Goldfish內(nèi)核系統(tǒng)
5.1 Android專有驅(qū)動介紹
5.2 Goldfish基礎(chǔ)
5.3 Android專用驅(qū)動簡介
5.3.1 Logger驅(qū)動介紹
5.3.2 Low Memory Killer組件介紹
5.3.3 Timed Output驅(qū)動介紹
5.3.4 Timed Gpio驅(qū)動介紹
5.3.5 Ram Console驅(qū)動介紹
5.4 Ashmem驅(qū)動介紹
5.5 Pmem驅(qū)動介紹
5.6 Alarm驅(qū)動程序
5.7 USB Gadget驅(qū)動程序
5.8 Paranoid驅(qū)動介紹
5.9 Goldfish的設(shè)備驅(qū)動
第6章 MSM內(nèi)核和驅(qū)動解析
6.1 MSM基礎(chǔ)
6.1.1 常見MSM處理器產(chǎn)品
6.1.2 Snapdragon內(nèi)核介紹
6.2 移植MSM內(nèi)核簡介
6.3 移植MSM
6.3.1 Makefile文件
6.3.2 驅(qū)動和組件
6.3.3 設(shè)備驅(qū)動
6.3.4 高通特有的組件
第7章 OMAP內(nèi)核和驅(qū)動解析
7.1 OMAP基礎(chǔ)
7.1.1 OMAP簡析
7.1.2 常見OMAP處理器產(chǎn)品
7.1.3 開發(fā)平臺
7.2 OMAP內(nèi)核
7.3 移植OMAP體系結(jié)構(gòu)
7.3.1 移植OMAP平臺
7.3.2 移植OMAP處理器
7.4 移植Android專用驅(qū)動和組件
7.5 OMAP的設(shè)備驅(qū)動
7.5.1 顯示驅(qū)動程序
7.5.2 I2C總線驅(qū)動程序
7.5.3 攝像頭和視頻輸出驅(qū)動程序
7.5.4 觸摸屏和鍵盤驅(qū)動程序
7.5.5 實(shí)時(shí)時(shí)鐘驅(qū)動程序
7.5.6 音頻驅(qū)動程序
7.5.7 藍(lán)牙驅(qū)動程序
第8章 顯示系統(tǒng)驅(qū)動應(yīng)用
8.1 顯示系統(tǒng)介紹
8.2 分析內(nèi)核層
8.2.1 分析接口文件fb.h
8.2.2 分析內(nèi)核實(shí)現(xiàn)文件fbmem.c
8.3 分析硬件抽象層
8.3.1 分析頭文件
8.3.2 分析硬件幀緩沖區(qū)
8.3.3 實(shí)現(xiàn)緩沖區(qū)的分配
8.3.4 顯示緩沖映射
8.3.5 分析管理庫文件LayerBuffer.cpp
8.4 分析顯示系統(tǒng)的驅(qū)動程序
8.4.1 Goldfish中的FrameBuffer驅(qū)動程序
8.4.2 使用Gralloc模塊的驅(qū)動程序
8.4.3 分析MSM高通處理器中的顯示驅(qū)動實(shí)現(xiàn)
8.4.4 分析OMAP處理器中的顯示驅(qū)動實(shí)現(xiàn)
第9章 輸入系統(tǒng)驅(qū)動應(yīng)用
9.1 輸入系統(tǒng)介紹
9.1.1 Android輸入系統(tǒng)結(jié)構(gòu)元素介紹
9.1.2 移植Android輸入系統(tǒng)時(shí)的工作
9.2 分析Input(輸入)系統(tǒng)驅(qū)動
9.2.1 分析頭文件
9.2.2 分析核心文件input.c
9.2.3 分析event機(jī)制
9.3 分析硬件抽象層
9.3.1 分析文件KeycodeLabels.h
9.3.2 分析文件KeyCharacterMap.h
9.3.3 分析Kl格式文件
9.3.4 分析kcm格式文件
9.3.5 分析文件EventHub.cpp
第10章 振動器系統(tǒng)驅(qū)動
10.1 振動器系統(tǒng)結(jié)構(gòu)
10.2 分析硬件抽象層
10.3 分析JNI層部分
10.4 分析Java層部分
10.5 實(shí)現(xiàn)移植工作
10.5.1 移植振動器驅(qū)動程序
10.5.2 實(shí)現(xiàn)硬件抽象層
10.6 在MSM平臺實(shí)現(xiàn)振動器驅(qū)動
第11章 音頻系統(tǒng)驅(qū)動
11.1 音頻系統(tǒng)結(jié)構(gòu)
11.2 分析音頻系統(tǒng)的層次
11.2.1 層次說明
11.2.2 Media庫中的Audio框架
11.2.3 本地代碼
11.2.4 分析JNI代碼
11.2.5 Java層代碼簡介
11.3 移植Audio系統(tǒng)的工作
11.3.1 我們的工作
11.3.2 分析硬件抽象層
11.3.3 分析AudioFlinger中的Audio
硬件抽象層的實(shí)現(xiàn)
11.3.4 真正實(shí)現(xiàn)Audio硬件抽象層
11.4 在MSM平臺實(shí)現(xiàn)Audio驅(qū)動系統(tǒng)
11.4.1 實(shí)現(xiàn)Audio驅(qū)動程序
11.4.2 實(shí)現(xiàn)硬件抽象層
第12章 視頻輸出系統(tǒng)驅(qū)動
12.1 視頻輸出系統(tǒng)結(jié)構(gòu)
12.2 需要移植的部分
12.3 分析硬件抽象層
12.3.1 Overlay系統(tǒng)硬件抽象層的接口
12.3.2 實(shí)現(xiàn)Overlay系統(tǒng)的硬件抽象層
12.3.3 實(shí)現(xiàn)接口
12.4 實(shí)現(xiàn)Overlay硬件抽象層
12.5 在OMAP平臺實(shí)現(xiàn)Overlay系統(tǒng)
12.5.1 實(shí)現(xiàn)輸出視頻驅(qū)動程序
12.5.2 實(shí)現(xiàn)Overlay硬件抽象層
12.6 系統(tǒng)層調(diào)用Overlay HAL的架構(gòu)
12.6.1 調(diào)用Overlay HAL的架構(gòu)的
流程
12.6.2 S3C6410 Android Overlay的測試代碼
第13章 OpenMax多媒體框架
13.1 OpenMax基本層次結(jié)構(gòu)
13.2 分析OpenMax框架構(gòu)成
13.2.1 OpenMax總體層次結(jié)構(gòu)
13.2.2 OpenMax IL層的結(jié)構(gòu)
13.2.3 Android中的OpenMax
13.3 實(shí)現(xiàn)OpenMax IL層接口
13.3.1 OpenMax IL層的接口
13.3.2 在OpenMax IL層中需要做什么
13.3.3 研究Android中的OpenMax適配層
13.4 在OMAP平臺實(shí)現(xiàn)OpenMax IL
13.4.1 實(shí)現(xiàn)文件
13.4.2 分析TI OpenMax IL的核心
13.4.3 實(shí)現(xiàn)TI OpenMax IL組件實(shí)例
第14章 多媒體插件框架
14.1 Android多媒體插件
14.2 需要移植的內(nèi)容
14.3 OpenCore引擎
14.3.1 OpenCore層次結(jié)構(gòu)
14.3.2 OpenCore代碼結(jié)構(gòu)
14.3.3 OpenCore編譯結(jié)構(gòu)
14.3.4 OpenCore OSCL
14.3.5 實(shí)現(xiàn)OpenCore中的OpenMax部分
14.3.6 OpenCore的擴(kuò)展
14.4 Stagefright引擎
14.4.1 Stagefright代碼結(jié)構(gòu)
14.4.2 Stagefright實(shí)現(xiàn)OpenMax接口
14.4.3 Video Buffer傳輸流程
第15章 傳感器系統(tǒng)
15.1 傳感器系統(tǒng)的結(jié)構(gòu)
15.2 分析需要移植的內(nèi)容
15.2.1 移植驅(qū)動程序
15.2.2 移植硬件抽象層
15.2.3 實(shí)現(xiàn)上層部分
15.3 在模擬器中實(shí)現(xiàn)傳感器驅(qū)動
第16章 照相機(jī)系統(tǒng)
16.1 Camera系統(tǒng)的結(jié)構(gòu)
16.2 分析需要移植的內(nèi)容
16.3 移植和調(diào)試
16.3.1 V4L2驅(qū)動程序
16.3.2 硬件抽象層
16.4 實(shí)現(xiàn)Camera系統(tǒng)的硬件抽象層
16.4.1 Java程序部分
16.4.2 Camera的Java本地調(diào)用部分
16.4.3 Camera的本地庫libui.so
16.4.4 Camera服務(wù)libcameraservice.so
16.5 在MSM平臺實(shí)現(xiàn)Camera驅(qū)動系統(tǒng)
16.6 在OMAP平臺實(shí)現(xiàn)Camera驅(qū)動系統(tǒng)
第17章 Wi-Fi系統(tǒng)、藍(lán)牙系統(tǒng)和GPS系統(tǒng)
17.1 Wi-Fi系統(tǒng)
17.1.1 Wi-Fi系統(tǒng)的結(jié)構(gòu)
17.1.2 需要移植的內(nèi)容
17.1.3 移植和調(diào)試
17.1.4 OMAP平臺實(shí)現(xiàn)Wi-Fi
17.1.5 配置Wi-Fi的流程
17.1.6 具體演練――在Android下實(shí)現(xiàn)Ethernet
17.2 藍(lán)牙系統(tǒng)
17.2.1 藍(lán)牙系統(tǒng)的結(jié)構(gòu)
17.2.2 需要移植的內(nèi)容
17.2.3 具體移植
17.2.4 MSM平臺的藍(lán)牙驅(qū)動
17.3 定位系統(tǒng)
17.3.1 定位系統(tǒng)的結(jié)構(gòu)
17.3.2 分析需要移植的內(nèi)容
17.3.3 分析驅(qū)動程序
17.3.4 分析硬件抽象層
17.3.5 分析上層應(yīng)用部分
第18章 電話系統(tǒng)
18.1 電話系統(tǒng)基礎(chǔ)
18.1.1 電話系統(tǒng)簡介
18.1.2 電話系統(tǒng)結(jié)構(gòu)
18.2 需要移植的內(nèi)容
18.3 移植和調(diào)試
18.3.1 驅(qū)動程序
18.3.2 RIL接口
18.4 電話系統(tǒng)實(shí)現(xiàn)流程分析
18.4.1 初始啟動流程
18.4.2 request流程
18.4.3 response流程
第19章 分析時(shí)鐘系統(tǒng)驅(qū)動
19.1 Alarm系統(tǒng)基礎(chǔ)
19.1.1 Alarm層次結(jié)構(gòu)介紹
19.1.2 我們需要移植的內(nèi)容
19.2 分析RTC驅(qū)動程序
19.3 分析Alarm驅(qū)動程序
19.3.1 分析文件android_alarm.h
19.3.2 分析文件alarm.c
19.3.3 分析文件alarm-dev.c
19.4 分析JNI層
19.5 分析Java層
19.5.1 分析AlarmManagerService類
19.5.2 分析AlarmManager類
19.6 模擬器環(huán)境的具體實(shí)現(xiàn)
第20章 分析USB Gadget驅(qū)動
20.1 分析Linux內(nèi)核的USB驅(qū)動程序
20.1.1 USB設(shè)備基礎(chǔ)
20.1.2 分析USB 和sysfs的聯(lián)系
20.1.3 分析urb通信方式
20.1.4 分析USB驅(qū)動的例程
20.2 分析USB Gadget驅(qū)動
20.2.1 分析軟件結(jié)構(gòu)
20.2.2 層次整合
20.2.3 USB設(shè)備枚舉
第21章 其他系統(tǒng)
21.1 Lights光系統(tǒng)
21.1.1 Lights光系統(tǒng)的結(jié)構(gòu)
21.1.2 需要移植的內(nèi)容
21.1.3 移植和調(diào)試
21.1.4 MSM平臺實(shí)現(xiàn)光系統(tǒng)
21.2 Battery電池系統(tǒng)
21.2.1 Battery系統(tǒng)的結(jié)構(gòu)
21.2.2 需要移植的內(nèi)容
21.2.3 移植和調(diào)試
21.2.4 在模擬器中實(shí)現(xiàn)電池系統(tǒng)
文檔截圖
總結(jié)
以上是生活随笔為你收集整理的linux内核epub,Android底层开发技术实战详解——内核、移植和驱动(第2版)[EPUB][MOBI][AZW3][42.33MB]...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 客服工作台
- 下一篇: linux缺少文件操作数,linux 文