设为首页 加入收藏

TOP

让你的app体验更丝滑的11种方法!冲击手机应用榜单Top3指日可待(三)
2019-08-31 00:11:22 】 浏览:76
Tags:app 体验 滑的 方法 冲击 手机 应用 Top3 指日可待
没问题,只不过,这个是简化版的。项目的引入

'com.tencent.tip:simple_live_data:1.0.1-SNAPSHOT'

10、动画优化

这里主要是想说使用硬件加速来做优化,不过要注意,动画做完之后,关闭硬件加速,因为开启硬件加速本身就是一种消耗。下面有一幅图,第二幅对比第一幅是说开启硬件加速和没开启的时候做动画的效果对比,可以看到开启后的渲染速度明显快不少,开启硬件加速就一定万事大吉么?第三幅图实际上就说明,如果你的这个view不断的失效的话,也会出现性能问题,第三图中可以看到蓝色的部曲线图有了一定的起色,这说明,displaylist不断的失效并重现创建,如果你想了解的更加详细,可以查看这里

img10.png

// Set the layer type to hardwaremyView.setLayerType(View.LAYER_TYPE_HARDWARE, null);// Setup the animationObjectAnimator animator = ObjectAnimator.ofFloat(myView,View.TRANSLATION_X, 150);// Add a listener that does cleanupanimator.addListener(new AnimatorListenerAdapter() {undefined @Override public void onAnimationEnd(Animator animation) { myView.setLayerType(View.LAYER_TYPE_NONE, null); } });

11耗电优化

这里仅仅只是建议;

a、在定位精度要求不高的情况下,使用wifi或移动网络进行定位,没有必要开启GPS定位。

b、先验证网络的可用性,在发送网络请求,比如,当用户处于2G状态下,而此时的操作是查看一张大图,下载下来可能都200多K甚至更大,我们没必要去发送这个请求,让用户一直等待那个菊花吧。

四 接下来的一些内容就比较轻松了,是关于一些代码的建议


img11.png

这里不一一细讲了,仅仅挑标记的部分说下。

pb->model这里的优化就不在赘述,前面有讲如何优化。

然后建议使用SparseArray代替HashMap,这里是Google建议的,因为SparseArray比HashMap更省内存,在某些条件下性能更好,主要是因为它避免了对key的自动装箱比如(int转为Integer类型),它内部则是通过两个数组来进行数据存储的,一个存储key,另外一个存储value,为了优化性能,它内部对数据还采取了压缩的方式来表示稀疏数组的数据,从而节约内存空间。

不到不得已,不要使用wrap_content,,推荐使用match_parent,或者固定尺寸,配合gravity="center",哈哈,你应该懂了的。

那么为什么说这样会比较好。

因为 在测量过程中,match_parent和固定宽高度对应EXACTLY ,而wrap_content对应AT_MOST,这两者对比AT_MOST耗时较多。

五 总结


这是以上关于我在工作中遇到的性能问题的及处理的一些总结,性能优化设计的方方面面实在是太多太多,本文不可能将全部的性能问题全部总结的清清楚楚,或许还多多少少存在一些纰漏之处,有不对的地方欢迎指出补充。


参考资料

http://developers.googleblog.cn/2017/09/constraintlayout.html等,具体详见原文

问答
如何发布节点应用程序?
相关阅读
游戏人工智能 读书笔记 (二) 游戏人工智能简史
游戏人工智能 读书笔记(一)前言与介绍
低于0.01%的极致Crash率是怎么做到的?
云学院 · 课程推荐 | 知乎KOL,与你分享机器学习中如何做选择

此文已由作者授权腾讯云+社区发布,原文请点击

搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!

海量技术实践经验,尽在云加社区

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇关于RecyclerView嵌套导致item复.. 下一篇android RecyclerView

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目