日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android MediaScanner:(一)MediaScanner总体架构

發布時間:2023/12/4 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android MediaScanner:(一)MediaScanner总体架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?

Android MediaScanner:(一)MediaScanner總體架構

分類:?Android?android.multimedia androidservice數據庫工作interfaceinsert

田海立@csdn

2012-05-19

?

本文是筆者的分析歸納,并用UML圖(Class Diagram/Sequence Diagram)來呈現。雖然來源于對Android源碼的分析,但文中不會占用大量篇幅羅列源碼,所以讀者在閱讀本文時,手頭最好有Android源碼,結合源碼來解讀。本文講述MediaScanner的架構。

?

? ? ? ? MediaScanner是Android系統Media的基礎,系統啟動之初,就掃描出Media文件供后續使用,有新媒體加入或者刪除掉媒體文件,也需要更新相應的媒體庫。Android的Music、Gallery等播放或呈現媒體文件的程序也都基于穩定的MediaScanner掃描媒體文件的結果,否則,會發現程序操作的Media文件的URI根本不是實際對應的Media文件,或者甚至來電鈴聲和鬧鈴等都會有問題。

? ? ? ? MediaScanner位于packages/providers/MediaProvider下,包含MediaScannerReceiver、MediaScannerService以及MediaProvider。

?

下圖是packages/providers/MediaProvider下的AndroidManifest的內容:

?

  • ?MediaScannerReceiver是一個BroadcastReceiver,接收廣播,進行媒體掃描,這也是MediaScanner提供給外界的接口之一。收到廣播之后啟動MediaScannerService具體執行掃描工作。
  • ?MediaScannerService是一個Service,負責媒體掃描,它還要用到Framework中的MediaScanner來共同完成具體掃描工作,掃描的結果在MediaProvider提供的數據庫中。
  • ?MediaProvider是一個ContentProvider,媒體庫(Images/Audio/Video/Playlist等)的數據提供者。負責操作數據庫,并提供給別的程序insert、query、delete、update等操作。

?

另外,IMediaScannerService和IMediaScannerListenter這兩個Interface提供給其他程序通過AIDLIPC調用掃描單個文件的能力。定義在framework中,Service中實現接口。

?

下面針對MediaScanner中的各個部分,分別講解:

Android MediaScanner:(一)MediaScanner總體架構

??????? 講述MediaScanner的架構。

Android MediaScanner:(二)MediaScannerReceiver

??????? 講述MediaScannerReceiver針對來自Broadcast的不同請求所做的處理。

Android MediaScanner:(三)MediaScannerService

??????? 對MediaScannerService的類結構進行靜態分析,對創建時和啟動時的工作進行動態分析,分析過程中來看MediaScannerService如何處理MediaScannerReceiver所接收到的各種掃描請求。

Android MediaScanner:(四)MediaScanner之scanSingleFile

?

? ? ? ??本文從MediaScannerService的scanFile入口開始,詳細分析MediaScanner和MediaScannerClient對單個媒體文件的掃描處理過程。

Android MediaScanner:(五)MediaScanner之scanDirectories

Android MediaScanner:(六)MediaScanner之Native實現

Android MediaScanner:(七)MediaScanner完整過程總結

Android MediaScanner:(八)IMediaScannerService接口實現

總結

以上是生活随笔為你收集整理的Android MediaScanner:(一)MediaScanner总体架构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。