標籤:
第一章 介紹Android驅動開發和移植技術
主要對android和linux做了總體的介紹,讓我們有了個感性的認識。
一、Android的四層系統架構:
a) Linux核心:Android是基於Linux核心的,所以它和linux的其他部分差異非常小,包括Linux的驅動以及記憶體管理,進程管理,帶電源管理等程式。
b) C/C++的程式碼程式庫:C/C++編寫的程式碼程式庫,也就是Linux下的.so檔案以及dalvik虛擬機器的運行時哦!
c) Android SDK API:用java語言編寫的各種Library,而這些library是基於虛擬機器格式的呢!
d) 應用程式:是使用者(程式員和非程式員)所接觸到的。
二、Android系統移植的主要工作:應用移植和系統移植。應用程式是將應用程式層的程式移植到某一個特定硬體平台上;系統移植是讓Android作業系統在某一個特定硬體平台上運行。
三、查看Linux核心版本:Linux核心版本包括三個:linux2.4、linux2.6、linux3.x;查看方法有兩個:1.在linux終端下執行uname -a命令;2.在linux終端下執行cat /proc/version命令。
四、版本號碼定義的原則:主要包括主要版本號、次版本號碼、修訂版本號碼、微調版本號碼、為特定的linux系統特別調校的描述。
五、學習驅動開發:我們需要搭建一個真正的linux作業系統環境,初學者呢最好還是使用Ubuntu linux的系統。
六、Linux裝置驅動:是直接和硬體互動的一類程式哦,負責對硬體進行抽象的呢,有字元裝置、網路裝置、塊裝置。
七、小實驗:利用驅動控制開發板上的3個LED燈,實現了對裝置驅動的控制。
第二章 搭建Android開發環境
本章主要介紹了Ubutn linux下android開發環境的配置,具體如下:
一、Android底層開發需要的工具:JDK6或以上版本、Eclipse3.4或以上版本、ADT、CDT、Android SDK、Android NDK、交叉編譯環境、linux核心原始碼、Android原始碼、調試串口的開發板工具minicom。
二、安裝JDK:下載壓縮包、解壓、用gedit /etc/profile設定PATH環境變數,設定完成之後儲存profile檔案後,在終端輸入source /etc/profile可重新裝載profile,可以利用echo $PATH查看環境變數。
三、搭建Android應用程式開發環境:安裝Android SDK、安裝Eclipse、安裝ADT、配置ADT、建立AVD。
四、安裝Android NDK開發環境:下載Android NDK、安裝CDT、命令方式編譯Android NDK程式、匯入Android NDK的例子、配置Android NDK的整合式開發環境。
五、安裝交叉編譯環境:X86架構的cpu採用的是複雜指令集運算機,可以直接下載整合好的交叉編譯環境,也可以自己製作交叉編譯環境。CodeSourcery交叉編譯環境就是下載好的交叉編譯好的環境,可以直接下載安裝使用,安裝時使用sh package.bin命令,也可以使用虛擬環境中的交叉編譯環境,Windows和Mac OSX跟linux的交叉編譯環境也是大同小異。
第三章 Git使用入門
一、核心的很多代碼以及很多項目(eclipse、android等)都使用了linux之父linus編寫的git級逆行代碼管理,linus獨特的設計讓git擁有非凡的效能和最為最佳化的儲存能力。安裝Git:1)Ubuntu linux10.10或更新的版本可以使用下面的命令安裝Git:apt-get install git;apt-get install git-doc git-svn git-email git-gui gitk;2)Ubuntu 10.04或更低的版本可以用下面的命令:apt-get install git-core;apt-get install git-doc git-svn git-email git-gui gitk;3)RHEL、Fedora、centOS使用者可以使用以下命令安裝:yum install git;yum install git-doc git-svn git-email git-gui gitk。
二、查看Git文檔:通常使用man命令直接查看協助文檔需要命令:man git-checkout;以文本形式查看需要命令:git help <sub-command>;查看checkout命令的文檔需要命令:git help git-checkout;查看HTML格式的檔案需要命令:git help -w git-checkout。
三、原始碼的提交和擷取:任何版本管理軟體都有版本庫,不同的是要對版本庫的管理方式,所以必須建立版本庫:git init;需要將檔案提交到本地版本庫:git commit;建立本地分支:git branch,也可以使用git branch new-branch建立新分支;切換本地分支:git checkout;在GitHub上建立新的開源項目;上傳原始碼到GitHub:git push;從GitHub下載原始碼:git clone,可以使用如下命令下載整個工程:git clone [email protected]:androidguy/helloword.git。
第四章 原始碼的下載和編譯
一、下載、編譯和測試原始碼,安卓原始碼有很多呢,比如:應用程式(QQ、、簡訊、電話、日曆等)的原始碼和SDK外掛程式(adb、aapt等)的原始碼、還有NDK的原始碼等等。
操作步驟為:1.首先需要配置android原始碼下載環境:(1)建立一個用於存放下載指令檔(repo)的目錄(可將該指令檔放到任何目錄中,使用~/bin);(2)下載repo指令碼(用於下載原始碼);(3)建立用於存放android原始碼的目錄(可放在其他目錄中);(4)初始化;(5)開始下載android原始碼;在下載代碼的時候git會儘可能的佔用寬頻網速,所以會做不了其他的事情,如果要備份原始碼,則不能刪除android程式碼程式庫(.git目錄);2.android原始碼目錄結構解析,在這兒需要建立儲存原始碼的目錄;3.下載android原始碼中的一部分需要我們瞭解原始碼的目錄結構,這樣就不需要等待很長時間下載android原始碼的目錄,有兩個方法:使用reop sync命令;使用git clone命令;4.編譯android原始碼時需要調用android.mk檔案來編譯當前工程:(1)初始化編譯環境;(2)選擇目標;(3)編譯android原始碼;5.out目錄結構分析;6.將自己的APK作為內建程式發布,這兒將會產生自己的apk程式嵌入到system.img檔案中,刪除apk程式需要獲得root許可權並直接刪除apk檔案;7.用模擬器測試system.img檔案,這兒會重建system.img檔案。
二、下載和編譯linux核心原始碼:下載linux核心原始碼;這裡下載的android代碼並沒有包含linux核心原始碼,需要單獨下載,這兒有下載核心原始碼的步驟:git clone http://android.googlesource.com.kernel/common.git,執行這個命令可以下載到最新的核心原始碼,查看當前的遠程版本用git branch -a ,使用git checkout -b android-3.0 remotes/origin/android-3.0到處android3.0的核心;linux核心原始碼的目錄結構;安裝android核心的編譯環境:準備工作;解壓編譯器;驗證交叉編譯器是否安裝成功;安裝libncurses5;配置和編譯linux核心。現在已經成功的搭建了交叉編譯環境,可以盡情使用吧!
Android深度探索(卷1)HAL與驅動開發