HarmonyOS-ArkUI Ability进阶系列-各类生命周期总结
ArkUI中含有生命周期的成分
本章主要探讨什么类什么内容含有生命周期这个概念。
- UIAbility 本身的
- WindowStage 管理窗口的
- 页面和组件生命周期(页面+组件)
UIAbility生命周期
UIAbility简化版,这张图只需要知道极简版生命周期。以及适合在各个生命周期做什么事即可。
到Window相关的生命周期扩展-WindowStage相关
在UIAbility中,负责真正界面渲染相关的是Window。 大致流程是:
- UIAbility创建完之后,系统会为它配置一个主Window。这个Window里面配置好了Surfsce这样一个存在,这块Surface区域就是负责渲染的。 渲染说白了就是一坨存储空间,一坨数据,随您怎么理解,最终就是那一坨的01010101,然后经过各种绘制流程(Android里View的onDraw等, HarmonyOS还没看到源码等碰到补充)将这坨存储空间的数据改吧可以被解释为有意义的画面(Canvas绘制或者OpenGL绘制), 之后这些画面内容会被让系统中的“渲染中心(Android中的SurfaceFlinger到这节骨眼基本所有窗口系统处理流程大差不差的)”录入,之后这个渲染中心把它收集到的所有的这类信息,其实就是窗口及内容信息,进行排布计算(为什么还要排布是因为,渲染中心它知道的不只是本APP的窗口,其他APP的,系统的各类窗口,它都录入了, 您的APP在最前面,万一是占半拉屏幕大小的,那不得拿到下一层窗口的内容进行计算,来个模糊效果,叠加效果,都是可以做到的),计算出来最终的合成画面信息,然后被送往渲染驱动,驱动将这些数据喂给显卡,就显示出来界面喽,这些糙话可能会一下子把这些高大上的技术拉下神坛, 但极简流程大致就这样子。事实上涉及的每一块技术的确很神,都比较难,有兴趣学一下,反正楼主头发大把掉,都不漂亮了心都快枯了。一般用户交互的界面玩的都是这种套路。而本段描述总的那坨数据,就是Surface里面指向的。
- 故UIAbility事实上就是一个组装厂类似的存在。 它组装了界面渲染的模块零件,也组装了用户事件的处理模块,比如点击事件呀啥的,同时还有我们写的组件,在渲染模块中怎么列怎么展示,都或多或少由UIAbility统筹了一番。最重点的就是这两