美文网首页
JSPatch实现原理解析

JSPatch实现原理解析

作者: Chris_C | 来源:发表于2017-02-22 07:03 被阅读54次
JSPatch

        JSPatch是一个iOS动态更新框架,只需要在项目中引入极小引擎,就可以使用javascript调用任何Objective-c原生接口,获得脚本语言的优势:为项目动态加载模块,或替换项目原生代码修复bug。

基础原理

JSPatch能够通过JS调用和改写OC方法最根本的原因是Objective-C是动态语言,OC上所有方法的调用/类的生成都通过Objective-C Runtime在运行时进行,我们可以通过类名/方法名反射得道相应的类和方法:

Class class =     NSClassFromString("UIViewController");
id viewController = [[class alloc]init];
SEL selector =     NSSelectorFromString("viewDidLoad");

也可以替换某个类的方法为新的实现:

static void newViewDidLoad(id self,SEL sel){}
class_replaceMethod(class,selector,newViewDidLoad,@"");

还可以新注册一个类,为类添加方法:

Class cls = objc_allocateClassPair(superCls,"JPObject",0);
objc_registerClassPair(cls);
class_addMethod(cos,selector,implement,typedesc);
总结

JSPatch的基本原理:JS传递字符串给OC,OC通过Runtime接口调用和替换OC方法。这是最基础原理

方法调用

相关文章

  • JSPatch

    官方原理:https://github.com/bang590/JSPatch/wiki/JSPatch-实现原理...

  • JSPatch实现原理解析

    JSPatch JSPatch是一个iOS动态更新框架,只需要在项目中引入极小引擎,就可以使用javascript...

  • 十七、weex

    十七、weex 1.实现原理 2.热更新技术,JSPatch

  • JSPatch原理解析(一)

    本篇开始以JSPatch给的demo代码为例按流程讲解JSPatch的实现原理首先在iOS的demo中在appde...

  • JSPatch 浅探

    前言 JSPatch下载地址自己实现JSPatch的功能 修改JSPatch JSPatch简介 JSPatch ...

  • JSPatch实现原理概述

    本着追本溯源的思想(以及面试官的要求……),结合JSPatch作者对JSPatch原理的解释,说一说个人对JSPa...

  • JSPatch实现原理详解

    转载:原文链接 http://blog.cnbang.net/tech/2808/ JSPatch以小巧的体积做到...

  • 好的博客或是文章收集

    iOS 逆向工程资料整理 http://dev.qq.com JSPatch实现原理详解:http://blog....

  • JSPatch原理解析(二)

    由于执行了demo.js这个js文件,接下来就要转到这个文件中去查看它的调用过程,demo.js里面写了两个方法调...

  • CopyOnWriteArrayList

    实现原理 源码解析 面试

网友评论

      本文标题:JSPatch实现原理解析

      本文链接:https://www.haomeiwen.com/subject/uwazuttx.html