`
yanwenjinhaha
  • 浏览: 16229 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

android vold架构详解(3)_两个Socket

 
阅读更多
Vold架构最最重要的其实是两个Socket的创建和监听

1. Vold Socket
2. Kernel-Uevent Socket
理解清楚这两个Socket的用途,以及它们什么时候创建和使用,就能清晰理解整个Vold架构了。

首先讲讲Vold架构在整个Android系统的位置。
Android系统从上到下依次是,App、Application Framework、Library、Linux Kernel。
Vold架构处于Library层,它负责接收下层Linux Kernel Usb Driver向上发送的Usb Add、Remove、Change消息。
Vold对这些消息处理后,在向上Application Framework层发送Usb change、mounted、unmounted消息。
同时,Vold也能接收上层Application Framework层向下发送的mount、unmount、format等消息。

问题来了,
Vold怎么接收下层Linux Kernel Usb Driver向上发送的消息?
Vold对这些消息处理后,怎么向上Application Framework层发送的消息?
Vold怎么接收上层Application Framework层向下发送的消息?

答案就是上面提到的两个Socket,
Vold通过Kernel-Uevent Socket接收下层Linux Kernel Usb Driver向上发送的消息。
Vold对这些消息处理后,通过Vold Socket向上Application Framework层发送的消息。
Vold通过Vold Socket接收上层Application Framework层向下发送的消息。
这就是整个Vold架构的最最重要的地方了。

详细看下面复杂的时序图吧。



理解了上面那张图,对于Vold架构也就清楚了。剩余的就是细节,有需要的时候在细细研究解析。
  • 大小: 413.1 KB
分享到:
评论

相关推荐

    android-vold.rar_android_android vold_vold

    在Android系统中,`vold`(Volume Daemon)是一个至关重要的服务,它负责管理设备的存储空间,包括内部存储和外部存储(如SD卡)。`vold`在系统启动时运行,提供对文件系统的挂载、卸载以及权限管理等功能。通过对`...

    android vold模块详解

    在深入了解Android Vold模块之前,我们有必要先了解udev和NetLink的基础知识,因为Vold是在Android系统中基于udev功能和NetLink机制的一个实现。udev是一个Linux内核中的功能,用于在2.6版本之后替代旧的devfs,成为...

    Android 9.0 Vold 挂载流程分析

    通过kernel–>vold–>StorageManagerService这样的架构去逐级上报热插拔事件。 一、Vold 入口 --> /system/vold/main.c int main(int argc, char** argv) { atrace_set_tracing_enabled(false); setenv(ANDROID...

    USB之android Vold分析 storage分析 高清版

    USB之android_Vold分析,分析了linux udev与android vold的关系由来,vold的功能、架构,使用netlink的通信过程。kernel的uevent发送,framework层的处理、磁盘的挂载等等。

    android中Vold进程详解

    "Android中Vold进程详解" Vold进程是Android系统中管理和控制外部存储设备的核心组件之一。它接收来自内核的外部设备消息,用于管理和控制Android平台外部存储设备,包括SD插拨、挂载、卸载、格式化等。 Vold进程...

    android-vold.rar_android

    3. USB设备管理:当USB设备插入时,Vold会检测并处理这些设备,将其作为一个新的存储卷进行挂载,用户可以方便地在设备间传输数据。 4. 安全性控制:Vold实施权限控制,限制非授权应用或用户对存储设备的访问,保障...

    Android vold 多U盘多分区挂载实现

    在Android系统中,`vold`(Volume Daemon)是一个关键的系统服务,它负责管理设备上的存储设备,包括内部存储、外部SD卡以及USB设备。本文将深入探讨如何在Android系统上实现对多个U盘及多分区的挂载,基于描述中的...

    android-vold架构[收集].pdf

    `MountService`接收到解析后的事件后,执行两个关键任务: - 发送`doCommand()`命令,这个命令通过`commandListener`传递给`volumeManager`,执行相应的操作,如挂载、卸载等。 - 广播事件信息到其他系统服务和...

    android系统vold透析.pdf

    Framework层可以通过这个socket向Vold发送命令,如查询设备状态、发起挂载或卸载操作等。 #### 4. USB Storage Framework结构分析 除了Vold之外,Android系统中还有一套完整的USB Storage Framework用于管理USB...

    android系统挂载之vold详细分析

    vold启动后会创建一个socket,以便与Android框架层进行通信。vold的主要功能是管理外部存储设备,包括操作设备和轮询状态,并在外部存储设备状态发生变化时向平台报告。 vold的内部架构可以分为三个主要部分:创建...

    USB之android_Vold分析.pdf

    在`init.rc`文件中,会有启动Vold Daemon的相关配置,并创建一个用于与Framework层通信的socket。 ##### 2.2 Vold内部架构 Vold的内部架构主要包括以下几个核心组件: - **NetLinkManager**:负责管理和处理来自...

    USB之android_Vold_分析

    Vold(Volume Daemon)是Android操作系统中一个重要的组件,负责管理外部存储设备如USB存储和SD卡等。它的核心职责包括识别、挂载和卸载存储设备,以及处理设备的各种状态变化。本篇文章将详细剖析Vold的工作原理,...

    Android-vold源码分析

    vold与Android系统其他组件的交互主要通过两种方式: 1. **Socket通信**:vold与Framework之间的通信,以及与其他进程的交互,都是通过socket进行的。这种方式提供了跨进程通信(IPC)的能力,使得vold能够独立于...

    android代码VOLD代码分析

    VOLD的启动涉及到创建一个socket,以便与Android框架层进行通信。 VOLD的内部架构可以分为几个主要模块:NetLinkManager、CommandListener、VolumeDirect和VolumeAuto。其中,NetLinkManager用于接收来自内核的消息...

    android系统vold透析

    例如,Vold会在启动时创建一个用于与Framework层通信的socket连接。 ##### 2.2 Vold内部架构 Vold的内部结构相当复杂,主要包括以下几个核心组件: - **NetLinkManager**:负责处理与内核之间的Netlink消息,通过...

    vold_android.pdf.tar.gz_android

    Vold这个名字来源于“Volume Daemon”,意为“卷守护进程”,在Android系统架构中扮演着存储设备驱动的用户空间接口角色。理解Vold的工作原理对于开发者和系统管理员来说至关重要,因为它直接影响到数据的读写、设备...

    android vold

    android 对插入设备后产生的反应,诉说连接的响应与挂载

    android_system_blacklist_android_msm8610_

    在Android系统中,"android_system_blacklist_android_msm8610_"可能指的是针对特定硬件平台MSM8610的黑名单配置或者安全更新。MSM8610是高通公司生产的一款移动处理器,主要面向中低端智能手机和平板电脑市场。这个...

Global site tag (gtag.js) - Google Analytics