天天看点

深入理解Android——MediaScanner1.概述2. android.process.media分析3. MSR模块分析

1.概述

    多媒体系统,是Android平台中非常庞大的一个系统.MediaScanner是多媒体系统中重要的一员, MediaScanner和媒体文件扫描有关,例如,在music应用程序中见到的歌曲专辑名、歌曲时长等信息, 都是通过它扫描对应的歌曲而得到。

2. android.process.media分析

    媒体扫描功能是通过一个APK实现的,它位于packages/providers/MediaProvider目录下,通过APK的AndroidManifest.xml文件可知,该APK运行时定义了一个进程名,如下:

    application android:process="android.process.media"    

从Android应用程序的四大组件来看,它使用了三个组件:

  • MediaScannerService(从Service派生)模块负责扫描媒体文件,然后将扫描的信息插入数据库。
  • MediaProvider(从ContentProvider派生)模块负责处理针对这些媒体文件的数据库操作请求,例如查询、删除、更新等
  • MediaScannerReceiver(从BroadcastReceiver派生)模块负责接收外界发来的扫描请求,是MS对外的接口。

3. MSR模块分析

    MSR的核心是MediaScannerReceiver,从BroadcastReceiver派生,专门用于接收广播,其代码如下:

public class MediaScannerReceiver extends BroadcastReceiver {
   
           

继续阅读