海思hi3751 Android儲存開發指南手冊

一牛論壇發表於2020-01-06

海思Hi3751 android誕生之初主要面向手機業務,而手機上的主要儲存介質一般為 SD,TF 卡,儲存裝置沒有分割槽,所以 Android 自身的儲存管理原本設計成只針對單分割槽儲存方案,對於多分割槽的U 盤,硬碟等,業務上只能訪問第一個分割槽。而在我們的 DPT Android 平臺上,由於支援 SD 卡、SB 等介面,使得儲存方案變得豐富多樣,目前 Android 的原生儲存方案不能滿足應用需求,需要升級以支援多裝置,多分割槽。同時,由於谷歌和廠商對內建SD 卡和外接 SD 卡的不同要求,我們需要支援 2 種 SD 卡的方案。 


1.2 儲存模組概述

儲存的模組結構分層非常清晰,主要有 4 層,如圖 1-1 所示

海思hi3751 Android儲存開發指南手冊


應用層 

主要是客戶的應用程式(apk),在 UI 上顯示當前 SD 卡或 U 盤狀態。 

Framework 層 

StorageManager:它為儲存的 Client 端,MountService 是 Server,他們透過 AIDL 進行程式間通訊。StorageManager 是介面系統的儲存服務,儲存管理器處理與儲存相關的專案,如 OBBs。 

MountService:MountService 透過 NativEDAemonConnector 向 Vold 傳送命令、請求服務,透過 INativeDaemonConnectorcallbacks 接收 Vold 的執行結果。

Vold 

守護程式,主要監聽 kernel 和 MountService 傳送的請求,一方面負責接受核心傳送的關於外部儲存裝置載入和刪除的訊息,另一方面負責執行由 MountService 透過 

DirectVolume 和 PartVolume 表示每一個分割槽資訊,前者是為了相容原生的實現,其中維護了掛載分割槽的資訊,對外提供分割槽的掛載、解除安裝、格式化等功能; 

DirVolume 用於處理多分割槽的情況,當識別到新的分割槽時,建立對應的PartVolume 進行處理;VolumeManager 是核心模組,維護管理裝置資訊,對上提供功能,實現 Vold 的功能 

海思hi3751 Android儲存開發指南手冊







來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69958773/viewspace-2672199/,如需轉載,請註明出處,否則將追究法律責任。

相關文章