Android系統移植與驅動開發

  21世紀,Android發展很是迅速,在市場上佔有很大的比例,遙遙領先與iOS,很大程度上是由於任何人均可以利用Android的源代碼定製徹底屬於本身的嵌入式開發系統,而不須要向Google交一分錢。架構

  隨着通訊 、電子行業的迅速發展,全世界天天都會有大量的新芯片被產生,大量的新電路板被設計,所以,也會有大量的設備驅動須要開發,這些設備驅動,或運行在簡單的單任務環境中,或運行在VxWorks、Linux、Windows等多任務操做環境中,發揮着不可替代的做用。函數

  針對特定硬件平臺從零構建Android系統,包括平臺移植、應用開發、內核開發以及驅動開發。目前企業對Android人才需求主要分佈在應用開發和底層系統開發兩個方面,當今企業最緊缺的是兼具兩者的全才型系統工程師,和嵌入式Linux人才需求基本類似。驅動程序溝通着硬件和應用軟件,而驅動工程師則溝通着硬件工程師和應用軟件工程師。學習

  Android是基於Linux內核的。因爲Android原生的代碼支持的設備並很少,所以咱們想要在本身的設備上完美運行Android,就須要另外開發一些程序,使得Android能夠識別相應設備中的各類硬件,這個過程被稱爲「移植」。任何的Linux驅動都有一個加載函數和一個卸載函數,它們分別經過module_init和module_exit宏指定。spa

  咱們要知道Android是一個很是優秀的嵌入式操做系統。它有本身完善的系統架構,分爲4層:第1層,Linux內核,Android使用Linux2.6內核;第2層,C/C++代碼庫,主要包括Linux的.so文件以及嵌入到APK程序中的NDK代碼;第3層,因爲Android SDK API是用Java語言編寫的,所以,這一層又能夠叫作Java API層。這一層就是用Java編寫的各類Library;第4層,應用程序,至關於Android的UI。這一層是全部Android用戶須要接觸的。操作系統

  然而,要使一個操做系統在特定硬件平臺上運行的一個首要條件就是該操做系統支持硬件平臺的CPU架構。固然,這仍是不夠的,還須要移植Linux驅動,這些工做主要是由Linux內核完成的,主角是Linux驅動。除此以外,在Android系統中還增長了一個Hardware Abstraction Layer,HAL ,硬件抽象層,不過HAL不是必需的。設計

  操做系統是經過各類驅動程序來駕馭硬件設備的,它爲用戶屏蔽了各類各樣的設備,驅動硬件是操做系統最基本的功能,而且提供統一的操做方式。設備驅動程序是操做系統最基本的組成部分之一,在Linux內核源程序中也佔有60%以上。所以,熟悉驅動程序的編寫很重要。開發

  Android中內核的結構和標準的Linux2.6內核是基本相同的,Android在其基礎上增長了私有內容。Android在Linux內核中增長的主要是一些驅動程序,這些驅動程序主要分爲兩種:Android專用驅動和Android使用的設備驅動。經過本章學習,初步瞭解了驅動程序的概念和Android驅動的開發原理。it

相關文章
相關標籤/搜索