HAL(Hardware Abstract Layer)硬件抽象層。主要目的在于將硬件抽象化。硬件抽象化可以隱藏特定平臺(tái)的硬件接口細(xì)節(jié),為上面一層提供固定統(tǒng)一的接口肿孵,使其具有硬件無(wú)關(guān)性。這是從軟件設(shè)計(jì)角度看疏魏。
Android HAL 安卓硬件抽象層停做。android系統(tǒng)采用分層結(jié)構(gòu),HAL層位于kernel和framework層之間大莫,除了軟件設(shè)計(jì)要素外蛉腌,還有一些其它因素。比如版權(quán)/保護(hù)廠(chǎng)家利益因素。
Android基于Linux內(nèi)核實(shí)現(xiàn)烙丛,Linux是GPL許可舅巷,即對(duì)源碼的修改都必須開(kāi)源,而Android是ASL許可河咽,即可以隨意使用源碼钠右,無(wú)需開(kāi)源,因此將原本位于kernel的硬件驅(qū)動(dòng)邏輯轉(zhuǎn)移到Android平臺(tái)來(lái)忘蟹,就可以不必開(kāi)源飒房,從而保護(hù)了廠(chǎng)家的利益。因此Android就提供了一套訪(fǎng)問(wèn)硬件抽象層動(dòng)態(tài)庫(kù)的接口媚值,各廠(chǎng)商在Android的硬件抽象層實(shí)現(xiàn)特定硬件的操作細(xì)節(jié)狠毯,并編譯成so庫(kù),以庫(kù)的形式提供給用戶(hù)使用褥芒。(Android是一個(gè)開(kāi)放的平臺(tái)嚼松,并不是一個(gè)開(kāi)源的平臺(tái)。)
袁輝輝博客:https://zhuanlan.zhihu.com/p/26100298
Android架構(gòu)與未來(lái)? ?http://gityuan.com/2019/03/20/android_future/
Android自學(xué):http://gityuan.com/2016/04/24/how-to-study-android/