jspatch功能解析

一、三个模型:

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 就走 ,否则走 。

 

posted @ 2019-10-15 15:24  zzfx  阅读(187)  评论(0编辑  收藏  举报