Android性能优化前因后果总结

1、性能问题

2、致使问题缘由

一、人为在ui线程中作了轻微的耗时操做,致使ui线程卡顿。

在onCreate中读pref,解析json数据。html

二、layout过于复杂,没法在16ms完成渲染。算法

ConstraintLayout才是一个更高性能的消灭布局层级的神器。ConstraintLayout 基于Cassowary算法,而Cassowary算法的优点是在于解决线性方程时有极高的效率,事实证实,线性方程组是很是适合用于定义用户界面元素的参数。json

三、同一时间执行的动画过多,致使CPU或者GPU负载太重。布局

四、view过分绘制的问题。性能

手机设置里面的开发者选项,打开Show GPU Overdraw的选项,轻松发现这些问题,而后尽可能往蓝色靠近。优化

五、gc过多的问题。动画

六、资源加载致使执行缓慢。ui

a、预加载,即尚未来到路径以前,就提早加载好,诶,好像x5内核就是酱紫哦。线程

b、实在是要等到用到的时候加载,请给一个进度条,不要让用户干等着,也不知道何时结束而形成很差的用户体验。cdn

七、工做线程优先级设置不对,致使和ui线程抢占cpu时间。

八、静态变量。

3、解决问题

一、GPU过分绘制,定位过分绘制区域

a、减小布局层级,使用ConstraintLayout替换传统的布局方式。

b、检查是否有多余的背景色设置。

六、json反序列化问题

json反序列化是指将json字符串转变为对象,这里若是数据量比较多,特别是有至关多的string的时候,解析起来不只耗时,并且还很吃内存。解决的方式是:

a、精简字段,与后台协商,相关接口剔除没必要要的字段。保证最小可用原则。

b、使用流解析,以前我考虑过json解析优化,在Stack Overflow上搜索到这个。因而了解到Gson.fromJson是能够这样玩的,能够提高25%的解析效率。

七、viewStub & merge的使用。

tools:showIn=""属性,就能够正常展现preview了。

4、代码建议

转载:wetest.qq.com/lab/view/39…

相关文章
相关标签/搜索