多媒体扫描从MediaScannerService开始,了解
packages/providers/MediaProvider/
1.MediaProvider.java
1.1 MediaScanner调用ScanDirectories中的processDirectory进入JNI层
1.2 JNI层调用PVMediaScanner的processDirectory
1.3 PVMediaScanner的processDirectory为目录下的文件,调用MyMediaScannerClient的scanFile
1.4 MyMediaScannerClient运行scanFile
2.MediaScannerReceiver.java
收到“启动完毕”广播后,扫描内部存储;手打Mount消息后,扫描外部存储;收到请求扫描某个文件,注意不会扫描内部存储上的文件(ACTION_MEDIA_SCANNER_SCAN_FILE)
总结:MediaSCannerReceiver是用来接收任务的,它收到广播后,会启动MediaService进行扫描工作。
3.MediaScannerService.java
它是一个Runnable,可能有线程之类的东东存在。
3.1 单独启动一个带消息循环的工作线程
3.2 主线程接收到系统发来的任务,然后发送给工作线程去处理
3.3 工作线程接收到任务,创建一个MediaScanner去扫描
3.4 MediaScannerService广播下扫描工作启动了或者结束了
4.MediaThumbRequest.java
分享到:
相关推荐
在Android系统中,Mediascanner是一个至关重要的组件,它负责扫描设备上的媒体文件(如图片、音频和视频),并将这些文件的信息添加到媒体数据库中,以便用户可以在图库、音乐播放器等应用中访问它们。这个过程被...
在实际开发中,开发者可能需要与MediaProvider和MediaScanner组件交互,比如在开发音乐播放器或图片查看器时,这些应用会依赖于MediaProvider提供的内容,而MediaScanner则在背后默默地更新媒体库。因此,了解这些...
在Android系统中,`MediaScanner`是一个至关重要的组件,它负责扫描设备上的媒体文件(如音乐、图片和视频),并将这些文件的信息添加到系统的媒体库。这个过程是自动进行的,当新文件被添加到设备时,`MediaScanner...
在Android的原生多媒体框架中,mediaScanner的JNI实现通常位于`frameworks/base/media/jni/`目录下,文件名为`android_media_MediaScanner.cpp`。这里定义了native方法的实现,负责将Java层的扫描任务委托给底层的...
MediaScanner 源代码分析。我从网上搜集的关于MediaScanner 的源代码分析资料。欢迎大家下载学习
### MediaScanner流程分析 #### 一、概述 `MediaScanner`是Android系统中用于扫描多媒体文件(如图片、音频和视频等)的关键组件之一。它主要用于更新系统中的媒体数据库,以便用户界面能够显示最新的多媒体文件...
MediaScanner 可以通过手动控制,在 Android 系统中,已经定制了三种事件会触发 MediaScanner 去扫描磁盘文件:ACTION_BOOT_COMPLETED、ACTION_MEDIA_MOUNTED、ACTION_MEDIA_SCANNER_SCAN_FILE。 ...
2.2 学习JNI的实例:MediaScanner 2.3 Java层的MediaScanner分析 2.3.1 加载JNI库 2.3.2 Java的native函数和总结 2.4 JNI层MediaScanner的分析 2.4.1 注册JNI函数 2.4.2 数据类型转换 2.4.3 JNIEnv介绍 2.4.4 通过...
1. **初始化**:在Java层进行,MediaScanner根据存储路径(内部卷或外部卷)打开对应的SQLite数据库,这些数据库用于存储媒体文件信息。 2. **预扫描**:清除旧的文件和播放列表缓存,然后根据MediaProvider的请求...
载入 .so 档案的过程中,Android 应用层的 Java 类都是以 Java 写的,这些 Java 类编译为 Dex 型式的 Bytecode 之后,必须靠 Dalvik 虚拟机(VM)来执行。VM 在 Android 平台里,扮演很重要的角色。在执行 Java 类的...
在Android开发中,JNI尤为重要,因为它使开发者能够在Java层调用C或C++编写的高性能代码,从而实现更加高效的处理任务,比如图像处理、音频视频编码解码等场景。 #### 二、JNI 在 Android 中的工作原理 在Android...
在深入了解JNI(Java Native Interface)之前,我们需要明确一点:Android应用程序的主要部分是基于Java开发的,并且这些Java类会被编译成Dex格式的字节码,然后在Dalvik虚拟机上运行。这种设计模式为Android应用...
在Android操作系统中,多媒体文件的管理和访问是一个关键功能,涉及到用户对音频、视频和图片的日常操作。Android多媒体扫描过程是一个自动化的服务,用于检测、解析并更新设备上的多媒体文件信息。这个过程由多个...
2.2 学习JNI的实例:MediaScanner / 15 2.3 Java层的MediaScanner分析 / 16 2.3.1 加载JNI库 / 16 2.3.2 Java的native函数和总结 / 17 2.4 JNI层MediaScanner的分析 / 17 2.4.1 注册JNI函数 / 18 2.4.2 数据类型转换...
在初始化阶段,MediaScanner会根据文件所在的卷(内部或外部)打开对应的SQLite数据库,例如MediaStore,用于存储元数据。这些元数据包括文件名、艺术家、专辑、类型等信息。 4. **JAVA层预扫描**: 预扫描阶段,...
在Unity游戏开发中,将截图保存到安卓设备的相册并确保它们立即显示,是一个常见的需求。这个过程涉及多个步骤,包括在Unity引擎内截取屏幕图像、将图像数据保存到本地、使用Android Java插件(jar包)与Android系统...
在Android系统中,检测U盘(USB存储设备)的热插拔事件是一项常见的需求,尤其在开发与USB设备交互的应用时。"android检测U盘插拔事件"这个标题揭示了我们要探讨的核心技术点:如何在Android应用中监听并处理U盘的...
6. **MediaScanner**:当新的媒体文件被添加到设备时,需要通过MediaScanner扫描并更新媒体库。MediaScannerConnection类可以帮助开发者在应用中触发扫描,确保新文件能立即出现在文件浏览器中。 7. **权限管理**:...
第5章讲解了Android系统中常用的类,包括sp、wp、RefBase、Thread等类,同步类,以及Java中的Handler类和Looper类,掌握这些类的知识后方能在后续的代码分析中做到游刃有余;第6章以MediaServer为切入点,对Android...
在Android操作系统中,内置的图库应用是用户管理和查看图片的主要工具。这个“android自带图库源码”提供了深入理解Android图库功能实现的关键洞察,对于开发者尤其是对Android系统有浓厚兴趣的同学来说,是一个...