没有合适的资源?快使用搜索试试~ 我知道了~
Android23SD卡挂载流程浅析.doc
1 下载量 25 浏览量
2022-11-22
18:28:48
上传
评论
收藏 693KB DOC 举报
温馨提示
试读
93页
Android23SD卡挂载流程浅析.doc
资源推荐
资源详情
资源评论
Android23SD 卡挂载流程浅析
vold.fstab 中的内容显示如下:
## Vold 2.0 Generic fstab
## - San Mehat (san@android.com)
##
#######################
## Regular device mount
##
## Format: dev_mount <label> <mount_point> <part> <sysfs_path1...>
## label - Label for the volume
## mount_point - Where the volume will be mounted
## part - Partition # (1 based), or 'auto' for first usable partition.
## <sysfs_path> - List of sysfs paths to source devices
######################
## Example of a standard sdcard mount for the emulator / Dream
# Mounts the first usable partition of the specified device
dev_mount sdcard /mnt/sdcard auto /devices/platform/goldfish_mmc.0
/devices/platform/msm_sdcc.2/mmc_host/mmc1
## Example of a dual card setup
# dev_mount left_sdcard /sdcard1 auto /devices/platform/goldfish_mmc.0
/devices/platform/msm_sdcc.2/mmc_host/mmc1
# dev_mount right_sdcard /sdcard2 auto /devices/platform/goldfish_mmc.1
/devices/platform/msm_sdcc.3/mmc_host/mmc1
## Example of specifying a specific partition for mounts
# dev_mount sdcard /sdcard 2 /devices/platform/goldfish_mmc.0
/devices/platform/msm_sdcc.2/mmc_host/mmc1
能够看到大部分是注释,最重要的为以下这句:
dev_mount sdcard /mnt/sdcard auto /devices/platform/goldfish_mmc.0
/devices/platform/msm_sdcc.2/mmc_host/mmc1
PS:
MMC(MultiMedia Card)卡由西门子公司和首推 CF 的 SanDisk 于 1997 年推出。1998 年 1 月十四家公
司联合成立了 MMC 协会(MultiMedia Card Association 简称 MMCA),现在差不多有超过 84 个成员。
MMC 的进展目标要紧是针对数码影像、音乐、手机、PDA、电子书、玩具等产品,号称 是目前世界上
最小的 Flash Memory 存贮卡,尺寸只有 32mm x 24mm x 1.4mm。尽管比 SmartMedia 厚,但整体体积
却比 SmartMedia 小,而且也比 SmartMedia 轻,只有 1.5 克。MMC 也是把存贮单 元和操纵器一同做到
了卡上,智能的操纵器使得 MMC 保证兼容性和灵活性。
MMC_百度百科
挂载流程简析
内核层(kernel):
当有新的 SD/USB 设备插入时,kernel 将自动检测并加载对应的驱动,同时 kernel 中的 sysfs 机制
会在有新的驱动加载时给用户层发送相应的 event,然后将 kernel 产生的这些 event 传递给 vold。
用户层(user):
用户层通过 sysfs 能够接收来自 kernel 的 uevent,这些收到的信息能够在/sys/block/mmcblk0 下用
命令 cat *来查看,如:
# cat *
bdi: invalid length
10
179:0
device: invalid length
8
holders: invalid length
power: invalid length
queue: invalid length
8
0
0
524288
slaves: invalid length
278 813 8686 1050 0 0
0 0 0 240 1040
subsystem: invalid length
MAJOR=179
MINOR=0
DEVTYPE=disk
NPARTS=0
#
假如这时候在终端输入"pwd"指令,大伙儿会发觉路径并不是我们之前进入的路径
/sys/block/mmcblk0,而是/sys/devices
/platform/goldfish_mmc.0/mmc_host/mmc0/mmc0:e118/block/mmcblk0。其中 mmc0:e118 这 个文件
是插入 SD 卡之后生成的文件。Sysfs 传递来的是一个多行的文档,vold 需要解析那个文档。Vold 将
处理之后的事件传递给 MountService,然后 MoutService 会将信息进一步处理传递给
StorageManager,最后我们能够在系统设置界面看到 SD 卡挂 载成功的信息,这包括了 SD 卡的总容
量以及可用空间如下图:
SD 卡的挂载流程大致如此,MountServie 实际上还会通知 PackageManagerService,因为那个地点分
析的是 SD 卡挂载从底层到上层的表现,因此那个地点暂不分析。简约流程图如下:
绿色箭头:表示插入 SD 卡后事件传递以及 SD 卡挂载
红色箭头:表示挂载成功后的消息传递流程
黄色箭头:表示 MountService 发出挂载/卸载 SD 卡的命令
大伙儿可能对图中突然显现的这么多的名称感到惊奇,这些差不多上在 Android
2.3 源码中能够找到的,接下来我会为大伙儿一一讲明这些类的作用。
2.各个文件的要紧作用
(1)Kernel:那个是系统内核啦。不是我要分析的文件,本文涉及内容不是内核级的哦!
(努力学习中...)
剩余92页未读,继续阅读
资源评论
yyyyyyhhh222
- 粉丝: 403
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 3122080306 邹子轩 实验报告二.docx
- 基于STM32 NUCLEO板设计彩色LED照明灯(纯cubeMX开发)(大赛作品,文档完整,可直接运行)
- 发那科工业机器人保养大全
- Sphere.h
- REMD固有时间尺度分解信号分量可视化(Matlab完整源码和数据)
- 嵌入式系统双单片机STC89C52+STC15W104多功能学习板电路图可扩展 适用于单片机初学者和教学
- 基于STM32蓝牙控制小车系统设计(硬件+源代码+论文)大赛作品
- XILINXFPGA源码基于Spartan3火龙刀系列FPGA开发板VGA测试例程
- Java聊天室的设计与实现【尚学堂·百战程序员】
- python中matplotlib教程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功