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 就走 ,否则走 。
jspatch功能解析的更多相关文章
- SQL Server 数据加密功能解析
SQL Server 数据加密功能解析 转载自: 腾云阁 https://www.qcloud.com/community/article/194 数据加密是数据库被破解.物理介质被盗.备份被窃取的最 ...
- 微信小程序0.11.122100版本新功能解析
微信小程序0.11.122100版本新功能解析 新版本就不再吐槽了,整的自己跟个愤青似的.人老了,喷不动了,把机会留给年轻人吧.下午随着新版本开放,微信居然破天荒的开放了开发者论坛.我很是担心官方 ...
- Unity5 新功能解析--物理渲染与standard shader
Unity5 新功能解析--物理渲染与standard shader http://blog.csdn.net/leonwei/article/details/48395061 物理渲染是UNITY5 ...
- 【原创】Matlab中plot函数全功能解析
[原创]Matlab中plot函数全功能解析 该帖由Matlab技术论(http://www.matlabsky.com)坛原创,更多精彩内容参见http://www.matlabsky.com 功能 ...
- Matlab中plot函数全功能解析
Matlab中plot函数全功能解析 功能 二维曲线绘图 语法 plot(Y)plot(X1,Y1,...)plot(X1,Y1,LineSpec,...)plot(...,'PropertyName ...
- [国嵌攻略][047][MMU功能解析]
MMU功能解析 1.Memory Management Unit(存储器管理单元) 2.两个进程读取同一个地址能读到不同的值.因为进程访问的是虚拟地址,通过MMU转换成不同的物理地址.不同的进程通过M ...
- Lemon OA第2篇:功能解析方法
Lemon OA,整个系统功能也算是比较丰富,OA的很多功能都能看见影子,虽然做得不是很强大 接触Lemon OA,起源于Activiti的学习热情,既然这样,研究Lemon OA的目标有3: 1.L ...
- java -D 参数功能解析
我们都知道在启动tomcat或直接执行java命令的时候可以通过参数-XX等来配置虚拟机的大小,同样,也应该留意到java -Dkey=value的参数.那么这个参数是什么作用呢? 使用案例 其实,在 ...
- HTML5新表单新功能解析
HTML5新增了很多属性功能.但是有兼容性问题,因为这些表单功能新增的.我这里做了一个简单的练习,方便参考.如果完全兼容的话,那我们写表单的时候就省了很多代码以及各种判断. <!DOCTYPE ...
随机推荐
- android 第三方开源库 学习汇总之Butter Knife
如果直接在App中使用,那么只需要在app的build.gradle中添加即可. android { ... // Butterknife requires Java 8. compileOption ...
- Lua语法要点2
[Lua语法要点2] 1.Lua函数 function 可以添加 local 关键字.添加后为局部函数,不添加(默认)为全局函数.return 可以返回多个返回值,以, 分隔. 使用 ... 来表示变 ...
- Mac下搭建Appnium+Python+Ios模拟器环境
转载:https://www.jianshu.com/p/f7cf077d9444 https://blog.csdn.net/a158123/article/details/79684499 htt ...
- RF元素定位的例子
Execute Javascript $("input[type='button']").click() Comment Click Button css=input.login_ ...
- [Algorithm] 118. Pascal's Triangle
Given a non-negative integer numRows, generate the first numRows of Pascal's triangle. In Pascal's t ...
- q1095
一,写题 1,我这个递归的错误我挺想搞出来的 int fa(int x) { ) return cnt; ==) { x=x/; cout<<"测试1:"<< ...
- 云服务器使用: 购买域名,域名绑定IP
有没有不知道域名是什么的,但是大家一定知道访问域名就是访问绑定在域名上的IP地址 域名有个好处就是一个域名可以绑定多个IP. 举个例子:百度的域名是https://www.baidu.com/ 然后咱 ...
- 用js写个原生的ajax过程
var xhr=new XMLHttpRequset(); xhr.addEventListener("load",loadHandler); xhr.open("GET ...
- Vue中的v-bind指令
普通: property="value" 此时 value为字符串 v-bind指令 v-bind:property="value" 此时 value会被解析成 ...
- 2019qbxtCSP-S2 模拟题1
T1 \(solution\) 求出第一个开始下降的位置,移动到连续的与它相同的数的最前面的一个数的位置,记录为\(p\) \(p\)以前的位置的数与原数相同,\(p\)位置为原数-1,后面全部为9 ...