Android图库中照片刷新性能优化措施
来源:互联网 发布:首席财务官 知乎 编辑:程序博客网 时间:2024/05/22 14:11
作者:Ting.wong
笔者对原生Gallery的UI做了修改后,测试时出现了图库内容刷新偏慢的问题,主要体现有如下2个主要问题:
(1) 切换UI场景时容易闪烁;
(2) 进入照片列表缩略图时刷新慢;
针对如上问题,通过分析对比新旧图库版本的代码,终有一番所得,特将分析解决方法记录下,作为他人及自己的备忘。
(1)实现上出现了一些重复刷新UI的请求,故造成切换场景时UI的闪烁,笔者对所有代码中所有涉及UI切换的场景进行检查,同时对比原生Gallery,避免重复刷新情况的出现,场景包括:Gallery前后台切换,时间相册和文件夹相册的视角切换等。
(2)照片列表缩略图AlbumPage加载刷新慢,分析后了解主要由如下两方面引起:
Ø A. 为了照顾到一套代码的兼容性,图库中有增加不同功能的开关。此处当有某个开关打开情况下,在加载绘制照片时对MediaSet和MediaItem重复判断其是否处于特定(比如加密)状态,客观上造成了延迟,解决方式为:在启用某个开关时,MediaSet和MediaItem在第一次被访问时判断并记录其功能所需的特殊状态,直到再次执行该功能的操作时才更新此状态,避免重复判断更新,若未启用开关时,移除所有对特殊状态(比如加密)的判断逻辑。
Ø B. 原生图库应用为三列,在1080P分辨率的手机上图片列表最多可显示3X5=15张图片缩略图,我们自定义修改为四列之后,最多则可显示4X7=28张图片缩略图。这样,在生成每个刷新页面下的缩略图时,在两者尺寸相同的情况下,明显4列显示方式会占用更多内存和加载时间,解决方式:通过缩小缩略图原始尺寸的方式来提升内存使用和缩略图加载效率。
通过如上措施导入后,现在照片列表的加载效率得到很大提升,具体测试数据如下(时间单位:毫秒):
次数\场景
从AlbumSetPage进入AlbumPage
从PhotoPage返回AlbumPage
第1次
667
366
第2次
513
466
第3次
698
422
第4次
633
413
第5次
533
367
平均值
608
406
其中:
(1) 测试时进入的相册一共有1047张图片
(2) 进入或返回AlbumPage的时间,从按下相册或者返回按钮开始,到AlbumPage的照片列表全部加载完成
- Android图库中照片刷新性能优化措施
- 数据库性能优化措施
- 数据库性能优化措施
- 数据库性能优化措施
- MySQL 性能优化措施
- Android 刷新系统图库
- "Android"性能优化措施之面试必问点-<include>,<merge>,<ViewStub>
- Android UI布局的性能分析和优化措施
- 海量数据性能优化措施
- 海量数据性能优化措施
- 数据库性能优化的措施
- SQL性能优化常见措施
- android电量优化措施
- Android拍照 图库照片本地显示
- 选择图库中照片GridView显示
- Android调用系统相机拍照,从图库中选择照片,调用系统摄像机录像
- Android开发中,怎样调用摄像机拍照以及怎样从本地图库中选取照片
- Android 中布局的优化措施都有哪些?
- 指针常量与常量指针的区别
- Java防止跨站脚本(XSS)注入攻击
- div 的width:auto到底代表什么意思
- 一些个人盲点
- 【学习笔记】使用NPM在项目中引入【lodash】(Ubuntu环境)
- Android图库中照片刷新性能优化措施
- Operation not allowed after ResultSet closed--操作mysql数据库
- android中生成excel
- TCP/IP知识理解(下)
- DOM addClass MOveClass
- html disabled 和readonly,disabled 引起的form表单提交问题
- extjs基本属性
- iOS中 setNeedsDisplay和setNeedsLayout方法的不同
- markdowm