安卓移植和驅動開發第九章心得體會

來源:互聯網
上載者:User

標籤:

HAL ( Hardware Abstraction Layer,硬體抽象腔,〉是建立在Linux驅動之上的一套翻字型檔。這套程式 j率並不屬於 Linux 核心, 而是屬於 Linux 核心層之上的應用程式層。 Google 為 Android 增加 HAL 的主要目 的除了盡量避免應用程式直接存取 Linux 驅動外,還有一倉重要原因,那就是保護 “私人財產”。-對於 那些既想發布茬子·Android,的Linux驅動程式,又不想將核心商務邏輯公開的企業或個人,這時候HAL顯得非常重要了。

在傳統的 Linux.系統中Linux驅動一般有兩種類型的代碼:訪問硬體寄存器的代碼和商務邏輯有碼。對於訪問硬體寄存器的代碼,並沒有什麼秘密可言,因為這都是調用的 Linux 核心的標準函數〈如 ioad32·iowrite32等)進行的標準操作。比也架構比較簡單,其基本原理就是在Android系統中使用程式庫 Cso檔案) 調用位守核心空間的Linux驅動 〈一般通過裝置檔案訪問)。 然後溝通1droid面用程式{APK檔案〉,也可以通過NDK程式訪問HAL中的程式庫,或者也可以直接在安卓的程式中進行訪問。

編寫支援 HAL 的 Linux 驅動程式的步驟:1. 編寫 Linux 驅動 2.編寫 HAL Library 3.編寫 Service Library 。

在Android.系統中使用 Linux驅動有兩種方式。 一種是通過傳統的方式直接與Limux驅動互動。例如, 直接讀寫裝置檔案的資料。另外→種是 Android特有的,就是通過 HAL模組HAL模組本質就是通過Linux共用庫與Linux驅動互動,然後應用程式再訪問 Linux.共用庫。早期的HAL模組應用程式直接按訪問Linux共字型檔的方式調用。而高版本的Android系統為HAL I曾加了Stub換句話說還就是為每一個 HALi共用庫指定一個id, 再利用這個id 配合一定的規則 找到 Linux共用庫,這樣 Linux 共用庫更換檔案名稱,移動位置都很方便。

http://www.cnblogs.com/suntao123/

安卓移植和驅動開發第九章心得體會

聯繫我們

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