当前位置: 首页 > news >正文

网站重构百度站长工具综合查询

网站重构,百度站长工具综合查询,资源网站很难做,网站屏幕自适应代码1.代码位置 system/vold/ 路径下,查看bp文件,发现是编译system/vold/main.cpp编译生成可执行文件vold 2.app侧调用代码流程 2.1 整体框架 #mermaid-svg-lqO8phN62rKNW407 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#…

1.代码位置

system/vold/ 路径下,查看bp文件,发现是编译system/vold/main.cpp编译生成可执行文件vold

2.app侧调用代码流程

2.1 整体框架

StorageManager StorageManagerService VoldNativeService VolumeManager kernel App端发起调用 Binder SystemService进程 Vold进程 Binder linux侧 syscall StorageManager StorageManagerService VoldNativeService VolumeManager kernel

2.2 StorageManagerService调用栈

  • 调用复位Vold的操作
StorageManagerService VolumeManager connectVold() onDaemonConnected() Vold进程 收到ACTION_USER_ADDED的广播 Binder调用 (onUserAdded) call resetIfBootedAndConnected () Binder调用 (onUserAdded) alt [监听Broadcast] [复位vold进程] StorageManagerService VolumeManager

2.3 vold中umount的流程

StorageManagerService EmulatedVolume StorageSessionController PublicVolume Ntfs.cpp Utils.cpp App调用 / 插入u盘 mount mount onVolumeMount回调 10s后发送H_RESET的Handler消息 收到消息,执行resetIfBootedAndConnected() alt [mount成功] [mount失败] Vold进程 doMount() ntfs::Mount 执行ntfs格式的文件挂载 Mount--调用ntfs-3g进程来执行挂载 MountUserFuse() 执行 FUSE 层的挂载 BindMount() 执行mount命令 unmount() doUnmount() KillProcessesUsingPath StorageManagerService EmulatedVolume StorageSessionController PublicVolume Ntfs.cpp Utils.cpp
  • mount的日志
I vold    : Mounting emulated fuse volume
I vold    : Bind mounting /data/media to /mnt/pass_through/0/emulated
I vold    : Bind mounting //data/media/0/Android/data on /mnt/user/0/emulated/0/Android/data
I vold    : Bind mounted //data/media/0/Android/data on /mnt/user/0/emulated/0/Android/data
I vold    : Bind mounting //data/media/0/Android/obb on /mnt/user/0/emulated/0/Android/obb
I vold    : Bind mounted //data/media/0/Android/obb on /mnt/user/0/emulated/0/Android/obb
I vold    : Configuring read_ahead of /mnt/user/0/emulated fuse filesystem to 256kb
I vold    : Writing 256 to /sys/class/bdi/0:108/read_ahead_kb
I vold    : Configuring max_ratio of /mnt/user/0/emulated fuse filesystem to 40
I vold    : Writing 40 to /sys/class/bdi/0:108/max_ratio
  • unmount的日志
49 10441 I vold    : Killing all processes referencing /storage/emulated/0
49 10441 I vold    : Unmounting /mnt/user/0/emulated/0/Android/data
49 10441 I vold    : Unmounted /mnt/user/0/emulated/0/Android/data
49 10441 I vold    : Unmounting /mnt/user/0/emulated/0/Android/obb
49 10441 I vold    : Unmounted /mnt/user/0/emulated/0/Android/obb
49 10441 I vold    : Unmounting fuse path /mnt/user/0/emulated
49 10441 I vold    : Unmounting pass_through_path /mnt/pass_through/0/emulated

2.3.1 关于fuse

MountUserFuse 的背景

  1. Emulated Storage
  • 在 Android 中,用户对存储的访问并不是直接操作底层物理存储,而是通过模拟层(emulated layer)。
  • 例如,路径 /storage/emulated/0 是映射到实际的存储设备(如内置存储或 SD 卡)。
    这种机制的核心是为了实现多用户支持和存储隔离。
  1. FUSE (Filesystem in Userspace)
  • FUSE 是一种在用户空间实现文件系统的技术。它允许非特权用户通过用户态程序操作虚拟文件系统。
  • 在 Android 中,FUSE 被用来为应用程序提供访问存储的接口,并支持权限控制、文件操作拦截等功能。
  1. 挂载点管理
  • MountUserFuse 的任务是为每个用户创建和管理 FUSE 挂载点,以便每个用户只能访问自己的存储内容。

3.linux侧通知上来的代码流程

3.1.1 linux侧查询文件大小

App Environment EnvironmentUser StatFs getExternalStorageDirectory() getExternalStorageDirectory() new doStat(syscall调用) 得到文件目录相关信息 App Environment EnvironmentUser StatFs

3.1.2 U盘插入事件监听 (vold进程)

mai.cpp NetLinkManager kernel NetlinkHandler VolumeManager Disk Instance() start() 创建socket,监听uevent事件 传上来的uevent事件 handleBlockEvent 往下就是对插入事件的具体处理 handleDiskChanged readMetadata readPartitions createPublicVolume mai.cpp NetLinkManager kernel NetlinkHandler VolumeManager Disk
http://www.hrbkazy.com/news/43323.html

相关文章:

  • 怎样做旅游网站百度信息流广告怎么投放
  • 查钓鱼网站app拉新接单平台
  • 软件开发是前端还是后端网站推广优化招聘
  • 内蒙古建设厅网站查询市场营销策划方案3000字
  • 青海最好的网站建设公司域名查询网
  • 手机网站网络环境长沙哪家网络公司做网站好
  • 如何申请免费的网站空间怎样做电商 入手
  • 深圳市住房和建设局网站住房保障品牌策划方案模板
  • 大连学网站制作百度知道下载
  • wordpress最好用的seo郑州seo关键词自然排名工具
  • 手机图片网站 模版大数据智能营销
  • 深圳深圳网站开发论坛营销
  • swipe类网站爱站网关键词查询网站
  • 微网站 底部导航菜单百度指数代表什么意思
  • 制作网站页面怎么做网站推广的策略
  • 国外做问卷网站东莞网络推广系统
  • seo网站做推广价格windows优化大师怎么下载
  • 做网站的企业浙江网站seo
  • 二手备案域名购买优化建议
  • 柳州做网站哪家好东莞市网站建设
  • wordpress教程全套搜索引擎优化案例
  • app制作开发公司怎么收费常州谷歌优化
  • 网站开发 网页上传 网页制作百度客服人工
  • 视觉设计师工资一般多少哈尔滨seo整站优化
  • 数据库网页制作教程文山seo公司
  • 汕头网站设计电话百度用户服务中心官网
  • 做网站需要走哪些程序关键词优化排名费用
  • 用jsp做的网站前后端交互如何在互联网上做推广
  • 榆林建设局网站推广公司有哪些
  • 网站及推广重庆网站开发公司