在MediaScanner.java文件的MediaScanner类前面有如下对扫描过程的说明。原文和翻译如下: 1.原文 Internal service helper that no-one should use directly. The way the scan currently works is: In summary: 2.译文 不能直接使用内部服务助手。 目前扫描的工作方法是: - scanDirectories()方法为每一个指定的目录调用native方法processDirectory()。 - processDirectory() JNI方法通过native类MyMediaScannerClient,提供了一个mediascanner 客户端, 然后通过此native MediaScanner对象调用processDirectory()方法(当创建Java对象MediaScanner时创建的)。 - native方法MediaScanner.processDirectory() (目前是opencore的一部分)调用doProcessDirectory()方法递归处理文件夹, 并且为每一个扩展名匹配的文件调用native方法MyMediaScannerClient.scanFile()。 - Java方法MediaScannerClient.scanFile回调native方法MyMediaScannerClient.scanFile()(MyMediaScannerClient类实现了MediaScannerClient接口), - MediaScanner.processFile()依据文件类型调用以下方法中的一个: parseMP3, parseMP4, parseMidi, parseOgg或者parseWMA。 -这些方法从文件中取得metadata键/值对,并且循环调用native方法MyMediaScannerClient.handleStringTag,由文件中的java counterparts决定回调。 - Java方法handleStringTag()收集感兴趣的键/值对。 总结: Java类MediaScannerService调用 Java类MyMediaScannerClient的定义在MediaScanner.java文件中,实现了MediaScannerClient接口。 Native类MyMediaScannerClient的定义在android_media_MediaScanner.cpp文件中,继承了MediaScannerClient类。 调用时序图如下:引自http://www.cnblogs.com/halzhang/archive/2011/03/10/1980319.html |
mediascanner流程
时间: 2024-11-19 23:24:39
mediascanner流程的相关文章
Android 之MediaScanner流程解析
MediaScanner详解 OK, 我们现在开始来大概分析一下android framework中MediaScanner部分的流程,若大家发现分析过程中有错误,欢迎拍砖指正. 分析流程之前,我们先给自己定个要用MediaScanner解决的问题,这样我们才会有目标感,才知道我们要干什么.否则,干巴巴的分析流程,一般都会很容易的迷失在各种code的迷雾中. 我们这里要定的目标是:获取某个MP3文件的artist & album. 我们可以假定,现在有个媒体播放器,在播放music的时候,需要在
Android MediaScanner源代码解析
1. 简介 MediaScanner向上和MediaProvider.MediaScannerService交互, 响应其请求; 向下和JNI交互. MediaScanner主要工作内容: (1)接收MediaScannerService的scanDirectories和scanSingleFile请求 (2)获取各个ContentProvider 环境(Audio,Video,Image,File) initialize (3)获取需要扫描文件列表,移除已删除文件信息 prescan (4)通
转自:Android MediaScanner 详尽分析
转自http://blog.csdn.net/Innost/article/details/6083467 一 MediaScannerService 多媒体扫描是从MediaScannerService开始的.这是一个单独的package.位于 packages/providers/MediaProvider:含以下Java文件 l MediaProvider.java l MediaScannerReceiver.java l MediaSca
[深入理解Android卷一全文-第十章]深入理解MediaScanner
由于<深入理解Android 卷一>和<深入理解Android卷二>不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在OSC博客中全文转发这两本书的全部内容. 第10章 深入理解MediaScanner 本章主要内容 · 介绍多媒体系统中媒体文件扫描的工作原理. 本章涉及的源代码文件名及位置 下面是本章分析的源码文件名及其位置. · MediaProvider.java packages/providers/MediaProvider/MediaProvider.
MediaScanner与音乐信息扫描==
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=98713 ========================================================== Android系统在SD卡插入后,MediaScanner服务会在后台自动扫描SD上的文件资源,将SD上的音乐媒体信息加入到MediaStore数据库中.程序可以直接从MediaStore中读取相应的媒体信息.通过注册监听MediaScanner广播的Inte
#24 centos6(RHEL)系列操作系统的启动流程、与命令chkconfig、grub的使用
所有由rc脚本关闭或启动的链接文件的原文件都存在于/etc/rc.d/init.d,系统为了方便使用,为此目录创建了链接/etc/init.d 所有/etc/inid.d(/etc/rc.d/init.d)目录中的脚本执行方式: # /etc/init.d/srv_script {start|stop|restart|status} # service srv_script {start|stop|restart|status} chkconfig命令: chkconfig - updates
游戏测试经历的流程及发版本注意的问题(或许有遗漏)
一.测试流程: 1.测试人员需要参与需求会议,了解需求,如有必要,提出疑问点,产品修改正 2.需求确定后,编辑测试用例或者测试功能点 3.开发提交完毕后,执行测试用例(要求开发出电脑版,节约前期打包,安装包的时间) 4.发现bug,提交bug到禅道,并通知相关人员 5.开发组修正bug,禅道指派给测试人员,表明已修复 6.对已修正的bug,进行回归测试 7.修正完毕的bug在禅道上置为关闭 8.待电脑版功能验证完毕后,进行手机包测试 9.整体测试完毕,可以发布包 补充: 1.中途有修改需求,也需
汇编语言入门:流程控制
流程控制:顺序,分支,循环 程序计数器PC中存储当前执行的程序在EM中的位置 汇编里面,用比较.跳转实现流程控制. 1.顺序:PC+1(不一定加一,看指令长度) 2.分支循环,直接赋给PC值,执行指定地址的程序 有时候需要程序有一定的流程控制能力,它不是老老实实按照顺序来执行的,中间可能会跳过一些代码 修改PC值,不可用MOV指令,PC是特殊的寄存器,特殊对待,跳转指令修改其值. 跳转指令: 1 ja 大于时跳转 2 jae 大于等于 3 jb 小于 4 jbe 小于等于 5 je 相等 6 j
1.2软件生命周期&;测试流程
软件的生命周期 可行性分析-需求分析-软件设计-软件编码-软件测试-软件维护 1.可行性分析 主要确定软件开发的目的和可行性(PM) 2.需求分析 对软件的功能进行详细的分析(PM),输出需求规格说明书(原型图) 3.软件设计(DEV) 把需求分析得到的结果转换为软件结构和数据结构,形成系统架构 概要设计:搭建架构.模块功能.接口连接和数据传输 详细设计:模块深入分析,对各模块组合进行分析,伪代码 包含数据库设计说明 4.软件编码(DEV) 可运行的程序代码 5.软件测试 5.1.单元测试(