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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android4.0图库Gallery2代码分析(二) 数据管理和数据加载

發布時間:2024/4/13 Android 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android4.0图库Gallery2代码分析(二) 数据管理和数据加载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android4.0圖庫Gallery2代碼分析(二) 數據管理和數據加載

代碼分析android相冊優化工作

Android4.0圖庫Gallery2代碼分析(二) 數據管理和數據加載

一 圖庫數據管理

Gallery2的數據管理 DataManager(職責:管理數據源)- MediaSource(職責:管理數據集) - MediaSet(職責:管理數據項)。DataManager中初始化所有的數據源(LocalSource, PicasaSource, MtpSource, ComboSource, ClusterSource, FilterSource, UriSource, SnailSource),將數據源放到一個Hash表中,提供存取操作。MediaSource負責管理數據集,以LoacalSource為例,從他的createMediaObject函數可以看出,根據路徑他可以創建出LocalMediaSet, LocalMedia, LocalImage, LocalVideo等。MediaSet負責管理數據項MediaItem. 圖庫數據管理簡要圖如圖-1


圖-1:圖庫數據管理簡化圖

二 數據項(MediaItem)的加載過程。

下面介紹一下,Albumpage加載縮略圖列表的過程為例子。AlbumSetPage加載相冊縮略圖和PhotoPage加載大圖的過程,請讀者自行分析。

在相冊頁面(AlbumPage)和縮略圖數據加載相關的有兩個成員變量AlbumDataLoader和AlbumSlotRender。AlbumDataLoader負責維護要加載數據提供一個管理,將要加載的數據項MediaItem放在鏈表中進行存取操作,動態的增刪改查操作。在AlbumPage類的Onresume函數中調用了AlbumDataLoader的resume,AlbumDataLoader的resume創建了一個線程,隨時處理數據的變化(MediaItem的增刪改查)。AlbumDataLoader的作用過程見圖2。

圖-2:AlbumDataLoader的作用過程

? ? ? ?AlbumDataLoader負責數據模型的維護,AlbumSlotRender負責數據的縮略圖的加載工作,為了提高性能,數據加載使用了【線程池】。AlbumSlotRender從AlbumDataLoader獲取要加載的數據MediaItem, 根據每一個MediaItem的狀態確定是是否Bitmap縮略圖的是需要加載、回收、還是等待等。對于需要加載的縮略圖,提交到線程池中。AlbumSlotRender的作用過程見圖3。數據加載過程中,【同步問題】其實也是需要重點分析的,由于時間有限,這里就縮略了,見諒!

圖-3:AlbumSlotRender的作用過程

?

三 后續代碼分析,大致提綱

Android4.0圖庫Gallery2代碼分析(三) 狀態管理和窗口切換

Android4.0圖庫Gallery2代碼分析(四) 消息處理(點擊和手勢)

Android4.0圖庫Gallery2代碼分析(五) 各種數據源和數據源的管理

Android4.0圖庫Gallery2代碼分析(六) 可渲染數據元及其多樣性

Android4.0圖庫Gallery2代碼分析(七) 遙控器控制的實現

Android4.0圖庫Gallery2代碼分析(八) 和數據掃描線程的數據交互

Android4.0圖庫Gallery2代碼分析(九) 幾點可優化的地方

總結

以上是生活随笔為你收集整理的Android4.0图库Gallery2代码分析(二) 数据管理和数据加载的全部內容,希望文章能夠幫你解決所遇到的問題。

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