Android系統的移植要做的兩個工作

來源:互聯網
上載者:User

 Android系統的移植的主要目的是為了能在特定的硬體上運行Android系統。而在移植的過程中,一個重要的方面就是把握關鍵要點,減少工作量。從工作的角度,首先要熟悉硬體抽象層的介面,其次要整合和複用已有的驅動程式,主要的工作量在硬體抽象層的實現中。為了更好地理解和調試系統,也應該適當地瞭解上層對硬體抽象層的調用情況。

  移植方面主要的工作有兩個部分:

  Linux驅動

  Android系統硬體抽象層

  Linux中的驅動工作在核心空間,Android系統硬體抽象層工作在使用者空間,有了這兩個部分的結合,就可以讓龐大的Android系統運行在特定的硬體平台上。

  Android移植的主要工作1所示。

  

  圖1 Android移植的主要工作

  在具有了特定的硬體系統之後,通常在Linux中需要實現其驅動程式,這些驅動程式通常是Linux的標準驅動程式,在Android平台和其他Linux平台基本上是相同的。主要的實現方面是Android系統中的硬體抽象層(HardwareAbstract Layer),硬體抽象層對下調用Linux中的驅動程式,對上提供介面,以供Android系統的其他部分(通常為Android本地架構層)調用。

  提示:Android硬體抽象層的介面是本地移植層的介面,不屬於標準API,不具有向前或者向後相容性。

  在Android系統需要移植的內容,主要包含了以下的各個部分:

  顯示部分(Display)

  包括framebuffer驅動+Gralloc模組(可選擇是否實現)

  使用者輸入部分(Input)

  包括Event驅動+EventHub(Android標準內容)

  多媒體編解碼(Codec)

  包括硬體Codec驅動+Codec外掛程式(如OpenMax)

  3D加速器部分(3D Accelerator)

  包括硬體OpenGL驅動+OpenGL外掛程式

  音頻部分(Audio)

  包括Audio驅動+Audio硬體抽象層

  視頻輸出部分(Video Out)

  包括視頻顯示驅動+Overlay硬體抽象層

  網路攝影機部分(Camera)

  包括Camera驅動(通常是v4l2)+Camera硬體抽象層

  電話部分(Phone)

  Modem驅動程式+RIL庫

  全球定位系統部分(GPS)

  包括GPS驅動(通常為串口)+GPS硬體抽象層

  無線區域網路部分(WIFI)

  包括Wlan驅動和協議+WIFI的適配層(Android標準內容)

  藍芽部分(Blue Tooth)

  包括BT驅動和協議+BT的適配層(Android標準內容)

  感應器部分(Sensor)

  包括Sensor驅動+Sensor硬體抽象層

  震動器部分(Vibrator)

  包括Vibrator驅動+Vibrator硬體抽象層(Android標準內容)

  背光部分(Light)

  包括Light驅動+ Light硬體抽象層

  警告器部分(Alarm)

  包括Alarm驅動和RTC系統+使用者空間調用(Android標準內容)

  電池部分(Battery)

  包括電池部分驅動+電池的硬體抽象層(Android標準內容)

Android中具有很多組件,但並不是每一個組件都需要移植,對於一些純軟的組件,就沒有移植的必要。對於一些組件,例如瀏覽器引擎,雖然需要下層網路的支援,但是並非直接為其移植網路介面,而是通過無線區域網路或者電話系統資料連線來完成標準的網路介面。

  Android的移植主要可以分成幾個類型:基本圖形化使用者介面(GUI)部分,包括顯示部分和使用者輸入部分;和硬體相關的加速部分,包括媒體編解碼和OpenGL;音視頻輸入輸出環節,包括音頻,視頻輸出和網路攝影機部分;串連部分,包括無線區域網路,藍芽,GPS;電話部分;附屬組件:包括感應器、背光、震動器等。

  除了以上的移植方面,電源管理也是非常重要的一個方面,它和Android的各個子系統都有關係。

  Android系統主要需要移植組件2所示。

  

  圖2 Android系統主要需要移植組件

  對於大部分子系統,硬體抽象層和驅動程式都需要根據實際系統的情況實現,例如:感應器部分、音頻部分、視頻部分、網路攝影機部分、電話部分。也有一些子系統,硬體抽象層是標準的,只需要實現Linux核心中的驅動程式即可,例如:輸入部分、震動器部分、無線區域網路部分、藍芽部分等。對於有標準的硬體抽象層的系統,有的時候通常也需要做一些配置工作。

  時至今日,隨著Android系統的發展,它已經不僅僅是一個行動裝置的平台,也可以用於消費類電子和智能家電,例如:迷你筆記型電腦、電子書、數字電視、機頂盒、固定電話等。在這些平台上,通常需要實現比行動裝置更少的組件。一般來說,基本使用者介面部分(包括顯示和使用者輸入)是需要移植的,其他部分是可選的。例如:電話系統、震動器、背光、感應器等一般不需要在非行動裝置系統來實現;對於一些固定位置裝置通常也不需要實現GPS系統。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.