Android深度探索(卷1)HAL與驅動開發

來源:互聯網
上載者:User

標籤:

 第一章 介紹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與驅動開發

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.