標籤:
第一章:Android系統移植與驅動開發概述
這一章是學習Linux驅動的第一道門,在這一章中,主要對Android以及Linux驅動做一個總體的介紹,在這一章中,我對開發Linux驅動有了一個更深的認識。Android系統構層一共有4層內容:Linux核心、C/C++程式碼程式庫、Android SDK API、應用程式。這一章中學會了Android系統移植,Android移植分為2個部分,一個是應用移植,一個是系統移植。Android系統移植是指讓Android作業系統在某一個特定硬體平台上運行。本章中介紹了查詢Linux系統的核心版本的方法,終端下執行uname -a或cat /proc/version兩種方法。如果要學好Linux驅動必須掌握的一個技術就是GNU C,這個技術是對標準 C的擴充。在本章中還介紹了Linux裝置驅動,電腦系統的硬體主要是由CPU、儲存空間和外設組成。
這一章中第7小節中學習了Linux驅動的一個小執行個體:LED驅動。通過這個執行個體我知道了任何一個Linux驅動都有一個裝載函數和卸載函數即可。裝載函數和卸載函數分別通過module-init和module-exit宏指定。其實,學習Android驅動開發,實際上就是學習Linux驅動開發,只不過不一樣的是Android增加了一個HAL,這個是Android特有的。HAL的作用是將作業系統的其餘部分表示為抽象的硬體裝置,特別是去除了真正硬體所富含的瑕疵和特質。
第二章:搭建Android開發環境
這一章主要介紹了如何搭建Android底層開發的環境,主要包括Android應用程式開發環境、Android NDK開發環境和交叉編譯環境的搭建。
首先是安裝JDK,直接下載JDK的壓縮包,並將其解壓縮,然後在Linux終端輸入#gedit /etc/profile開啟profile檔案來設定PATH環境變數,開啟profile檔案後,在檔案的最後輸入export PATH=.:/developer/jdk6/bin$PATH。然後是搭建Android應用程式開發環境,先是安裝Android SDK,然後是安裝Eclipse, 安裝ADT(ADT是用於開發Android應用程式的Eclipse外掛程式),ADT安裝後還需要對ADT進行配置,配置ADT以便讓ADT能找到Android SDK,最後是建立AVD。
安裝Android NDK開發環境的步驟:下載Android NDK,安裝CDT(CDT是Eclipse中用於開發C/C++程式的外掛程式),命令列方式編譯Android NDK程式,倒入Android NDK的例子,配置Android NDK的整合式開發環境。
安裝交叉編譯環境,通常交叉編譯器和相關工具包含了很多可執行檔以及大量的共用庫及標頭檔等資源,這些資源的集合稱為交叉編譯環境。
這一章主要介紹了Ubuntu Linux環境下的Android開發環境的配置,Windows和Mac OS X系統下的配置過程與Linux環境下類似,我們都可以參考著配置Windows或者Mac OS X系統下的Android開發環境。
第三章:Git使用入門
Git是一款免費、開源的分布式版本控制系統,用于敏捷高效地處理任何或小或大的項目。Git是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理。Git 是 Linus Torvalds 為了協助管理 Linux 核心開發而開發的一個開放源碼的版本控制軟體。Git 是用於 Linux核心開發的版本控制工具。與常用的版本控制工具 CVS, Subversion 等不同,它採用了分布式版本庫的方式,不必伺服器端軟體支援(wingeddevil註:這得分是用什麼樣的服務端,使用http協議或者git協議等不太一樣。並且在push和pull的時候和伺服器端還是有互動的。),使原始碼的發布和交流極其方便。 Git 的速度很快,這對於諸如 Linux kernel 這樣的大項目來說自然很重要。 Git 最為出色的是它的合并跟蹤(merge tracing)能力。
安裝Git的命令:# apt-get install git和# apt-get install git-doc git-svn git-email git-gui gitk。
這一章中用一個完整的例子示範了如何建立版本庫、提交原始碼、建立分支、向遠程伺服器上傳原始碼,從遠程伺服器擷取原始碼等技術。建立版本庫:git init;將文本提交到本地版本庫:git commit;建立本地分支:git branch;切換本地分支:git checkout;在GitHub上建立開源項目;上傳原始碼到GitHub:git push;從GitHub下載原始碼:git clone。
這一章主要是介紹了Git的基本用法,Git是我們學習過程中必不可少的工具。
第四章:原始碼的下載和編譯
Android原始碼包含了很多東西,有內嵌在Android系統中的應用程式的原始碼;Android SDK帶的各種工具的原始碼;Android NDK的原始碼;還有HAL原始碼。
配置Android原始碼的下載環境:1.建立一個用於存放下載指令檔的目錄。2.下載repo指令檔(用於下載Android原始碼)。3.建立用於存放Android原始碼的目錄。4.初始化。5.開始下載Android原始碼。
編譯Android原始碼:1.初始化編譯環境(終端執行命令:# source build/envsetup.sh或#. build/envsetup.sh);2.選擇目標;3.編譯Android原始碼(執行命令:# make)。
out目錄是存放編譯Android原始碼聲稱的目標檔案的預設目錄。out目錄中只有2個直接子目錄:host和target。
交叉編譯器是指在A架構的CPU上編譯在B架構CPU上啟動並執行程式。安裝交叉編譯器的步驟:1.準備工作;2.解壓編譯器;3.驗證交叉編譯器是否安裝成功;4.安裝libncurses(安裝主要市委了配置核心)。
Android移植主要就是Linux核心的移植,而Linux核心移植主要是Linux驅動的移植,所以為了開發與測試Linux驅動需要在Ubuntu Linux下搭建兩套開發環境:Android應用程式開發環境和Linux核心開發環境。
本章中學會了如何搭建上述的兩個開發環境。
http://www.cnblogs.com/wang1312/
Android深度探索(卷1)HAL與驅動開發1-4章