图片加载的性能优化

好的软件除了有好的交互体验外,还需要有好的流畅度,而性能的优化对于应用来说也是很重要的。在开发者选项中,打开“GPU呈现模式分析”选项,可以很直观的查看应用的性能情况。

在我负责的绘画项目中,我发现在使用ViewPager控件滑动预览图片时,黄线超标,代表这会有掉帧的现象。(虽然说这种性能指标超标了,但是用户使用起来没有什么感觉。优化的目的在于要给用户更好的体验)

黄色指eglSwapBuffer耗时操作。 每一步操作的耗时会累加起来,只要不超过绿线就没掉帧否则算是掉帧,也就是卡顿(虽然这里的系统认为的卡顿用户感觉不出来,但也成为卡顿)。黄色主要跟opengl以及系统底层绘制有关,整个系统基本达到稳定后,这部分基本都很稳定。造成黄线超标的原因是因为在加载了内存比较大的图片造成的。又因为项目的需求,每滑动一次,我需要加载两张比较大的图片(PNG),其中只有一张用于显示。

优化方法:

因为我负责的是绘画应用,在绘画时保存了3张PNG格式的图片(1.用于列表显示的小图。2.用于预览显示的大图。3.用于绘画创作的大图),PNG格式的图片占用的内存相对比JPEG大很多,在加载PNG的图片会相对比较耗时。但是因为需求,需要透明图层的存在,在绘画界面的图片必须要用PNG格式的图片,然后把另外两张图片保存时从PNG格式变成JPEG格式,并且调整成90%的清晰度(JPEG格式的图片100%与90%差别不是很大,肉眼难以分别,可以很好的压缩图片占用的内存空间。我测试过图片清晰度在80%以上都不明显,但是80%一下差别会比较明显,一边情况下不建议使用80%以下)。但要确保PNG图片100%的清晰度保存。因为绘画时是在PNG格式的图片基础上绘画的,然后进行保存,这样子做就能确保保存的那两张JPEG格式的图片都是90%的清晰度,而不会出现90%*90%这种越来越不清晰的情况。

优化完成以后,测试了一下,黄线基本上不超过绿线标准,符合标准,说明在加载图片上的速度得到了提升,还能优化应用的内存大小。
全部评论

相关推荐

大方的大熊猫准备进厂:1.教育背景:你希望从事什么专业的工作你的主修课就是什么;成绩优秀是你应该做的,没什么可描述的,成绩不优秀也许人家在大学忙着创业呢?(成绩优秀不一定是好事,只能说明多元化的大学你上成了高中,没有真正上明白大学,反而体现了你死板,不爱社交,没有别的突出能力) 2.实践经历:你想表达的意思没有说清楚。你是说你会个性化服务,还是你有实习经历。如果没有带来,经济收益,表彰,更好的发展前景,那你还不如说说提升了自己哪些技能。你说有人给你送锦旗我都能明白你优秀,但是你说你会xxxx,你说这话谁信,证据呢。 3.入伍经历:你描述的就是你的工作职责或者你应该做的,并没有体现出来你把这个事情做好了,而且入伍经历并不能证明你能干好你要应聘的工作,不如只写经历其余所有内容都不写。 4.荣誉技能:重点突出一下,但不要过多描述,这些荣誉的含金量懂得都懂。 重点:你要应聘什么工作(具体岗位,实习生不具体),你的期望薪资
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务