android BSP與硬體相關子系統讀書筆記(1)android BSP移植綜述

來源:互聯網
上載者:User

標籤:情況   ieee   處理   參考   網路   標準庫   條碼識別   too   strong   

從linux驅動轉行至Android驅動開發大半年了,一開始就產生了一個很糾結目標和問題,就是不停的google如何porting android!這個問題得到的結果對於初出茅廬的我,感到迷惘。隨著工作的需要,自己的經驗也就慢慢的增加,這些迷霧也慢慢解開,這裡要多謝我自己的努力和老大高工的精心栽培。

言歸正傳,將android移植到特定硬體平台上,其核心是bsp的搭建工作,bsp是板級支援包,並不是特定某個檔案,而是從功能上理解的一種硬體適配軟體包,它的核心就是: 
1. linux核心硬體相關部分(主要是linux device drivers); 
2. android使用者空間的硬體抽象層。(HAL,hardware abstract layer). 
linux驅動程式工作在核心空間,android的HAL工作在使用者空間,有了這兩個部分的結合,就可以讓龐大的android系統運行在特定的硬體平台上。 
在具有了特定的硬體平台之後,為了適應不同版本的android系統,其BSP部分代碼通常需要重寫或者修改,此時裝置驅動程式可以重用,硬體抽象層則需要修改。 
BSP工作和核心應該是原始的硬體底層。例如藍芽耳機,藍芽傳輸檔案,藍芽聊天等程式最終依賴的硬體是藍芽;照相機、攝像機、條碼辨識器等程式都依賴於底層的網路攝影機;自動轉屏,晃動螢幕控制的各種遊戲、都同樣依賴於加速度感應器。 
目前一般的處理器或者硬體平台的BSP(board support package)都是由晶片廠商統一完成的,並且已經趨於成熟。因此開發人員的主要工作不再是構建完整的BSP,而是調試和修改現有的BSP。其實每個晶片廠家都會有一個硬體平台的參考設計,如PMU,EMMC,WIFI,CODEC,CTP等。如果沒有太大的改動,原廠的BSP一般都是可以跑起來的,針對某一塊的硬體變化修改驅動和HAL就可以了,對於新增加的硬體,編寫相關的驅動程式,然後提供給JAVA的本地架構層的介面就可以了。對於一些簡單的裝置驅動,可以不用寫HAL的代碼,實際上很多時候也不用去寫,一種常見的情況是由JNI的部分代碼直接調用驅動程式的裝置節點或者使用sys檔案系統。也可以直接把/sys/的屬性檔案(可以通過cat和echo讀寫)的檔案介面直接提供給java層代碼調用。

android的主要驅動有: 
1. 顯示驅動 display driver:常用於基於linux的幀緩衝frame buffer 驅動程式。 
2. flash記憶體驅動flash memory driver :基於MTD的flash驅動程式。 
3. 照相機驅動camera driver :基於linux的v4l video for linux驅動。 
4. 音頻驅動 audio driver :基於ALSA advanced linux sound architechure驅動。 
5. wifi驅動:基於IEEE801.31標準的驅動程式。 
6. 鍵盤驅動keyboard driver:作為輸入裝置的鍵盤驅動。 
7. 藍牙堆疊 bluetooth diver :基於IEEE801.35.1標準的無限傳輸技術。 
8. binder IPC驅動:android一個特殊的驅動程式,具有單獨的裝置節點,提供處理序間通訊的功能。 
9. power management能源管理:管理電池電量等資訊。 
android**主要的庫**有: 
1. C庫,基於linux系統調用實現的庫,C語言標準庫,也是系統最底層的庫。 
2. 多媒體架構 media framwork 
3. SGL:2D映像引擎 
4. SSL secure socket layer:為資料通訊提供安全支援 
5. open GL:對3D提供支援 
6. 介面管理工具 surface management 
7. SQLite:一種通用的嵌入式資料庫 
8. Webkit:網路瀏覽器的核心 
9. free type位元影像和向量字型的功能 
android主要framework有: 
1. active 活動 
2. boardcast Intent Receiver廣播意圖接收者 
3. content Provider 內容提供者 
4. Intent and Intent filter 意圖和意圖過濾器 
android的application framework是為APP開發提供的API,實際上是一個應用程式架構,有Google規定好的API,JAVA開發人員直接使用。這一層提供的首先包涵UI程式所需要的控制項,如View(視圖控制項),其中要包涵list,grid,text,box,button等,甚至一個嵌入式的web瀏覽器。

android BSP與硬體相關子系統讀書筆記(1)android BSP移植綜述

相關文章

聯繫我們

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