美文网首页
Android-布局优化

Android-布局优化

作者: 有腹肌的豌豆Z | 来源:发表于2020-08-29 08:58 被阅读0次

    过度绘制

    在“开发者选项”中打开“调试 GPU 过度绘制”(对未默认开启硬件加速的界面需要同时打开“强制进行 GPU 渲染”)。

    • 无色:没有过度绘制,每个像素绘制了 1 次。
    • 蓝色:每个像素多绘制了 1 次。大片的蓝色可以接受,如果整个窗口是蓝色的,可以尝试优化减少一次 绘制。
    • 绿色:每个像素多绘制了 2 次。
    • 淡红:每个像素多绘制了 3 次。一般来说,这个区域不超过屏幕的 1/4 是可以接受的。
    • 深红:每个像素多绘制了 4 次或者更多。严重影响性能,需要优化,避免深红色区域。

    优化方法

    • 合理选择 RelativeLayout/LinearLayout
      RelativeLayout 层级低,但如果彼此依赖,在确定位置时,会给所有子 View 做一次排序,然后重新测量,因为会引起多次测量,所以性能略低;LinearLayout 层级深,会增加内存,引起栈溢出。
      尽量不要嵌套使用 RelativeLayout。尽量不要在嵌套的 LinearLayout 中都使用 weight 属性。

    • include、merge、ViewStub 的使用

    • 使用 ConstraintLayout 降低层级

    • 避免过度绘制
      使用 Android 自带的一些主题时,Activity 的 DecorView 往往会有一个默认背景。如果布局里自定义了一个全屏的背景,DecorView 的背景无用,但它会产生一次 Overdraw。因此没有必要的话,可以移除:

    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        this.getWindow().setBackgroundDrawable(null); 
    }
    

    相关文章

      网友评论

          本文标题:Android-布局优化

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