· 多年嵌入式人才培養及項目研發經驗總結
· 數百家企業嵌入式研發崗位人才需求匯總
· 數十所嵌入式專業大學院校教學現狀調研
· 側重實踐及案例分析并輔以代碼加以講解
《android系統移植和驅動開發》針對特定硬件平臺從零構建android系統,包括平臺移植、應用開發、內核開發以及驅動開發。目前企業對android人才需求主要分布在應用開發和底層系統開發兩個方面,企業最緊缺的是兼具二者的全才型系統工程師,和嵌入式linux人才需求基本相似。結合這樣的人才需求特點,本書的讀者是想兼顧應用開發和底層開發的系統級開發工程師。本書共12章,開篇介紹了android底層開發和嵌入式開發之間的關系,接著介紹android系統的編譯和移植,在這個基礎上進一步闡述了android驅動開發的原理,最后給出了一個android智能家居的實例。
《android系統移植和驅動開發》是大學院校嵌入式技術專業、電子信息類其他專業的專業課程教材,也可供高等及中等職業技術院校使用。
《android系統移植和驅動開發》章節:
第1章 android系統的編譯和移植實例
1.1 移植背景與目標
1.2 移植涉及的主要過程
1.3 下載android linux 內核
1.4 安裝交叉工具鏈
1.5 移植android linux 內核支持ez6410平臺
1.5.1 cs8900a驅動移植
1.5.2 鍵盤驅動編寫
1.5.3 液晶驅動
1.5.4 觸摸屏驅動
1.5.5 usb驅動修改
1.5.6 安裝android sdk
1.5.7 提取android 根文件系統
1.5.8 系統環境設置
1.6 小結
1.7 思考題
第2章 android系統與嵌入式開發
2.1 android與傳統嵌入式linux系統
2.2 嵌入式系統概述
.2.2.1 嵌入式系統簡介
2.2.2 嵌入式系統的特點
2.2.3 嵌入式系統的發展
2.3 嵌入式系統的組成
2.3.1 嵌入式系統的硬件組成
2.3.2 嵌入式系統的軟件組成
2.4 嵌入式系統開發概述
2.5 android系統概述
2.6 android系統架構
2.6.1 linux內核(linux kernel)
2.6.2 android核心庫(libraries)
2.6.3 android運行時環境(android runtime)
2.6.4 android應用程序框架(application framework)
2.6.5 android應用程序和小部件
2.7 小結
2.8 思考題
第3章 android移植平臺工具介紹
3.1 開發板外觀
3.2 開發板硬件資源
3.3 功能展示
3.4 目標板與主機之間的連接
3.5 文件傳輸
3.6 網絡文件系統
3.7 設備安裝
3.8 工具軟件的設置
3.9 u-boot鏡像的下載與燒寫
3.10 內核鏡像的下載與燒寫
3.11 燒寫文件系統鏡像
3.12 u-boot啟動參數設置
3.13 小結
3.14 思考題
第4章 android移植環境搭建
4.1 構建android移植交叉開發環境
4.1.1 嵌入式交叉編譯環境搭建
4.1.2 主機交叉開發環境配置
4.2 bootloader
4.2.1 bootloader的種類
4.2.2 u-boot編譯與使用
4.2.3 u-boot移植
4.3 android內核與移植
4.3.1 android移植簡介
4.3.2 fs_s5pc100開發平臺移植環境搭建
4.4 u-boot、內核、文件系統編譯
4.4.1 u-boot的編譯
4.4.2 內核鏡像的編譯
4.4.3 android文件系統的編譯
4.5 小結
4.6 思考題
第5章 android移植與驅動
5.1 android移植和驅動的關系
5.2 設備驅動程序
5.2.1 設備驅動概念
5.2.2 內核驅動程序
5.2.3 用戶空間驅動程序
5.2.4 linux設備驅動概述
5.3 linux核心與android驅動
5.3.1 android專用驅動
5.3.2 android使用的設備驅動
5.4 android驅動的helloworld
5.5 小結
5.6 思考題
第6章 android驅動編程
6.1 android內核內核模塊編程
6.2 字符設備驅動編程
6.2.1 字符設備驅動編寫流程
6.2.2 重要數據結構
6.2.3 設備驅動程序主要組成
6.3 lcd控制器
6.3.1 lcd控制器介紹
6.3.2 s5pc100 lcd控制器介紹
6.3.3 s5pc100 lcd控制器操作
6.3.4 lcd控制器寄存器
6.4 驅動程序
6.4.1 驅動程序初始化和退出
6.4.2 驅動程序open and release 函數
6.4.3 驅動程序ioctl函數
6.4.4 驅動測試程序main.c
6.5 小結
6.6 思考題
第7章 android hal實例解析
7.1 概述
7.2 hal介紹
7.3 hal內容
7.3.1 知識準備:hal 主要的存儲目錄
7.3.2 知識準備:兩種 hal 架構比較
7.4 mokoid 工程代碼下載與結構分析
7.4.1 知識準備:mokid項目概述
7.4.2 知識準備:結構分析
7.4.3 知識準備:第一種方法 直接調用service方法的實現過程
7.4.4 知識準備:第二種方法—經過manager調用service
7.4.5 fs-s5pc100實驗平臺led燈實驗
7.4.6 fs-s5pc100實驗平臺sensor實驗
7.5 實驗中需要注意的問題
7.6 小結
7.7 思考題
第8章 android 4.0系統的下載與編譯
8.1 準備android下載與編譯環境
8.1.1 硬件環境
8.1.2 軟件環境
8.2 下載android 4.0及goldfish源碼
8.2.1 下載并初始化repo工具
8.2.2 下載android源碼
8.2.3 其他源碼下載源
8.2.4 下載模擬器goldfish內核源碼
8.3 編譯android及goldfish內核源碼
8.3.1 編譯android源碼
8.3.2 編譯goldfish內核源碼
8.4 android編譯過程分析
8.4.1 source build/envsetup.sh
8.4.2 執行lunch full-eng
8.4.3 執行make命令
8.5 創建目標產品編譯項
8.6 編譯并運行android 4.0系統模擬器
8.6.1 編譯android模擬器
8.6.2 android啟動流程
8.7 定制手機模擬器rom
8.7.1 定制手機開機界面
8.7.2 定制android啟動字樣
8.7.3 定制android動畫
8.8 為android啟動加速
8.8.1 定制本地服務
8.8.2 定制android系統服務
8.9 android系統企業級定制
8.10 小結
8.11 思考題
第9章 android系統蜂鳴器與按鍵
9.1 蜂鳴器驅動的實現
9.1.1 pwm定時器概述
9.1.2 pwm定時器特點
9.1.3 pwm定時器的寄存器
9.1.4 pwm定時器操作示例
9.1.5 蜂鳴器的種類和工作原理
9.1.6 開發板上的蜂鳴器原理圖分析
9.2 蜂鳴器hal層的實現
9.3 android按鍵檢測程序流程
9.4 驅動層實現
9.4.1 hal層實現
9.4.2 hal使用
9.4.3 hal stub實現
9.4.4 jni層實現
9.4.5 framework層實現
9.4.6 應用層實現
9.5 小結
9.6 思考題
第10章 android與傳感器設計與實現
10.1 android sensor實現原理概述
10.2 jni原理
10.3 android hal
10.4 sensor傳感器系統
10.4.1 sensor stub分析
10.4.2 sensor stub 實現細節
10.5 logcat調試
10.6 一些開發環境的問題
10.7 小結
10.8 思考題
第11章 android與攝像頭
11.1 ov9650介紹
11.1.1 芯片功能描述
11.1.2 ov9650寄存器詳解
11.2 sccb總線
11.2.1 sccb協議介紹
11.2.2 sccb的總線編程
11.3 camif接口詳解
11.3.1 基于s5pc100的camif接口介紹
11.3.2 s5pc100 camif寄存器詳解
11.4 攝像頭驅動
11.4.1 攝像頭工作原理
11.4.2 驅動開發思路
11.5 android camera架構分析
11.5.1 cameraservice介紹
11.5.2 camera-hal介紹
11.5.3 cameraservice與camera-hal的聯系
11.6 小結
11.7 思考題
第12章 android下綜合項目介紹——智能家居
12.1 項目概述
12.1.1 項目背景
12.1.2 術語定義
12.1.3 系統描述
12.1.4 功能描述
12.1.5 項目功能圖
12.1.6 所涉及的系統與工具
12.2 前端數據中心(a8)總體設計
12.2.1 程序設計流程圖
12.2.2 線程定義
12.2.3 所用類定義
12.3 前端a8模塊設計
12.3.1 a8-android application層設計
12.3.2 a8-數據傳遞架構模塊
12.3.3 傳輸協議模塊設計
12.4 終端m0模塊設計
12.4.1 終端設備方案描述
12.4.2 終端設備工作流程
12.4.3 功能模塊描述
12.5 系統測試