隨着當前各類系統百花齊放,競相發展,安卓系統佔市場的份額已遙遙領先於其餘系統,爲使在各類設備上完美運行Android,咱們能夠學習基於Linux的Android驅動開發與移植,本章對Linux和Android作了一個比較系統的介紹,使咱們更全面的瞭解Linux驅動,爲咱們進一步學習打下堅實的基礎。c++
學習Android驅動開發咱們首先要了解Android系統構架,它主要包括:學習
第一層:Linux內核操作系統
主要包括Linux的驅動程序及內存管理、進程管理、電源管理等程序。Android使用Linux2.6做爲其內核。進程
第二層:c/c++代碼庫內存
主要包括c/c++編寫的代碼庫和Dalivk虛擬機的運行時開發
第三層:Android SDK API虛擬機
也稱爲Java API層內存管理
第四層:應用程序基礎
即指Android的UI,全部的Android用戶都要接觸,這一層要依靠Android SDK API來完成各類功能。硬件
其次咱們要清楚Android系統一直的主要工做。Android移植可分爲:應用移植和系統移植。應用移植是將Android系統構架中的應用程序移植到某一特定的硬件平臺。系統移植是指讓Android操做系統在某一特定硬件平臺上運行。其首要條件就是該操做系統支持硬件平臺的CPU構架,並且還必須讓Android識別平臺上的硬件,這主要由Linux內核完成。Android系統中還增長了硬件抽象層HAL,Linux驅動移植和HAL移植就是Android移植的主要工做。
此外,在Android移植與驅動開發時,咱們要了解適用於Android的Linux內核的版本即Linux2.6。本章還介紹了Linux設備驅動的發展與做用,設備的分類與特色等。
最後,本章還經過一個實例用Linux驅動來控制開發板上的LED燈來加深咱們對Linux驅動的認識。
咱們要經過學習CNU 及相關硬件知識,再加上大量實踐和練習,必定能夠學好Linux驅動開發的。