Android MediaScanner:(一)MediaScanner總體架構

來源:互聯網
上載者:User

http://blog.csdn.net/thl789/article/details/7583352

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介面實現

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.