weex 安卓源码解析时序图
2018-05-23 10:45:44 0 举报
weex 安卓SDK源码解析 时序图
作者其他创作
大纲/内容
Handler
这里只关注了AddElementAction和CreateBodyAction
context.postRenderTask(action)
不同的Action
batch()
WXComponent
addElementAction
循环执行每个mNormalTasks
initComponentHostView(mContext)
handleMessage(msg)
mRegistry
记录组件
component.applyLayoutAndEvent(component)
consumer.accept(dom)
postRenderTask(action)
WXSDKInstance
register()
DOMActionContextImpl
WXThread
WXDomManager
c++
mRenderTask.executeRender(mContext)
component.createView()
区分要执行的操作 =(CREATE_BODY/UPDATE_ATTRS/ADD_ELEMENT)并向对应action传入数据
不同的component
registerInstance(instance)
把RenderActionContextImpl和WXSDKInstance绑定在一起
ensureRenderArchor()
WXBridgeManager
SplashActivity
WXComponentFactory
WXDomModule
component
WXApplication
定时执行
RenderActionContextImpl
sendMessage(msg)
action.executeDom(context)
根据mDomRegistries数量循环执行batch(mDomRegistries=执行的action数量)
initFramework(framework)
executeDom(context)
根据不同的action调用不同的方法context是一个DomActionContext对象与instance绑定
renderInternal(template)
invokeInitFramework(msg)
WXSDKEngine
consumeRenderTasks()
Actions
WXRenderManager
mHost
WeexActivity
startActivity(intent)
AbstractAddElementAction
WXSDKManager
正常执行
switch区分执行的内容WX_EXECUTE_ACTION/WX_DOM_BATCH一段时间执行一次WX_DOM_BATCH
WXDomHandler
onHostViewInitialized(mHost)
WXBridge
action
component.bindData(component)
accept
createViewImpl()
task.execute()
layout(rootDom)
initFramework
调用native层初始化-- initFramework注册DOM Module到native层-- registerDomModule
RenderActionTask
0 条评论
下一页