最近看了一些Android驅動開發前需要知道的資料,收穫很多,接下來就談談我自己的一些心得體會。 Android在近幾年時間發展迅速,已經成為智能手機操作系統的老大。不過,因為Android原生的代碼支持的設備並不多,所以我們要想在自己的設備上完美地運行Android就需要另外地開發一些程式,從而可 ...
最近看了一些Android驅動開發前需要知道的資料,收穫很多,接下來就談談我自己的一些心得體會。
Android在近幾年時間發展迅速,已經成為智能手機操作系統的老大。不過,因為Android原生的代碼支持的設備並不多,所以我們要想在自己的設備上完美地運行Android就需要另外地開發一些程式,從而可以讓Android識別相應設備的硬體,這個過程就成為Android移植。
Android移植可以分為兩部分:應用移植和系統移植。其中,應用移植是指將Android系統架構的第四層應用程式移植到某一個特定的硬體平臺上(Android系統架構的4層分別是:linux內核、c/c++代碼庫、Android SDK API、應用程式)。系統移植則是指讓Android操作系統在某一個特定硬體平臺上運行。由於Android識別平臺上的各種硬體的工作主要是有linux內核完成的,所以系統移植除了移植CPU架構外,最重要的是移植linux驅動。除此之外,在Android系統中還增加了一個HAL,所以Android移植的主要工作是:移植linux驅動和移植HAL。
要想學習linux驅動編程,首先我們一定要瞭解linux驅動只與linux內核有關,與用戶使用的linux系統無關。簡言之,不管是哪個linux系統,只要使用了相同的linux內核,驅動就可以通用。而對於如何判斷linux內核是否相同的方法就是linux內核的版本號,只要組成內核版本號的五部分(主版本號、次版本號、修訂版本號、微調版本號以及為特定的linux系統特別調校的描述)完全相同,就說明兩個內核相同。
12:48:48
2016-04-16