博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android4.0图库Gallery2代码分析(二) 数据管理和数据加载
阅读量:4552 次
发布时间:2019-06-08

本文共 1463 字,大约阅读时间需要 4 分钟。

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代码分析(九) 几点可优化的地方

转载于:https://www.cnblogs.com/senior-engineer/p/4864880.html

你可能感兴趣的文章
Quartus II 11.0破发点(不同的是低版本号)
查看>>
cocos2d-x3.0 解释具体的新的物理引擎setCategoryBitmask()、setContactTestBitmask()、setCollisionBitmask()...
查看>>
Cocos2d-x
查看>>
FIR滤波器设计
查看>>
1005 继续(3n+1)猜想 (25 分)
查看>>
Python爬虫学习笔记之极限滑动验证码的识别
查看>>
27-删除元素
查看>>
开发Android系统内置应用小记
查看>>
Struts 1之DispatchAction
查看>>
mongodb
查看>>
可以不改MD5程序内容吗?可以!
查看>>
关于weight属性使用的一些细节
查看>>
Mybatis源码研究1:从JDBC到Mybatis
查看>>
Solr
查看>>
键盘录入一串字符并取出做字符序列,计算各个字符的个数
查看>>
23 python多线程threading及线程同步
查看>>
Django之ModelForm
查看>>
简单的requestAnimationFrame动画
查看>>
hdoj-3791-二叉搜索树(二叉搜索树模板题)
查看>>
【裴蜀定理】[HAOI2011]向量
查看>>