Android系统移植与驱动开发概述
1.Android系統(tǒng)架構(gòu)分為四層:linux內(nèi)核,Android是基于linux內(nèi)核的。
c/c++代碼庫(kù),包括C/C++編寫(xiě)的代碼庫(kù),包括dalivk虛擬機(jī)的運(yùn)行時(shí)。
Android SDK API,這一層實(shí)際是JAVA編寫(xiě)的各種library。
應(yīng)用程序,這一層相當(dāng)于Android的UI,通過(guò)第三層中的Android SDK API來(lái)完成各種功能。
2.Android移植分為應(yīng)用移植和系統(tǒng)移植。應(yīng)用移植是將第四層的應(yīng)用程序移植到某一個(gè)硬件平臺(tái)上。系統(tǒng)移植則是指讓Android操作系統(tǒng)在某一個(gè)特定硬件平臺(tái)上運(yùn)行,是一個(gè)操作系統(tǒng)在特定硬件平臺(tái)上運(yùn)行的一個(gè)首要條件就是該操作系統(tǒng)支持硬件平臺(tái)的CPU架構(gòu)
3.HAL表示硬件抽象層,是普通的linux程序庫(kù)(.so文件),Android SDK通過(guò)HAL直接訪問(wèn)linux驅(qū)動(dòng)。對(duì)有些來(lái)說(shuō)它并不是必需的,通過(guò)NDK可直接訪問(wèn)Linux驅(qū)動(dòng)。
4.安卓移植的主要工作:移植linux驅(qū)動(dòng),移植HAL。很大程度上是內(nèi)核的移植,linux內(nèi)核移植主要就是移植驅(qū)動(dòng)程序。判斷Linux內(nèi)核是否相同的方法是Linux的內(nèi)核版本號(hào),內(nèi)核相同,驅(qū)動(dòng)可通用。
5.計(jì)算機(jī)系統(tǒng)硬件由CPU,存儲(chǔ)器,外設(shè)組成,將存儲(chǔ)器和外設(shè)分為三大類:字符設(shè)備,塊設(shè)備,網(wǎng)絡(luò)設(shè)備。
6.Linux驅(qū)動(dòng)核心代碼用C語(yǔ)言實(shí)現(xiàn),控制開(kāi)發(fā)板上的四個(gè)LED燈。
Linux驅(qū)動(dòng)都有一個(gè)裝載函數(shù)(用來(lái)裝載驅(qū)動(dòng))和一個(gè)卸載函數(shù)(用來(lái)卸載函數(shù))。
7.驅(qū)動(dòng)是直接和硬件和交互的一類程序。
8.查看linux系統(tǒng)的內(nèi)核版本的兩種方法:
(1)執(zhí)行下列命令 uname ??-a
(2)linux終端執(zhí)行以下命令 cat ?/proc/version
/proc不是普通的文件系統(tǒng),而是系統(tǒng)內(nèi)核的映像,也就是說(shuō),該目錄中的文件是存放在系統(tǒng)內(nèi)存之中的,以文件系統(tǒng)的方式訪問(wèn)系統(tǒng)內(nèi)核數(shù)據(jù)的操作提供接口。
9.linux內(nèi)核版本號(hào)有主版本號(hào),次版本號(hào),修訂版本號(hào),微調(diào)版本號(hào),為特定的linux系統(tǒng)特別調(diào)校的描述組成
本章對(duì)android以及linux做了總體的介紹,剛開(kāi)始,自己確實(shí)不明白什么是Linux驅(qū)動(dòng),接觸的比較少,對(duì)核心代碼自己并寫(xiě)不出來(lái),感覺(jué)十分困惑,但還是認(rèn)真的看了,學(xué)習(xí)android驅(qū)動(dòng)開(kāi)發(fā),實(shí)際上就是學(xué)習(xí)linux驅(qū)動(dòng)開(kāi)發(fā),android增加了一個(gè)HAL。
轉(zhuǎn)載于:https://www.cnblogs.com/yqing/p/5438449.html
總結(jié)
以上是生活随笔為你收集整理的Android系统移植与驱动开发概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 企业网站怎么建设
- 下一篇: [Android1.5]打开多个Acti