Android图库中照片刷新性能优化措施
作者: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图库中照片刷新性能优化措施相关推荐
- Android MediaScanner MediaProvider流程以及性能优化,音视频扫描
Android MediaScanner MediaProvider流程以及性能优化,音视频扫描 快速扫描 一.源码解析 github链接 MediaScanner时序图 MediaSacannerR ...
- Android手机内存管理与性能优化
Android手机内存管理与性能优化&JNI.NDK高级编程(JNI.Dalvik.内存监测) 课程分类:Android 适合人群:中级 课时数量:34小节课时 用到技术:Dalvik,DDM ...
- android图库文件夹乱,防止文件夹包含在Android图库中 | MOS86
为了确保您的Android设备上的所有媒体文件都可以在Gallery应用程序中使用,您可以观看或看到它们,系统将会在每次重新启动设备时检查是否添加了新的媒体文件.虽然这对我们大多数人来说是完全正确的, ...
- Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析
Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析 说明:Java生鲜电商平台中,由于服务进行了拆分,很多的业务服务导致了请求的网络延迟与性能消耗,对应的这些问题,我们 ...
- android edittext不可复制_精选Android中高级面试题:性能优化,JNI,设计模式
性能优化 1.图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处理? 参考回答:首先我们要清楚图片的三级缓存是如何的: 如果内存足够时不回收.内存不够时就回收软引用对象 2.内存中 ...
- iOS开发中常见的性能优化技巧
性能问题的主要原因是什么,原因有相同的,也有不同的,但归根到底,不外乎内存使用.代码效率.合适的策略逻辑.代码质量.安装包体积这一类问题. 但从用户体验的角度去思考,当我们置身处地得把自己当做用户去玩 ...
- QQ音乐Android客户端Web页面通用性能优化实践
QQ音乐 Android 客户端的 Web 页面日均 PV 达到千万量级,然而页面的打开耗时与 Native 页面相距甚远,需要系统性优化.本文将介绍 QQ 音乐 Android 客户端在进行 Web ...
- webview加载的页面和浏览器渲染的页面不一致_QQ音乐Android客户端Web页面通用性能优化实践...
QQ音乐 Android 客户端的 Web 页面日均 PV 达到千万量级,然而页面的打开耗时与 Native 页面相距甚远,需要系统性优化.本文将介绍 QQ 音乐 Android 客户端在进行 Web ...
- web 折线图大数据量拉取展示方案_【第2010期】QQ音乐Android客户端Web页面通用性能优化实践...
前言 今日早读文章由QQ音乐客户端开发工程师@关岳分享,公号:云加社区(ID:QcloudCommunity,腾讯云官方开发者社区)授权分享. 正文从这开始~~ QQ音乐 Android 客户端的 W ...
最新文章
- 科大讯飞刘庆峰发表对未来10年AI三大判断
- python接收邮件内容启动程序_Python实现发送与接收邮件的方法详解
- 删除系统Win7系统盘越来越小,系统盘清理技巧
- 下边框_OPPO Find X2颜值有多高?超窄下边框+瀑布屏,看完大写的服气
- 深度解析算法优化内部机制:为什么机器学习算法难以优化?
- java https post get请求_JAVA利用HttpClient进行POST和GET请求(HTTPS)
- 你为什么要学习WordPress?
- border做三角形
- Memcached安装与使用实例
- dubbo 分布式服务框架 介绍
- Hadoop学习之路(一)理论基础和逻辑思维
- XshellXftp免费版本申请
- 74xx系列芯片类型及功能概览
- PyQt5 与PyQt4的区别
- 软件工程专业学习路线
- 用Python实现简单的服务器【新手必学】
- HP M1136无法打印的解决方法
- 偏爱MySQL,Nifty使用4个Web Server支撑5400万个用户网站
- 51 nod 2070 最小罚款
- 为 TDesignBlazor 添加暗黑模式