heavstar 2011-11-03
1.多媒体存储机制:
当Android的系统启动的时候,系统会自动扫描sdcard内的(包括大容量存储)跟系统内存的多媒体文件,并把获得的信息保存在两个系统数据库中,以后在其他程序中如果想要访问多媒体文件的信息,其实就是在这两个数据库中进行的,而不是直接去sdcard中或者手机内存里取。两张数据库都是位于/data/data/com.android.providers.media/databases目录下。如下图所示:
名为external.db里面存储的是sdcard(包括大容量存储的媒体信息),名为internal.db存储的就是手机内存的媒体信息,比如说手机出厂时自带的一些铃声。当然如果有多张sdcard更换使用时,这时external.db不一定是固定的,或许像下图这样,但每一个名字确实对应着那张sdcard。
可以使用SQLite Expert这个工具打开这个数据库文件看一下:
这个就是存放系统内置铃声的表。
2.更新多媒体数据库:
既然其他程序中如果想要访问多媒体文件的信息,是在这两个数据库中进行的,而不是直接去sdcard中或者手机内存里取。那么当我们下载一首歌曲完成的时候可能就会需要更新播放列表,否则除了重启机器,或者拔了sdcard再插上,目前没有其他办法。好吧,发送一个广播就会把当前新下载的或者刚刚删除的文件信息同步进数据库了。