Gallery 启动过程

1 概述Gallery2就是在G版本上的Gallery3D,H版本上的GalleryNew3D,用于图片和视频文件的查看、编辑与管理。google在I版本上对Gallery3D进行了大规模重构,UI风格也有较大的差别。首先看下主界面:

G版本上的单张浏览界面ICS上Gallery2的效率要比G版本的高,用户体验更好。在单张浏览界面,ICS在界面下方添加了一行缩略图,操作起来很便捷。ICS上的Gallery2还支持gif格式文件的浏览(不知道如果gif文件太大会不会内存溢出)。这个文档对它的启动流程进行了简单的分析。
2 Gallery2启动过程分析
2.1 GalleryProvider的启动Gallery2是用于多媒体文件的查看和管理的,涉及到很多对媒体库的操作。在第一次启动Gallery2时,会首先启动GalleryProvider。这个类继承自ContentProvider,很显然,这个类是用于提供媒体库操作接口的。GalleryProvider中重载了query、delete、update等基本的媒体库操作的方法,它的域是com.android.gallery3d.provider。

Gallery2能操作的媒体文件包括:mpeg4、mp4、3gp、3gpp、3gpp2、webbm、bmp、jpeg、gif、png。启动GalleryProvider时会首先调用onCreate()方法,这个方法里做了两件事:
1.获取一个GalleryAppIml的一个引用,即整个Application的引用;
2.获取一个DataManager对象,DataManager类是用于管理所有图片和视频文件的。在获取DataManager对象时,会先new一个DataManager对象,然后调用DataManager实例的initializeSourceMap,将不同类型的资源对象放在一个哈希表中。
public synchronized void initializeSourceMap() {
if (!mSourceMap.isEmpty()) return;
// the order matters, the UriSource must come last
addSourc

猜你喜欢

转载自blog.csdn.net/qq_42894864/article/details/102671184
今日推荐