Android6.0&9.0 Wifi

在介紹Android9.0中wifi的架構之前,先介紹一下Android Treble項目。

Android系統架構

Android System

1.應用框架。 應用框架最常被應用開發者使用。作爲硬件開發者,您應該非常瞭解開發者 API,因爲很多此類 API 都可以直接映射到底層 HAL 接口,並可提供與實現驅動程序相關的實用信息。
2.Binder IPC。 Binder 進程間通信 (IPC) 機制允許應用框架跨越進程邊界並調用 Android 系統服務代碼,這使得高級框架 API 能與 Android 系統服務進行交互。在應用框架級別,開發者無法看到此類通信的過程,但一切似乎都在“按部就班地運行”。
系統服務。系統服務是專注於特定功能的模塊化組件,例如窗口管理器、搜索服務或通知管理器。 應用框架 API 所提供的功能可與系統服務通信,以訪問底層硬件。Android 包含兩組服務:“系統”(諸如窗口管理器和通知管理器之類的服務)和“媒體”(與播放和錄製媒體相關的服務)。
3.硬件抽象層 (HAL)。 HAL 可定義一個標準接口以供硬件供應商實現,這可讓 Android 忽略較低級別的驅動程序實現。藉助 HAL,您可以順利實現相關功能,而不會影響或更改更高級別的系統。HAL 實現會被封裝成模塊,並會由 Android 系統適時地加載。有關詳情,請參閱硬件抽象層 (HAL) 一文。
4.Linux 內核。 開發設備驅動程序與開發典型的 Linux 設備驅動程序類似。Android 使用的 Linux 內核版本包含幾個特殊的補充功能,例如:Low Memory Killer(一種內存管理系統,可更主動地保留內存)、喚醒鎖定(一種 PowerManager 系統服務)、Binder IPC 驅動程序以及對移動嵌入式平臺來說非常重要的其他功能。這些補充功能主要用於增強系統功能,不會影響驅動程序開發。您可以使用任意版本的內核,只要它支持所需功能(如 Binder 驅動程序)即可。不過,我們建議您使用 Android 內核的最新版本。有關詳情,請參閱編譯內核一文。

HIDL

Android 8.0 重新設計了 Android 操作系統框架(在一個名爲“Treble”的項目中),以便讓製造商能夠以更低的成本更輕鬆、更快速地將設備更新到新版 Android 系統。在這種新架構中,HAL 接口定義語言(HIDL,發音爲“hide-l”)指定了 HAL 和其用戶之間的接口,讓用戶能夠替換 Android 框架(android framework),而無需重新編譯 HAL。

利用新的供應商接口,HIDL 將供應商實現(由芯片製造商編寫的設備專屬底層軟件)與 Android 操作系統框架分離開來。供應商或 SOC 製造商構建一次 HAL,並將其放置在設備的 /vendor 分區中;框架可以在自己的分區中通過無線下載 (OTA) 更新進行替換,而無需重新編譯 HAL。

HIDL

System update

1.舊版android升級
舊版升級方法
舊版Android需要需要同時升級framework、vendor。

2.Android8.0+系統升級
新版升級方法
引入treble之後,只需升級framework。

Wifi 架構

Android9.0 wifi

Wifi 啓動過程分析

1.Android 6.0 Wifi啓動過程
wifi enable old
2.Android 9.0 Wifi啓動過程

wifi enable new

通過Wifi的啓動過程,就能看到在Android8.0之後,wifi的啓動更加的複雜。在系統中添加了與hal層相關的service,供framework層進行調用。主要原理就是爲hal層添加了binder支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章