一、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交互。

Android学习——MediaProvider与Music模块的更多相关文章

  1. Android学习——第一个NDK程序

    在前面的学习中,我们已经讲解了关于NDK编程的环境搭建流程,简单的使用我们也通过官网本身自带的例子进行说明了.可是相信大家一定还存在这么的一个疑惑:“如果我要自己利用NDK编写一个Android应用, ...

  2. Android 学习资料收集

    收集整理这份资料灵感来自于 trip_to_iOS, 征得同意引用了该资料的开头描述 收集整理这份资料主要帮助初学者学习 Android 开发, 希望能快速帮助到他们快速入门, 找到适合自己学习资料, ...

  3. 十一、Android学习第十天——项目开始(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 十一.Android学习第十天——项目开始 Android知识点的学习告一 ...

  4. Android学习系列(23)--App主界面实现

    在上篇文章<Android学习系列(22)--App主界面比较>中我们浅略的分析了几个主界面布局,选了一个最大众化的经典布局.今天我们就这个经典布局,用代码具体的实现它. 1.预览图先看下 ...

  5. Android学习开发中如何保持API的兼容

    Android学习开发中如何保持API的兼容: 1,采用良好的设计思路 在设计过程中,如果能按照下面的方式来进行设计,会让这个API生命更长久 面向用例的设计,收集用户建议,把自己模拟成用户,保证AP ...

  6. 2015最新Android学习线路图

    Android是一个以Linux为基础的半开源操作系统,主要用于移动设备,由Google和开放手持设备联盟开发与领导.据2011年初数据显示仅正式上市两年的操作系统Android已经跃居全球最受欢迎的 ...

  7. Android学习——移植tr069程序到Android平台

    原创作品,转载请注明出处,严禁非法转载.如有错误,请留言! email:40879506@qq.com 声明:本系列涉及的开源程序代码学习和研究,严禁用于商业目的. 如有任何问题,欢迎和我交流.(企鹅 ...

  8. Android学习系列(18)--App工程结构搭建

     本文算是一篇漫谈,谈一谈关于Android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构.      关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的 ...

  9. 【Android】完善Android学习(三:API 3.0)

    备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...

随机推荐

  1. 怎样查看或修改元素节点的id属性

    使用 el.id; el表示获取到的元素节点, 如下所示: // HTML 代码 // <div id="app" class="c1">hello ...

  2. 怎样快捷获取网页的window对象

    使用document.defaultView; document.defaultView === window 注意: 1. 如果当前文档不属于window对象, 则返回null; 2. docume ...

  3. hdu 1151 最小路径覆盖

    先说说最小路径覆盖的定义 定义:在一个有向图中,找出最少的路径,使得这些路径,经过每一个点,且每一个点只与一条路径相关联, 由上面得出: 1.一个单独的点是一个路径 2:如果有路径a,b,c....f ...

  4. .Net Core项目如何设置静态页面为项目的启动页面?

    最近在使用Core的webApi作为服务器端的数据提供者,但是需要有自己的官网,来指导前端如何使用该接口,因为不想接入MVC这么大的框架,于是写了个静态页面挂上doc文档提供下载就行. 在项目的Sta ...

  5. Pattern Recognition and Machine Learning-01-Preface

    Preface Pattern recognition has its origins in engineering, whereas machine learning grew out of com ...

  6. 初学java4 编译器优化

    编译器自动转义 short/char/byte 在定义变量时,后面赋值小于边界值,即可自动转义 右侧值小于左侧范围,编译器直接强转 右侧值大于左侧范围,编译器报错 short a = 10+1; // ...

  7. win10下 安装迅雷精简版

    下载链接:https://files-cdn.cnblogs.com/files/del88/ThunderMini_1.5.3.288.zip 他妈的 今天安装迅雷精简版 在win10上 竟然报错, ...

  8. 三种定位+堆叠+li小黑点变图片

    定位: 定位分为三种: position:static(默认值) relation(相对定位):进行较小偏移,不会脱离文档流,原位置保留 absolute(绝对定位):脱离文档流,不占据页面空间,变成 ...

  9. JS-完数

    完数 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该数 ...

  10. 今日js心得

    <input type="hidden" id="history_chart_json" data-json="#{smartDeviceMon ...