美文网首页
UI卡顿相关

UI卡顿相关

作者: 刘尔泽 | 来源:发表于2017-09-28 11:55 被阅读7次

    UI卡顿原理

    60 fps -->16ms
    卡顿,主要是渲染。
    一秒60帧, 在16ms内完成计算渲染,操作。
    在绘制的时候 大量的gc

    overdraw 过渡绘制,减少红色。

    UI卡顿原因分析

    • 人为在UI线程中做轻微的耗时操作,导致UI线程卡顿。
      android不是线程安全的,线程间通信 handler。
    • 布局Layout 过于复杂,无法在16ms内完成渲染
    • 同一时间动画执行的次数过多,导致CPU或GPU负载过重
    • View过度绘制,导致某些像素在同一帧时间内被绘制多次,从而使CPU 或GPU负载过重
    • View 频繁的触发measure / layout ,导致 measure / layout 累计耗时过多 及整个View 频繁的重新渲染
    • 内存频繁出发gc 过多,导致暂时阻塞渲染操作
    • 冗余资源及逻辑导致加载执行缓慢
    • ANR (轻量版)

    总结

    • .布局优化,include ,merge ,尽量不要嵌套,GONE 不会绘制,invisible 会绘制,尽量使用weight
    • 列表及Adapter 优化, adapter 的 getview。 滑动时候,只有在滑动停止的时候 再去加载图片,更新元素,可以在滑动时候显示缩略图
    • 背景和图片等内存分配优化,尽量减少不必要的背景
    • 避免ANR android 中的异步消息框架,Handler,AsyncTask, IntentService ,HandlerThread

    相关文章

      网友评论

          本文标题:UI卡顿相关

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