Androoid深度探索HAL與驅動開發

 第一章:   linux

     隨着android原生代碼的開放性,出於好奇的每一位學員都想着開發屬於本身的嵌入式系統。所以隨着智能時代的到來,android已經成爲當前智能手機操做系統的老大,市場佔有率遙遙領先於ios操做系統。android

     Android 優秀的嵌入式操做系統通過多年的發展已經很是的完善,包括linux內核,才c/c++代碼庫,Java sdk api,應用程序四層。不一樣版本的Android是基於不一樣的Linux內核上,因此不一樣Android版本的驅動可能並不通用。Android sdk api 是用Java語言編寫的也能夠成爲Java api 層。Java編寫的各類library 是基於dalvik虛擬機格式的。應用程序是安卓用戶都要接觸到的。包括拍照 電話 短信 瀏覽器 以及遊戲。而這一層要依靠第三層來完成各類功能。ios

     移植分爲應用移植和系統移植。前者應用程序移植到某一個特定硬件平臺。後者android 操做系統在某一特定硬件平臺上運行。嵌入式是基於軟硬件共同做用的一個方向。c++

     學習linux驅動編程必定要了解linux驅動只與Linux內核有關,無論哪一個Linux系統,只要使用了一樣的Linux內核 ,驅動就能通用。這是嵌入式開發的一個基礎階段,同時也瞭解到整個Linux開發的一個 佈局。git

 第二章編程

     搭建Android底層開發環境,主要包括Android應用程序開發環境,Android ndk 開發環境和交叉編譯環境搭建。這些都是Android移植及Linux驅動開發的基礎,沒有環境的搭建就沒有開發。Jdk6或以上版本;eclipse3.4或以上版本;adt cdt  android sdk; android ndk; 交叉編譯環境;Linux內核源代碼;Android源代碼;用於調試開發板的串口工具。api

     搭建android 應用程序開發環境,安裝Android sdk ;安裝eclipse;安裝adt;配置adt;創建avd;瀏覽器

     下載Android ndk 在安裝目錄中有一個ndk-build腳本文件,該腳本文件用於編譯ndk 程序。爲了方便,能夠將android ndk 安裝目錄添加到path環境變量中。修改path環境變量的值。安裝交叉編譯環境 x86架構的cpu採用的是指令集計算機,而arm架構的cpu是用的是精簡指令集。因爲這倆種架構的cpu是用不一樣的指令集,所以在架構開發可運行在arm架構上的程序就必需要使用價差編譯器。一般交叉編譯器和相關工具包含了不少可執行文件以及大量的共享幾頭文件等資源,這些資源的集合稱爲交叉編譯環境。架構

     介紹了 linux環境下的Android開發環境的配置。底層環境的開發爲Android開發和內核的移植作了不少基礎的工做。一切工做都必須是在環境的基礎上發展起來的。eclipse

第三章

     Linux與其餘系統最大的區別就是開源。資深的Linux用戶就是在開源軟件的陪伴下長大的。Linux下的軟件大多數不直接以二進制的安裝包提供,而是直接提供源代碼,而後再編譯安裝。至於源代碼管理使用了Linus編寫的git進行源代碼管理。

     註釋:本書執行的linux命令都是在root用戶下完成的。若是用其餘用戶登陸必須使用root權限執行的命令在前面加sudo。這個須要用戶輸入密碼若是密碼正確就會切換到root權限來執行這些命令。在沒有設置密碼的狀況下,使用sudo passwd root 命令設置root密碼 而後使用root用戶來執行本書中Linux命令。

     源代碼的提交與獲取 建立版本庫:git init版本庫因版本管理軟件的不一樣而不一樣,都有本身對版本哭的管理方式。Git版本庫也有本身的管理軟件和本身的管理方式。將文件提交到本地版本庫:git commit .建立本地分支:git branch 源代碼可能由多人共同完成,參與開發的人員爲每一處的修改創建一個分支,這樣在修改後提交不會影響主分支。Github上建立開源項目,從這下載源代碼 get clone.  Git 的基本用法爲之後的移植於應用起了很大的做用 。

第四章

     Git 的使用方法下載源代碼。倆套源代碼纔是重點學習。Android源代碼,Linux內核源代碼。下載 編譯和測試Android源代碼,源代碼中包含了不少東西多種應用程序的暈源代碼,sdk各類工具的源代碼以及ndk的源代碼,hal的源代碼。

     首先Android源代碼的下載環境 第一步: 建立一個用於存放下載腳本文件的目錄 第二步:下載repo腳本文件。 第三步:建立用於存放Android 源代碼的目錄 第四步:初始化。 第五步:開始下載Android源代碼。下載Android代碼的倆種方法 使用repo sync命令  使用git clone命令。

    編譯Android源代碼的每一個工程都有AndroidMk文件,過程當中會遞歸調用每個工程目錄中的Android.Mk來編譯當前工程。初始化編譯環境 選擇目標 編譯Android源代碼。與Android源代碼同樣Linux內核源代碼也是同樣的方法。

    Android移植主要是Linux內核的移植。Linux內核的移植主要是Linux驅動的移植。在開發和測試的過程當中Linux驅動的移植 顯得格外重要。其實前四章就是在爲Android移植作一系列的準備工做。包括簡單敘述 環境搭建 git 入門 源代碼的下載和編譯。這些都是最簡單基本的前期的工做,要想完成後邊的一些列的複雜過程 打下堅實的基礎。

相關文章
相關標籤/搜索