打通Android的任督二脈,幫助Android開發者了解Android各種底層的子系統和如何移植各種Android開發板,並學習最夯的NFC(近距離通訊)系統
用結構圖描述NFC、聲音、相機…等每一個相關子系統的結構,並區分BSP部分和公用部分。
徹底解說Android各種底層的子系統的總體結構和BSP結構,以及實作要點。
選用多個Google Nexus系列兼具流行性與代表性的硬體平台,對比其中不同的實作和相同的理念。
比較Android 2.3和Android 4.x的實作,展示硬體相關部分的升級。
對龐大的系統去掉枝節,展示Android一些原始的核心設計思路。
Android在硬體方面的開發一直是開發的難點,凡是一個完整Android裝置的開發者,無論處於產業鏈的哪一個階段,都不可避免地要處理與硬體相關的問題。我們可以將Android系統視為一個功能完整的機器人。其中與硬體相關的BSP(Board Support Package)部分,則是這個機器人的根基和經脈,雖然佔的比重不大,卻是系統的關鍵所在。
本書可幫助開發者了解如何移植各種Android開發板,並提供切實有效的幫助。透過對每一個子系統的學習,您可以了解現有Android系統的結構,並學會Android系統的設計思路,即使您想要在系統中增加一個新的非標準硬體,也不再是一件難事。
作者簡介:
韓超
中國大陸地區Linux和行動裝置領域的資深工程師、架構師。長期從事一線開發工作,兼具開發實戰經驗和完備的教育思維模式。韓超是中國大陸地區較早開發Android系統的人員,曾從事系統框架、蕊片移植適配和行動產品等開發領域;也曾經引領各種技術人員進入Android領域,並組織參與技術交流。
目錄
第1章 Android的BSP和子系統開發
說明Android系統,如何基於Android的開放原始碼,加入針對特定硬體的BSP部分,由此來建構各種系統,並可以運行在任何支援的硬體平台上。
第2章 Android系統BSP移植工作
說明Android BSP移植工作的目的,包含如何讓Android系統能啟動基本Linux系統(CPU、內部記憶體、定時器)及序列埠、RAM等基本裝置。
第3章 Android的Linux核心和驅動程式
Android系統的Linux核心與硬體平台相關,每個硬體平台具有各自獨立的程式碼儲存庫。每個程式碼儲存庫的Linux核心主要不同的地方是目標板移植和驅動程式部分,並且會隨著Linux核心的版本升級。本章將以Goldfish平台、高通MSM平台、三星平台、德州儀器OMAP平台為例做核心和驅動程式的介紹。
第4章 顯示系統
顯示系統是系統與使用者交互介面部分最基本的功能,其功能是將矩陣形式圖形資料顯示到使用者可見螢幕上。本章將協助使用者熟悉Android的顯示子系統結構、顯示BSP的結構,以及顯示BSP的實作。
第5章 使用者輸入系統
Android的使用者輸入系統的職責是取得使用者行為,主要功能是取得使用者使用輸入裝置進行操作的資訊,並將其交由系統的相關部分進行處理。本章將協助使用者熟悉輸入系統BSP的結構和實作。
第6章 傳感器系統
Android的傳感器系統是系統取得資訊的手段,從各種不同類型的傳感器硬體中取得,並交由Android系統的相關部分進行處理。本章將協助使用者熟悉傳感器子系統的結構以及傳感器BSP的結構和實作。
第7章 聲音系統
Android的聲音系統提供聲音系統對聲音硬體的裝置進行操作,其主要功能是聲音資料的輸入/輸出和控制功能。本章將協助使用者熟悉聲音子系統的結構以及聲音BSP的結構和實作。
第8章 影像疊加輸出系統
Android的影像疊加輸出系統提供影像畫面資料的輸出功能,並利用特殊的影像輸出裝置將影像資料數據單獨進行輸出。本章將協助使用者熟悉影像輸出子系統的結構以及影像疊加輸出BSP結構和實作。
第9章 相機系統
Android的相機系統提供照相機相關的功能。相機系統的硬體裝置就是鏡頭硬體,為系統提供影片畫面的輸入和拍攝照片的功能。本章將協助使用者相機子系統的結構以及相機BSP結構和實作。
第10章 OpenGL 3D引擎
OpenGL(Open Graphics Library)是一個標準化的圖形渲染(Render)引擎,在Android中使用標準的OpenGL介面作為3D部分的介面。本章將會介紹OpenGL系統的結構以及OpenGL BSP的結構和在各硬體平台上的實作。
第11章 OpenMax引擎
OpenMax是一個多媒體應用程式的框架標準。其中,OpenMax IL(集成層)技術規格定義了媒體元件介面,以便在嵌入式元件的串流媒體框架中快速集成加速編解碼器。本章將會針對OpenMax引擎的子系統結構,以及OpenMax BSP的結構和實作做介紹。
第12章 位元複製
本章主要介紹位元複製。位元複製(copybit)是Android中一個提供了可以加速記憶體圖形處理的加速模組。主要包括區塊複製和圖像拉伸兩部分功能。根據其參數的不同,也可以實作旋轉、透明度混疊、顏色格式轉換等方面的功能。
第13章 無線網路系統
WiFi(Wireless Fidelity)使用了IEEE的802.11協定的技術,目前在智慧手機中使用WiFi已經成為智慧手機的核心功能之一。本章將會針對無線網路系統的子系統結構,以及BSP結構和實作提出說明。
第14章 藍牙系統
在Android中,藍牙系統的底層硬體是藍牙硬體,通常可以使用UART、SDIO或USB介面作為連接。本章將會針對藍牙子系統的結構,以及BSP的結構和實作提出說明。
第15章 定位系統
Android的定位系統具有完整架構,並採用不同的手段來定位。GPS(基於全球定位系統)屬於衛星導航系統,需要特定的硬體接收來自衛星的資料,Android的定位系統主要使用GPS裝置。AGPS的含義為Assisted GPS(輔助GPS),可以透過行動電話、IP網路等手段實現定位。本章將會針對定位子系統的結構,以及BSP的結構和實作提出說明。
第16章 電話系統
Android系統主要是作為智慧型手機的作業系統來使用,因此電話部分是Android的核心子系統之一。Android的電話系統圍繞底層使用的Modem硬體來搭建。Android主要提供呼叫(Calling)、簡訊(SMS)等業務,此外透過電話系統還可以實現資料連接(Data Connection),實現網路功能。本章將會針對電話子系統的結構,以及BSP的結構和實作提出說明。
第17章 警報器 — 即時時鐘系統
Android的警報器(Alarm)系統提供了警報和時間設定方面的支援,其實作的硬體基礎通常是即時時鐘(RTC)。在Linux核心程式碼中,需要有即時時鐘裝置驅動程式和Android的Alarm驅動程式。本章將會針對警報器 — 即時時鐘子系統的結構,以及BSP部分的結構和部分的實作提出說明。
第18章 光系統
背光和指示燈系統部分在Android中歸為光系統統一實作。 Android的光系統負責控制系統中的各個光源,例如螢幕背光、鍵盤按鍵光、電池光等。光系統基本上是一個用於輸出控制的系統。本章將會針對背光和指示燈子系統的結構,以及BSP部分的結構和部分的實作提出說明。
第19章 震動器系統
震動器負責控制電話來電時的振動功能,Android中的震動器系統是一個專提供這方面功能的小系統,提供根據時間振動的功能。本章將會針對震動器子系統的結構,以及振動器BSP部分的結構和部分的實作提出說明。
第20章 電池訊息部分
Android系統考慮了多種供電方式,包括AC、USB、Battery等。在應用程式層次,通常包括了電池狀態顯示的功能。因此,從Android系統的軟體方面(包括驅動程式和使用者空間內容),需要在一定程度上獲得電池的狀態。在Android系統中,電池系統主要負責電池訊息統計方面的功能。本章將會針對電池訊息子系統的結構,以及電池訊息的BSP部分的結構和部分的實作提出說明。
第21章 Android 4.x的聲音、影像系統
Android 4.x的聲音系統、相機系統在硬體抽象層之下皆產生了一些變化,由原本固定鏈接的動態函式庫,變成了Android中固定的硬體模組,本章將會針對Android 4.x的聲音系統、相機系統、影像組合的結構以及這些系統的BSP實作提出說明。
第22章 Android 4.x近距離通訊系統(NFC)
近距離通訊(NFC,Near Field Communication)也稱為近距離無線通訊,是一種短距離的高頻無線通訊技術,允許電子裝置之間進行非接觸式點對點資料傳輸,在10cm內交換資料。而這也是目前蠻夯的議題之一,可惜目前市面上的Android書籍中鮮少對這個部份有所說明,希望這章所提供的內容,能幫助讀者更進一步的了解NFC。
第23章 Android 4.2的電源控制
電源控制是Android 4.2增加的一個輔助功能的模組,可以對電源控制進行一部分干涉和控制。本章將會針對電源控制的結構以及電源控制BSP的結構和實作提出說明。
第24章 系統時間
系統時間是Android 4.2新增的一個輔助功能的硬體抽象層模組,用於得到系統的時間和頻率。本章將會針對系統時間的結構以及系統時間的BSP的結構和實作提出說明。
第25章 Android 4.2金鑰
金鑰是Android 4.2新增的一個硬體抽象層模組,用於支援Android安全系統的運行。金鑰部分本身包括了產生金鑰對(公鑰和私鑰)、使用金鑰簽名資料、使用金鑰驗證資料等功能。本章將會針對安全和金鑰子系統的結構以及金鑰的BSP部分的結構和實作提出說明。
第26章 電源管理
Android的電源管理結合了Linux核心和使用者空間控制。主要包括了核心中的核心機制和使用者空間規則方面的控制。本章將會幫助讀者了解Android在核心空間以及使用者空間的電源管理以及電源管理的相關規則。
第27章 還原和升級
還原(Recovery)和升級(Update)是系統改變自身軟體的手段:還原通常是指將系統的軟體還原到某個出廠的版本;升級是指將系統的軟體改變成某個比較新的版本,其中可能包括增量的升級。Android系統的還原和升級在軟體上使用了相似的結構和流程,並且在實作上統稱為Recovery。而這將會是本章介紹的重點。
第1章 Android的BSP和子系統開發
說明Android系統,如何基於Android的開放原始碼,加入針對特定硬體的BSP部分,由此來建構各種系統,並可以運行在任何支援的硬體平台上。
第2章 Android系統BSP移植工作
說明Android BSP移植工作的目的,包含如何讓Android系統能啟動基本Linux系統(CPU、內部記憶體、定時器)及序列埠、RAM等基本裝置。
第3章 Android的Linux核心和驅動程式
Android系統的Linux核心與硬體平台相關,每個硬體平台具有各自獨立的程式碼儲存庫。每個程式碼儲存庫的Linux核心主要不同的地方是目標板移植和驅動程式部分...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。