本書分為四個部分:**部分為預備知識篇,簡要介紹嵌入式系統的定義與軟硬件開發以及Android開發環境的搭建。第二部分為系統結構篇,主要介紹Android系統的源碼結構、內核與相關工具以及環境庫。第三部分為驅動設計篇,主要介紹Android系統中常用外接設備的驅動架構以及實現。內容包括NDK編程、Android中HAL模型架構與實現流程。作為教學實例,*后分析了Android系統中的Camera與WIFI兩個功能部件的的驅動設計。第四部分為實例分析篇,通過對具體開發板硬件結構編程原理的介紹到系統級的實例講解。在簡要介紹系統底層開發流程的基礎上,首先分析了主流的Zynq和pcDuino平臺上開發環境的搭建、Linux內核以及Android系統的編譯、下載;然后結合前文學習過的知識點,從零開始設計LED顯示系統的Linux內核驅動、AndroidHAL支持和服務層設計、頂層App的實現;作為進階部分,本書*后介紹了對Android內核進行跟蹤調試與性能測試的工具軟件、工作流程以及結果分析。
推薦序
自 序
前 言
第1章 Android嵌入式系統導論
1.1 Android嵌入式系統概述
1.1.1 嵌入式系統定義
1.1.2 基于Android的嵌入式系統構成
1.1.3 移動電話系統
1.1.4 基于ARM的移動電話硬件結構
1.2 嵌入式系統實例
1.2.1 pcDuino部分硬件功能介紹
1.2.2 基于Android的嵌入式系統
第2章 Linux系統詳解
2.1 系統簡介
2.2 基礎命令
2.2.1 cd和ls命令
2.2.2 touch和mkdir命令
2.2.3 rm和rmdir命令
2.2.4 cp和mv命令
2.2.5 find和awk命令
2.2.6 vim編輯器的使用
2.3 Bash Shell
2.3.1 Bash Shell簡介
2.3.2 Bash Shell腳本簡介
2.4 Linux源碼與Android源碼介紹
2.4.1 Linux源碼簡介
2.4.2 Android源碼簡介
第3章 Android系統開發環境搭建
3.1 編譯前奏-Android上的開發工作
3.1.1 Android的移植開發
3.1.2 系統開發
3.1.3 應用開發
3.2 Android的系統架構
3.2.1 軟件結構
3.2.2 源代碼的結構
3.3 搭建開發環境
3.3.1 搭建編譯環境
3.3.2 使用repo
3.3.3 Android的編譯
第4章 Android系統底層源碼結構分析
4.1 源碼結構分析
4.1.1 底層庫結構介紹
4.1.2 C基礎函數庫bionic
4.1.3 C語言底層庫libcutils
4.1.4 C++工具庫libutils
4.1.5 底層文件系統庫system
4.1.6 增加本地庫的方法
4.2 Android編譯系統介紹
4.2.1 build系統
4.2.2 SDK
4.3 init初始化腳本語言介紹
4.3.1 概述
4.3.2 init進程源碼分析
4.3.3 腳本文件的創建與分析
4.3.4 創建設備節點文件
4.3.5 子進程的創建與終止
4.3.6 屬性服務
4.4 Zygote
4.4.1 Zygote概述
4.4.2 AppRuntime分析
4.4.3 system_server分析
第5章 Android系統內核分析
5.1 Linux內核基礎
5.1.1 概述
5.1.2 Linux內核的主要子系統
5.1.3 Linux啟動過程分析
5.2 Android內核概況
5.3 Android啟動過程分析
5.4 Binder框架分析
5.4.1 概述
5.4.2 Binder的系統架構
5.4.3 Binder的機制和原理
5.5 Ashmem內存管理方式
5.5.1 概述
5.5.2 Ashmem初始化
5.5.3 內存的創建和釋放
5.5.4 內存的映射
5.5.5 內存的鎖定和解鎖
5.6 低內存管理
5.7 Logger
5.7.1 Logger概述
5.7.2 Logger實現原理
第6章 Android系統相關工具及運行環境
6.1 Android開發工具分類及介紹
6.1.1 應用程序開發工具
6.1.2 框架開發工具
6.1.3 交叉編譯工具
6.1.4 內核開發工具
6.2 Dalvik虛擬機
6.2.1 概述
6.2.2 dex文件
6.2.3 Dalvik內存管理
6.2.4 Dalvik編譯器
6.3 JNI
6.3.1 概述
6.3.2 JNI的架構
6.3.3 JNI的實現方式
6.4 Boot Loader
6.4.1 概述
6.4.2 Boot Loader 的操作模式
6.4.3 啟動過程
6.5 busybox的使用
第7章 Android驅動程序設計
7.1 Android驅動概述
7.2 Android NDK編程
7.3 Android系統中的HAL層
7.3.1 HAL_legacy和HAL對比
7.3.2 HAL module 架構分析
7.3.3 HAL實現流程
7.4 Android系統Camera與WiFi實現
7.4.1 Android中的Camera實現
7.4.2 Android系統WiFi實現
第8章 Android底層開發實例講解
8.1 底層開發相關技術概覽
8.2 實例講解-基于Zynq的Android移植
8.2.1 主機開發環境的搭建
8.2.2 Linux內核的編譯
8.2.3 Android文件系統的編譯
8.2.4 SD卡的準備以及Android系統的啟動
8.3 移植講解-基于pcDuino的Android移植
8.3.1 pcDuino介紹
8.3.2 環境搭建
8.3.3 編譯內核
8.3.4 編譯Android
8.3.5 燒錄鏡像
8.4 Android LED驅動設計
8.4.1 硬件原理
8.4.2 Linux驅動設計
8.4.3 Android HAL層驅動
8.4.4 硬件服務層
8.4.5 App應用編寫
8.5 進階講解-針對Android系統的內核跟蹤與測試
8.5.1 使用平臺簡介
8.5.2 測試環境的建立
8.5.3 測試工具
8.5.4 Android內核調試與性能測試