標籤:
1.1android系統架構
第一層 linux核心:驅動程式以及管理記憶體、進程、電源等資源的程式
第二層 c/c++程式碼程式庫 linux的.so檔案以及嵌入到APK程式中的NDK代碼
第三層 android SDK API直接面嚮應用程式的JAVA APK
第四層 應用程式
1.2Android系統移植的主要工作
系統移植:讓android作業系統在某一個特定平台上運行,條件是 作業系統支援硬體平台的CPU架構、移植linux驅動、移植HAL(HAL位於第二層,android SDK通過HAL直接存取linux驅動),後兩個是android系統移植的主要工作。
應用移植:第四層的應用程式一直到一個特定平台上,由於硬體平台之間有差異,android SDK API有可能存在差異,需要對原始碼進行修改,並不涉及驅動和HAL程式庫
1.3查看核心版本
方法1:在linux終端執行:uname -a
方法2:在終端執行:cat /proc/version
1.4linux核心版本命名規則
1.5如何學習linux驅動
一個用於開發與測試linux驅動的linux作業系統
一塊開發板 測試驅動程式是否能在支援android的開發板上正確運行
學習GUN C GUN C是對標準c的擴充
相關硬體知識並不斷實踐
1.6 linux裝置驅動
將同一類型但不同型號的裝置抽象成統一介面,這個介面就是驅動,驅動直接和硬體互動。
字元裝置,塊裝置,網路裝置
Linux都有一個裝載函數(裝載驅動時調用)mobule_init和一個卸載函數(卸載驅動時調用)mobule_exit
Linux驅動只與linux核心有關,與linux系統無關。只有核心版本號碼可以判斷linux核心是否相同。學習android驅動開發本質上就是學習linux驅動開發,android比linux增加了一個HAL,不過HAL也不是必須的,通過NDK也可以直接存取linux驅動。
Android系統移植與驅動開發概述