发展进程
开源方案只有JSPath。
严重期待DynamicCocoa开源实现原生oc到js转换。
OCS史上最疯狂的 iOS 动态化方案
是否开放:NO
开发团队:SNG - OCS团队**
开放时间:**2016-12-29
是否维护: yes
应用方向: 补丁/ 功能插件化
原理:
OCS是全新设计的iOS动态化方案。我们定义了一套精确描述OC语义的字节码指令集(OCScript),开发了一套全自动编译器(OCSCompiler),实现了一个高性能的虚拟机(OCSVM)以及一个可以跟底层无缝对接的桥接器(OCSBridge)。我们首先使用OCS编译器把OC源码转化成OCS字节码,然后通过OCS桥接器实现OCS虚拟机与Native运行时的互联,最后使用OCS虚拟机对OCS字节码进行解释运算,并驱动Native运行时完成逻辑的执行,以此达到Native代码动态化的效果。OCS被用于iOS APP安装包减包、功能插件化、HotPatch等方方面面动态化需求。
DynamicCocoa - 预计2017年初
是否开放:yes
开发团队:滴滴出行客户端App架构团队
开放时间:预计2017年初
是否维护: yes
应用方向: 功能、补丁
原理:
实现JS和OC的互调;NA端内置引擎;
Native代码,资源通过python工具
打包成动态包bundle用于引擎解析;
优势:
使用原生技术栈;
无需重写已有代码;
语法支持完备性高;
支持HotPatch
主要缺陷:
参考:
滴滴 iOS 动态化方案 DynamicCocoa 的诞生与起航
TPatch - 2015.10
是否开放:NO
开发团队:QQ空间终端开发团队
开放时间:2015.10
是否维护: yes
应用方向: 补丁
原理:
实现JS和OC的互调;
NA端内置引擎;
技术栈JS脚本;
优势:
可实现方法粒度的线上代码替换,能修复一切代码引起的Bug
主要缺陷:
JSPatch - 2015.5
是否开放:yes
开发团队:腾讯广研高级iOS开发@bang的个人项目
开放时间:2015.5
是否维护: yes
应用方向: 补丁
原理:
实现JS和OC的互调;
NA端内置引擎;
技术栈JS脚本;
优势:
可实现方法粒度的线上代码替换,能修复一切代码引起的Bug
主要缺陷:
参考:
http://www.jianshu.com/p/0cb81bf23d7a
https://github.com/bang590/JSPatch