ITPub博客

首页 > 嵌入式/内核开发 > 嵌入式/内核开发 > 海思hi3751 Android存储开发指南手册

海思hi3751 Android存储开发指南手册

嵌入式/内核开发 作者:一牛论坛 时间:2020-01-06 19:22:21 0 删除 编辑

海思Hi3751 android诞生之初主要面向手机业务,而手机上的主要存储介质一般为 SD,TF 卡,存储设备没有分区,所以 Android 自身的存储管理原本设计成只针对单分区存储方案,对于多分区的U 盘,硬盘等,业务上只能访问第一个分区。而在我们的 DPT Android 平台上,由于支持 SD 卡、SB 等接口,使得存储方案变得丰富多样,目前 Android 的原生存储方案不能满足应用需求,需要升级以支持多设备,多分区。同时,由于谷歌和厂商对内置SD 卡和外置 SD 卡的不同要求,我们需要支持 2 种 SD 卡的方案。 


1.2 存储模块概述

存储的模块结构分层非常清晰,主要有 4 层,如图 1-1 所示


应用层 

主要是客户的应用程序(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 的功能 








来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69958773/viewspace-2672199/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-12-31

  • 博文量
    33
  • 访问量
    57069