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 {