一、三个模型:
1、补丁:运行时结构维护模型;
2、通信模型
3、解释模型:运行时
二、js、oc分层解释调用
js模块与oc模块的关系
1、oc调用js的配置信息完成配置;
2、oc运行时重定位到js功能代码;
3、js功能代码被oc端解释为oc代码并执行;
oc解释为js:
overrideMethod
_objc_msgForward
forwardInvocation
JPForwardInvocation
callWithArguments
js解释为oc:
_methodFunc
_OC_callC
callSelector
三、js对执行环境代码的区别
_c(func)():oc端代码;
func():js端代码
四、生命周期:
1、配置维护阶段
1)结构维护
defineClass
_OC_defineClass
2)运行时结构维护:
overrideMethod
2、解释执行阶段
_methodFunc
oc端对js_oc语句的解释执行
_OC_callC
callSelector
callWithArguments
ForwardInvocation
所以最终的处理是,在非 arm64 下,是 special struct 就走 ,否则走 。