美文网首页iOS学习
iOS-底层原理35-界面优化

iOS-底层原理35-界面优化

作者: 一亩三分甜 | 来源:发表于2021-02-18 20:31 被阅读0次

    《iOS底层原理文章汇总》
    上一篇文章iOS-底层原理34-内存管理(下)和RunLoop介绍了内存管理底层原理和RunLoop,本文接着介绍界面优化

    1.卡顿原理:掉帧

    双缓冲区,垂直同步信号VSync
    后置缓冲区第二帧渲染耗时,第三帧显示信号VSync发送过来切换到前置缓冲区,渲染完正常显示,显示第四帧信号VSync发送切换到后置缓冲区,覆盖了第二帧,第二帧完美错过,过候不等,掉帧


    image.png
    image.png

    2.卡顿检测

    I.FPS检测卡顿
    CADisplayLink


    image.png
    image.png
    image.png

    II.Runloop卡顿检测
    监控runloop运行事务的耗时:事务的状态


    image.png
    III.微信卡顿检测工具:matrix
    image.png
    image.png
    image.png
    超时时间为2秒
    image.png

    IV.滴滴卡顿方案:DoraemonKit

    3.实战优化项目

    tableView,maskToBound圆角
    A.预排版:提前计算,内存缓存


    image.png

    B.预解码:图片加载


    image.png
    image.png
    SDWebImage中的图片预解码:新起一个编解码队列
    image.png
    image.png
    image.png
    image.png

    查看imageView的编解码流程:编解码发生在主线程,给了主线程压力,可以像SDWebImage优化到子线程中


    image.png
    image.png
    C.按需加载
    image.png
    D.异步渲染
    UIView的drawRect前后,分别做了什么?
    image.png
    image.png

    面试题:UIView和CALayer的关系

    I.UIView的底层是通过CALayer来驱动的
    II.UIView能够交互
    III.UIView侧重于显示 layer侧重于内容的绘制
    IV.UIView会成为CALayer的代理 UIView的显示交给CALayer的display方法进行渲染

    Graver渲染流程

    image.png
    image.png
    image.png

    位图赋值


    image.png
    image.png
    位图具有响应功能:WMGMixedView-->WMGCanvasControl-->WMGCanvasView-->WMGAsyncDrawView-->UIView,满足响应链机制
    image.png
    image.png
    image.png
    image.png
    image.png

    相关文章

      网友评论

        本文标题:iOS-底层原理35-界面优化

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