代码改变世界

随笔分类 -  AndroidSDCard

Android 框架层为IMountService 增加新接口

2012-04-20 10:10 by Terry_龙, 10780 阅读, 收藏, 编辑
摘要: 在为Android 增加多分区的支持时,可能会需要获得当前 USB 连接的挂载口,可能标准的Android 框架并未提供这样的接口给开发者,这时就需要我们自己为它提供接口了。先来看一下上层(应用)如何得到一个IMountService 的。privatesynchronizedIMountServicegetMountService(){if(mMountService==null){IBinderservice=ServiceManager.getService("mount");if(service!=null){mMountService=IMountService. 阅读全文

Android SDCard Mount 流程分析(二)

2012-04-12 10:09 by Terry_龙, 14996 阅读, 收藏, 编辑
摘要: 上一篇关于Mount的分析,分析了main的作用和一些挂载系统的分析。下面深入分析Mount的流程走法。Mount流程分为两个部分 主动挂载(插入SDCARD或者USB硬盘时系统自动挂载) 手动挂载(卸载SDCARD或者USB硬盘后,再点击加载设备的手动挂载)不同挂载走的流程并不相同,比如手动挂载是由上层发命令给vold 执行挂动作,而主动挂载是由kernel 分命令给vold 再由vold 发挂载消息给上层,上层得到挂载消息和状态后再发命令给vold 执行挂载。主动挂载较之复杂些。不过虽然流程不一样,但最终还是要调用Volume的挂载函数,下面将详细介绍两者的行走的流程。由于... 阅读全文

Android SDCard Mount 流程分析(一)

2012-04-05 11:01 by Terry_龙, 28592 阅读, 收藏, 编辑
摘要: 前段时间对Android 的SDCard unmount 流程进行了几篇简短的分析,由于当时只是纸上谈兵,没有实际上的跟进,可能会有一些误导人或者小错误。今天重新梳理了头绪,针对mount的流程再重新分析一次。本篇大纲 android 系统如何开机启动监听mount服务 默认设备节点在Android 系统的哪个目录 vold.fstab 配置文件的分析 vold 里面启动页面main做了些什么android 系统如何开机启动监听mount服务android sdcard 热插拔监测和执行操作是由一个启动文件vold 所统领的,系统开机会读取初始化配置文件init... 阅读全文

Android SDCard UnMounted 流程分析(三)

2012-03-22 20:40 by Terry_龙, 7070 阅读, 收藏, 编辑
摘要: 前篇地址Android SDCard UnMounted 流程分析(一)Android SDCard UnMounted 流程分析(二)前一篇讲到SDCard unmout onEvent 发送socket 到框架层,接下来分析框架层得到数据后的流程。MoutService当android 系统启动时,system将MountService 添加到启动服务里面,而MountService 会开启一个线程来运行NativeDaemonConnector,由它来监听vold的消息,代码:mConnector=newNativeDaemonConnector(this,"vold" 阅读全文

Android SDCard UnMounted 流程分析(二)

2012-03-22 15:47 by Terry_龙, 3997 阅读, 收藏, 编辑
摘要: 上一篇讲到通过NetlinkManager发送uevent 命令到NetlinkHandler 的onEvent,代码如下:voidNetlinkHandler::onEvent(NetlinkEvent*evt){VolumeManager*vm=VolumeManager::Instance();constchar*subsys=evt->getSubsystem();if(!subsys){SLOGW("Nosubsystemfoundinnetlinkevent");return;}SLOGD("NetlinkHandler:OnEventsubsy 阅读全文

Android SDCard UnMounted 流程分析(一)

2012-03-22 14:53 by Terry_龙, 6267 阅读, 收藏, 编辑
摘要: Android SDCard框架Android SDCard框架,我们修改一般涉及到四大模块 Linux Kernel 用于检测热拔插,作为框架开发者来说,这者不用涉及 Vold 作为Kernel 与 Framework 之间的桥梁 Framework 操作Vold ,给Vold 下发操作命令 UI 与Framework 交互,用于挂载/卸载SD卡框架涉及的源码位置Vold :System/vold 为vold 提供接口:System/Netd 其他涉及的部分:System/core/libsysutils/src Sys... 阅读全文