iOS实现热修复的几种方案
来源:互联网 发布:基坑监测数据处理软件 编辑:程序博客网 时间:2024/06/11 16:33
最近,在调研热修复技术,也称作热更新技术。由于苹果审核周期有时候比较长,这是公司无法忍受的,所以热修复技术应运而生。经过查阅多方面的资料,进行如下总结,希望对大家有所帮助。
现在比较流行的热修复技术:
一、使用JSPatch进行热修复。
JSPatch能做到通过JS调用和改写OC方法。最根本的原因是 Objective-C 是动态语言,OC上所有方法的调用/类的生成都通过 Objective-C Runtime 在运行时进行,我们可以通过类名和方法名反射得到相应的类和方法,也可以替换某个类的方法为新的实现,还可以新注册一个类,为类添加方法。JSPatch 的原理就是:JS传递字符串给OC,OC通过 Runtime 接口调用和替换OC方法。
看了一下JSPatch的源码,主要就是通过OC的runtime原理,使用JS语句实现动态更改OC源码的目的,类似C++中的多态性。
JSPathch是一个开源项目,在github上,下载地址:JSPatch下载地址。里边有相关文档,简单易懂。另外。这里有一篇JSPatch作者写的实现原理,解释的还是蛮不错的,博客地址:JSPatch实现原理。
同时在这里给大家一个比较好的网站 ,OC转JS工具,这是一个OC转JS的一个工具网站。
具体实现参考博客:http://www.jianshu.com/p/8cec322531ae
二、使用ReactNative实现热修复。
ReactNative是facebook提供的一种开源框架,使用JS语法进行跨平台开发,深受开发者青睐。直接使用ReactNative实现热修复的好像不是很多,比较流行的是使用微软的CodePush。
这个是CodePush 的官方网站地址,这个是CodePushGitHut地址。
具体实现参考博客:http://blog.csdn.net/u011151353/article/details/50688681
三、使用Lua+Wax打补丁的方案实现热修复。
使用Lua+Wax打补丁的方案,App需要集成Lua解释器和Wax框架(接近1M)。不过waxPatch对Block不太完善,多线程补丁也可能有问题,Wax也已经两年没人维护了,而且Lua调试起来也不方便。
原文链接:http://blog.csdn.net/u013602835/article/details/52777852
- iOS实现热修复的几种方案
- iOS实现热修复的几种方案
- IOS热修复之 JSPatch 实现方案
- Android 几种流行热修复方案整理
- JAndFix: 基于Java实现的Android实时热修复方案
- iOS多线程实现的几种方案
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- Android热修复:Andfix和Hotfix,两种方案的比较与实现
- ios 热修复的方式
- iOS利用JSPatch实现热修复的前后台代码
- iOS 使用JSPatch实现APP线上修复的热更新
- 关于Android热修复的几种解决方案
- 【热修复现有方案的比较】
- Highcharts, PHP制作实时更新的动态线性图
- java使用redis时,中文乱码问题
- Spring整合JMS(消息中间件)实例
- java SSM框架批量上传实现
- 算法总结(二)图
- iOS实现热修复的几种方案
- Android读取桌面安装的应用
- Linux文件描述符(特别概念三)
- Universal-Image-Loader类库使用
- Linux PHY几个状态的跟踪
- spring cloud微服务框架 第二天
- Ext系列form控件篇
- Oracle 11gR2 RAC Database使用emca配置集群dbconsole
- android 仿QQ音乐建议反馈上方的提示动画效果,渐隐