美文网首页工作生活
性能优化2-ui优化工具实操

性能优化2-ui优化工具实操

作者: 刘佳阔 | 来源:发表于2019-07-03 09:55 被阅读0次

hierarchy viewer

  • 安装
    该工具在ddms里.在安卓3.1以后.DDMS需要去sdk/tools里.有个monitor的批处理双击打开.
    这个工具只是一个客户端,真正连接手机的是viewServer这个服务端,Hierarchy Viewer只能连接Android开发版手机或是模拟器使用.需要下边方法.
    https://github.com/romainguy/ViewServer](https://github.com/romainguy/ViewServer
    如果不能翻墙的话.用下边也可以.直接把ViewServer的类放在APP项目中
    https://blog.csdn.net/chenjian723122704/article/details/79010625
    效果如下.不知为何,我这个没显示出UI的测量布局绘制用时.
    补充.选中某个视图,点击中间屏幕右上角的图案,可以计算测量布局绘画的时间
    按钮位置
    具体时间
优化前
  • 要点
    嵌套层级越多,视图树越复杂,渲染时间越长.
    RelativeLayout经常需要对子view测量两次来确保放在正确位置
    LinearLayout如果设置了weight,也需要测量两次来得到子视图的尺寸.
    要通过减少布局的层级来加快屏幕绘制,可以多使用ConstraintLayout来控制多层级布局,这里附一个比较好的手册
    https://juejin.im/post/5bac92f2f265da0aba70c1bf#heading-8
    附一张优化优化一半的图.可以看到.越是子视图越比较好优化.跟布局反而比较难动.需要注意.下图中框住的那一部分,是系统自身的布局.我们自己的视图要从id/content之后的视图开始看.
    优化一部分后

接着在推荐Android studio 3.x上的新工具.两个可以一起用


layout inspector

每次点击都会生产一个当前页面的视图总览,然后文件会保存在captures目录下


生产文件位置
具体文件打开后如下,左边是视图树,中间是视图对应的APP页面.右边是该视图的所有属性
文件打开效果

可以根据这个来优化页面布局.每次进行一些优化后.重新生成新布局.速度很快.

GPU渲染

  • 查看渲染信息 adb shell dumpsys gfxinfo com.123.123 //最后是包名


    渲染信息1

    total 一工渲染多少帧
    50th 50%的帧渲染用时
    95th 95%的帧渲染用时
    最后五行列出未能在16毫秒内完成渲染的原因.

systrace

这个软件在Android device monitor中,如下


monitor中的位置

他还弹框让你选个位置.然后保存一个HTML文件.默认持续时间是5s


生成的html
也可以使用命令行

使用python命令以及systrace.py工具 systrace.py工具位置在 sdk/platform-tools/systrace;

python systrace.py [options] [categories]

调用systrace来记录10秒钟内的设备进程,包括图形进程,并生成mynewtrace.html报告 具体命令如下
python systrace.py --time=10 -o mynewtrace.html gfx

一个讲解的文字
https://juejin.im/post/5b3cce09e51d45198651069f
重点可以看一下uiThread 和Render Thread的情况.如果他们没在一帧内绘出东西.就会卡顿.

卡顿情况
放大看.看到了一个代码中的控件
image.png
说明这个控件的渲染时间太长了.那么就要针对这里进行ui优化.

相关文章

网友评论

    本文标题:性能优化2-ui优化工具实操

    本文链接:https://www.haomeiwen.com/subject/ktjzcctx.html