由于《深入理解Android 卷一》和《深入理解Android卷二》不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在CSDN博客中全文转发这两本书的全部内容。第9章 深入理解Vold和Rild本章主要内容· 介绍Vold。· 介绍Rild。本章涉及的源代码文件名称及位置下面是本章分析的源码文件名及其位置。· Main.cppsystem/vold/Main.cpp· Ne...
分类:
移动开发 时间:
2015-08-02 18:20:53
阅读次数:
385
刚毕业时第一个接触的模块就是Vold,这个模块虽然小,但深入下去是有一定难度的。花了点时间重新整理了下这一块的逻辑,也当温习下这个模块。
挂载核心在Vold,MountService相当于对外提供了一个服务接口。在Vold内部,FrameworkListener接收MountService发来的Socket消息,NetlinkListener接收Kernel发来的Uevent事件。Stora...
分类:
其他好文 时间:
2015-07-23 10:42:58
阅读次数:
142
MountService作为Vold的客户端,会接收来自vold的消息,并且内部定义保存了各种Volume相关的状态定义:
1、VolumeStateclass VolumeState {
public static final int Init = -1;
public static final int NoMedia = 0;...
分类:
其他好文 时间:
2015-04-21 22:39:55
阅读次数:
208
背景
使用正则表达式寻找emoji字符,进行过滤
1.通过
http://apps.timwhitlock.info/emoji/tables/unicode 确定emoji 的字符码点范围在 \u1F600-\u1F6FF 之间
需要查看unicode码点和UTF-8 UTF-16 UTF-32的童鞋可以参考这篇文章
http://www.ruanyifeng.com/blog/20...
分类:
移动开发 时间:
2015-02-26 18:37:11
阅读次数:
182
这几天测试的时候发现个很奇怪的问题 如果将TF卡插到读卡里然后在插到板子上 热插拔后都可以挂载上 但是使用U盘只有第一次插上去的时候能挂载上 拔下来后 在插上就挂载不上了 驱动里可以识别到U盘已经插入 研究了MountService和Vold 最后通过查看/proc/mounts文件发现 U盘第一次插上后是正常挂载 但是拔掉后没有卸载 多么纠结的事件 主要涉及文件system/vold/Direc...
分类:
移动开发 时间:
2014-12-18 17:04:53
阅读次数:
243
不同平台的mmc分区方案和烧写emmc方式不一样,总之划分一块区域用来当sdcard挂载,并且记住block序号,android的分区类型在linux下制作一般都是ext4格式。
可在BoardCondif.mk中添加宏控制:
BOARD_MMCBLK_AS_SDCARD := 13
#jscese open mmcblk0p13 as sdcard to mount 140724#...
分类:
移动开发 时间:
2014-10-14 13:38:48
阅读次数:
598
在前文Android——4.2 - 3G移植之路之libusb (一) 中有解析到libusb 这个动态库的移植,目的就是为了 usb-modeswitch 服务。
usb-modeswitch的作用就是转换usb型的设备状态,也是3G 移植中重要的准备工作!
一.Kernel配置:
usb-modeswitch需要kernel中的驱动支持,需要配置serial驱动,到kernel中 make menuconfig 打开serial中的option模块 :
Device Drive...
分类:
移动开发 时间:
2014-09-23 19:01:55
阅读次数:
479
目前的3G模块都是usb接口的,插在android系统中都会默认识别为usb storage 设备,会尝试通过Vold 挂载为usb 存储设备!
所以必须要把设备类型转掉,转换成Modem类型设备,只有这样才能实现主机与模块之间的正常通信,这里就需要一个转换驱动了,
usb-modeswitch 开源驱动,网上下载:http://www.draisberghof.de/usb_modeswitch/#download
其中还需要支持的API库,源码下载:http://www.libusb.org/...
分类:
移动开发 时间:
2014-09-05 18:17:31
阅读次数:
215
在前文Android—— 4.2 Vold挂载管理_NetlinkManager (四)中有解析到Vold 是从kernel中获取uevent事件,来获取device信息,其中是通过一个Netlink的套接字,目前整个Vold机制也分析完了,
上篇 Android—— 4.2 Vold挂载管理_MountService (六) 分析了机制中最上层的,这里分析一下最下层的kernel uevent事件的发送,以USB设备为例!...
分类:
移动开发 时间:
2014-09-02 19:59:35
阅读次数:
316
整个Vold机制应该算system层,与framwork层的交互在Android—— 4.2 Vold挂载管理_CommandListener (二)中有提到过,是通过一个"vold"的socket进行通信的,这里分析一下framework中负责与Vold通信的:MountService...
分类:
移动开发 时间:
2014-09-01 17:52:23
阅读次数:
604