美文网首页
渲染机制完全解析03(数据交给谁管理)

渲染机制完全解析03(数据交给谁管理)

作者: 沪漂意哥哥 | 来源:发表于2022-04-08 07:21 被阅读0次

    一. DecorView添加到窗口Window的过程

    image.png
    1.首先通过Launcher进程的调用触发AMS.startActivity
    a.LauncherAcitivity.onListItemClick,触发点击图标事件 image.png
    b.Activity.startAcitivityForResult,调用生命周期管理,访问AMS执行生命周期流程 image.png
    c.Instrumentation.exeStaratActivity,调用AMS的startActivity image.png
    2.由ActivityManager.startActivity触发到ATMS的startActivity函数 image.png
    3.ActivityTaskManagerService.startActivity image.png
    3.一大堆调用
    4.ActivityThread中执行TransacationExecutor中会再执行完callback后调用生命周期的执行 image.png image.png

    二. 总结

    调用发起在Launcher中,然后调用到AMS中,由AMS中会对当前状态进行设置,而当处理launcherItem的callback之后,会处理生命周期,那么只需要在每个生命周期调用时,去进行下一个生命周期的设置就能完成生命周期调用链条的产生。

    三. View添加到Window的时机

    1.ActivityThread在handleResumeActivity中会调用到performResumeActivity image.png
    2.在之前的Activity.attach中,已经完成了对于WindowManager的创建,在handleResumeActivity后续调用中,执行了wm.addView,将Decor添加到WindowManager进行管理 image.png
    3.当前addView被转嫁到WindowManagerGlobal.addView,而WindowManagerGlobal这个类是具体与WMS进行通信的类,这个类中addView则生成了一个ViewRootImpl对象对于view进行管理 image.png
    4.ViewRootImple.setView调用requestLayout image.png
    5.requstLayout调用scheduleTraversal image.png
    6.scheduleTraversal中有一个mChoreographer属性 image.png

    四. Choreographer

    Choreographer的引入,主要是配合Vsync,给上层app的渲染提供一个稳定的绘制时机,也就是Vsync到来的时候,Choreographer介意接收Vsync信号,统一管理应用的输入,动画,绘制等任务的执行。Android的UI绘制任务将在他的统一指挥下完成。这个是引入Chroeographer的作用。

    相关文章

      网友评论

          本文标题:渲染机制完全解析03(数据交给谁管理)

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