美文网首页
Android UI布局,优化过度绘制

Android UI布局,优化过度绘制

作者: 大川的川 | 来源:发表于2021-03-29 16:44 被阅读0次

优化前:

如何发现和监控XML的过度渲染和绘制?

设置—>开发人员选项—>硬件—>调试GPU过度绘制,然后选择 显示过度绘制区域 即可以看到一个不同颜色块的手机界面,各个颜色代表着不同的绘制情况:
本着最简洁的优化目标,理想化都应该是白色的,有些过度绘制我们无法避免,

白色:无过度绘制
蓝色:1次过度绘制
绿色:2次过度绘制
粉色和红色:你们懂的,去优化XML吧

如何避免过度绘制?

1、去除style.xml中的<item name="android:windowBackground">@color/*****</item>解决方法:

<item name="android:windowBackground">@null</item>getWindow().setBackgroundDrawable(null);

2、去除控件中不必要的背景填充,背景色填充是非常耗资源
  • 列表中的子项,可以移除子项的背景色填充
  • 一个xml尽可能少的做背景色填充
3、减少透明度的使用,每个透明度都会进行两次以上的渲染
4、使用ConstraintLayout减少布局层级,ConstraintLayout比RelativeLayout性能更好,更简单
5、使用merge标签减少布局层级,
6、使用AsyncLayoutInflater异步加载,把耗时的布局渲染操作放在子线程中,等inflate操作完成后再回调到主线程(此方法只解决卡顿,而没有从根源的优化过度绘制)
new AsyncLayoutInflater(this).inflate(R.layout.activity_main, null, new AsyncLayoutInflater.OnInflateFinishedListener() {
            @Override
            public void onInflateFinished(@NonNull View view, int resid, @Nullable ViewGroup parent) {
                //view:加载得到 view
                setContentView(R.layout.activity_main);
                //一系列的 findViewById(...),adapter...
            }
        });
7、使用ViewStub标签延迟加载,个人感觉非必要

经过自己的项目实践,窄而深的嵌套布局,在项目中很少有,但是控件背景色确实是影响过度绘制的主要原因,筛查一下页面中的背景色,会有很好的效果!重复使用背景色填充的主要原因是我们所习惯的“复制粘贴”,因为项目中有很多相同的布局,从而忽略了其独有的背景色填充

优化后:

相关文章

  • Android UI渲染优化

    Android UI渲染优化 1. 过度绘制优化 什么是过度绘制? Overdraw(过度绘制)描述的是屏幕上的某...

  • Android UI布局,优化过度绘制

    优化前: 如何发现和监控XML的过度渲染和绘制? 设置—>开发人员选项—>硬件—>调试GPU过度绘制,然后选择 显...

  • Android开发性能优化

    1.布局优化 1.Android UI渲染机制16ms间隔,刷新一帧,使用“开发者选项”中gpu渲染,查看过度绘制...

  • Android布局优化(转)

    转自 0前言 Android的绘制优化其实可以分为两个部分,即布局(UI)优化和卡顿优化,而布局优化的核心问题就是...

  • Android UI绘制过程与优化

    Android系统显示原理 性能分析工具 布局优化 避免过度绘制 启动优化 合理的刷新机制未完待续

  • android优化

    布局优化 避免过度绘制 绘制优化 内存泄漏优化 响应速度优化 ListView/RecycleView及Bitma...

  • 性能优化

    Android UI性能优化实战 识别绘制中的性能问题性能优化(二) UI 绘制优化 通过Hierarchy Vi...

  • Android UI性能优化

    Ui性能优化 参考博客:Android UI性能优化实战 识别绘制中的性能问题Android UI性能优化详解 1...

  • Android-Op

    Android 优化篇 布局优化/绘制优化 原则避免嵌套过多,可采用约束布局 工具Android Studio在t...

  • android过度绘制和GPU呈现模式分析

    参考:实战 Android中的UI过度绘制 文/宝塔山上的猫(简书作者)Android性能优化之渲染篇 胡凯And...

网友评论

      本文标题:Android UI布局,优化过度绘制

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