Android学习——MediaProvider与Music模块
一、MediaProvider数据库介绍
1. 关系型数据库
关系模型的物理表示是一个二维表格,由行和列组成。
2. MediaProvider数据库存储位置
/data/data/com.android.providers.media/databases
内置存储:internal.db
外置存储:external-ffffffff.db
3. MediaProvider扫描更新数据库
app层:MediaScannerReceiver、MediaScannerService
Framework层:MidiaScanner
Native层:StagefrightMediaScanner、MediaScannerClient
4. 表与视图的区别
表(table):存放实际数据,占用物理空间
视图(view):虚表,不占物理空间,只是逻辑概念
二、平台的外部存储配置
模拟存储为主,物理存储为辅
1. emulated primary
将部分内置存储暴露与模拟层来实现外部存储,并标记成主要存储,根挂载点目录:/storage/emulated/
2. physical secondary
将SD卡、USB设备这类便携式存储标记为次要存储,根挂载点目录:/storage/(T卡ID)/
如:/storage/3066-1412/ 3066-1412是SD卡的标识,每张SD卡的标识是唯一的
三、MediaProvider在Music中的应用
1. Music应用对数据库的操作共2种:查询、删除
2. Music模块设计框架
3. URI
Uri可以表示数据库中的所有表;某一个表;或某一个表里的某一个ID。Androd设备上的image/audio/video/file等资源数据都是存在数据库表中,
因此,可以说:Android上可用的每种资源(图像、视频等)都可以用Uri来表示。
四、MediaProvider在SoundRecorder中的应用
SoundRecorder应用对数据库的操作共3种:查询、删除、插入、重命名
五、AIDL(Android Interface definition language)
AIDL是Android中IPC(Inter-Process Communication)方式中的一种。
AIDL的作用是让你可以在自己的APP里绑定一个其他APP的service,这样你的APP可以和其他APP交互。
最新文章
- 总结下用Vue.js和webpack遇到的问题
- python中的进程、线程(threading、multiprocessing、Queue、subprocess)
- JavaScript 基础(七) 箭头函数 generator Date JSON
- android 弹幕效果demo
- 2016年11月6日 星期日 --出埃及记 Exodus 19:22
- HTML笔记(七)head相关元素<;base>; &; <;meta>;
- Oracle SQL语句追踪
- MemSQL Start[c]UP 2.0 - Round 2 - Online Round
- 教你如何选择Android游戏引擎
- CImg 读取jpg, png ,tif 等格式失败解决方案
- css 实现页面加载中等待效果
- Maven Profile标签
- Nginx并发访问优化
- Hash表题目整数hash-HDOJ1425(转载)
- linux服务器安全小知识
- NOIP2015酱油记
- win10 uwp 活动磁贴
- golang 基本数据结构使用
- 【Hadoop UI学习】Hue
- 开源轻量级分布式文件系统--FastDFS