首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    android之surfaceview画图

    ViewRoot类的成员函数requestLayout首先调用另外一个成员函数checkThread来检查当前线程是否就是创建当前正在处理的ViewRoot对象的线程。...如果不是的话,那么ViewRoot类的成员函数checkThread就会抛出一个异常出来。ViewRoot类是从Handler类继承下来的,用来处理应用程序窗口的UI布局和渲染等消息。...ViewRoot.scheduleTraversals public final class ViewRoot extends Handler implements ViewParent,           ...这个类型为DO_TRAVERSAL的消息是由ViewRoot类的成员函数performTraversals来处理的,因此,接下来我们就继续分析ViewRoot类的成员函数performTraversals...ViewRoot.performTraversals public final class ViewRoot extends Handler implements ViewParent,

    2K100

    Choreographer响应Vsync信号流程

    在ViewRootImpl中(WMS端收到NativeInputQuene消息回调InputChannel调用到APP端进行ViewRoot分发处理)会调用postFrameCallback方法,这个方法会传入一个...在ViewRoot.setView中进行初始化InputChannel和WMS端的InputChannel 流程 ViewRoot的setView方法构造APP端InputChannel对象–> WindowSession...InputChannel通知APP端的InputChannel【利用初始化时保存的fdpipe通信唤醒】)–>APP端 APP端–>InputChannel从共享内存中拿到事件,InputChannel将事件传递到ViewRoot...中,ViewRoot拿着 DecoeView.之后按照Java‘中的事件分发进行处理’ type:这个的用处是下一个Vsync信号来临时,首先会按照TYPE来取出对应的链表,然后进行调用run方法【具体调用哪个方法根据

    29840

    个人学习笔记:事件分发和启动Activity

    wms端的inputchannel初始化是在app端activity调用resume方法里面viewroot调用setView方法进行的。...wms端收到add方法(viewroot的setview),申请共享内存,接着在两个inputchannel中保存各自的文件描述符,也就是进行了app端的初始化。...所以他需要管理不同applicantion的事件传递单独创建了一个connection类每个connection对应一个viewroot。...:这里解释上一个总结说到wms没有用looper是因为wms是系统的而viewroot每个activity都有一个。...app端从共享内存读取事件,也就是viewroot也能知道。decoreview也能找知道,最后就是app的事件分发流程了。 ps 个人笔记,后续整理。有误地方辛苦指出一起交流~

    25820

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券