程序性能优化的布局检测与优化(2)

发布时间:2020-03-12 09:10:00
程序性能优化的布局检测与优化(2)

Hierarchyviewer工具提供5几个例子。如何分析和解释红点的成因?

1) 如果叶节点或视图组中只有少数子节点,则这可能反映了问题。应用程序可能不会在设备上缓慢运行,但您需要指导为什么此节点为红色。您可以使用systrace或traceview工具获取更多附加信息;

2) 如果视图组中有多个子节点,且测量阶段为红色,则需要观察子节点的绘制;

3) 如果视图层次结构中的根视图在消息阶段是红色的,在布局阶段是红色的,在绘图阶段是黄色的,这是很常见的,因为这个节点是所有其他视图的父类;

4) 如果视图结构中的叶节点在红色绘制阶段有20个视图,则会出现问题。您需要检查代码中的OnDraw方法,该方法不应在那里调用。

5) 如果没有使用的父布局,则表示父布局没有背景图形或大小限制。这样的布局不会对UI效果产生任何影响。我们可以通过合并未使用的父布局和合并/标记来降低UI的级别;

6) 使用线性布局和线性布局可以使UI级别更深。如果存在这样的问题,我们使用相对布局而不是线性布局来降低UI级别;

7) 异常用户界面设置为不存在,如异常错误页面。如果有这样的问题,我们需要使用viewstub/tag而不是gone来提高UI性能。