Android性能优化之UI重绘卡顿

编程入门 行业动态 更新时间:2024-10-11 23:20:13

Android<a href=https://www.elefans.com/category/jswz/34/1771266.html style=性能优化之UI重绘卡顿"/>

Android性能优化之UI重绘卡顿

UI离不开我们的工作,一个好的布局展示给人一种耳目一新的感觉,但是如果重复嵌套就会给人一种很槽糕的感觉。
为了避免这种糟糕的局面出面,我们就需要好好的了解你要实现的UI界面,明白是什么原因造成的,就可以避免这种情况的出现。

  1. 界面重绘严重

再次首先要介绍一个词:
FPS:即表示每秒传递的帧数。理想情况下,60 FPS 就感觉不到卡顿,意味着每个绘制时长应该在16ms 以内,如果超过这个时间,就会出现丢帧现象(多出现在复杂的动画上边)。

关于View的绘制流程:Measure、Layout、Draw

出现以及解决方案:

  1. view层级相同的情况下,尽量使用LinerLayout而不是RelativeLayout,因为RelativeLayout在测量的时候会测量二次,而LinerLayout测量一次,具体看源码。
  2. 绘制UI时,尽量减少绘制UI层次,减少不必要的view嵌套。
  3. 使用RelativeLayout 和 LinerLayout时,合理使用Merge,可以避免自己的布局和系统的布局重叠造成重复计算(measure和layout)。
  4. 提高显示速度,使用ViewStub,加载的时候才会占用。不加载的时候就是隐藏的,仅仅占用位置。
  5. 删除控件中无用的属性。
  6. View的复用。
  7. 不要在ui主线程进行耗时的操作。

重绘有时候不是很好的发现,尤其不是自己写的代码,这种时候我们就需要使用工具。
这种工具一般手机自带,首先打开手机的开发者选项:

  1. 在您的设备上,转到 Settings 并点按 Developer Options。
  2. 向下滚动到 Hardware accelerated rendering 部分,并选择 Debug GPU Overdraw。
  3. 在 Debug GPU overdraw 对话框中,选择 Show overdraw areas


打开显示重绘区域,就可以看到手机的UI界面重绘的部分了。
看一张图片就明白重绘的情况!

原色:没有过度绘制
蓝色:1 次过度绘制
绿色:2 次过度绘制
粉色:3 次过度绘制
红色:4 次及以上过度绘制

更多情况请参考官网之检查 GPU 渲染速度和绘制过度

参考:
Android 性能优化之减少UI过度绘制
Android性能全面分析与优化方案研究—几乎是史上最全最实用的
android APP性能优化总结

更多推荐

Android性能优化之UI重绘卡顿

本文发布于:2024-03-10 03:27:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1726893.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:性能   Android   重绘卡顿   UI

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!