摘要:远端代码下发,有什么设计思路一般大家都用用别人的,总不好。老王造了个轮子,我来描述一下。代码,采用打包。苹果自己实现的用到了,这个库老王也使用了,,就是把一个语言暴露出来的接口,能让其他语言来调用。
iOS 远端代码下发,有什么设计思路 ?
一般大家都用 JSPatch?
用别人的,总不好。老王造了个轮子,我来描述一下。
怎么设计这个 Patch?
从原理上Patch 主要是 干什么的呢?
一般大公司的 App 在运行的过程当中,业务线非常复杂,可能会出现一些问题。
可以远端下发一个文件,开发的 App 通过 加载 这个文件,
实行 这个 代码 补丁。
OC 可以的,因为是动态语言,有 runtime ,所以才能搞这个 patch。
OC 有自己的消息转发流程。 Runtime 有 objc_msgSend 和 _objc_msgForward 。
Runtime 有这两个方法,
这两个函数特性,让所有的函数调用都会走这两个方法。
这样 app 中有一个 context, 可以执行用于 patch 的语言。
本文中的 iOS 补丁方案直接运用 这个 JavaScriptCore,
就是使用 JavaScriptCore 提供的 JSContext.
能让 JavaScript 语言 和 Objective-C 之间,有一个接口。然后就可以 JavaScript 与 Objective-C 相互调用了。
( 苹果自己实现的 )
FFI, Foreign Function Interface ,就是把一个语言暴露出来的接口,能让其他语言来调用。
Java 的 JNI 标准,与 FFI 比较相似。
FFI ,首先遵从 Coding Convention ,就是定义遵守一些调用的协议和规定。
为什么要有 FFI 呢?
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/95774.html
摘要:八年时间,阿里集团实现了内部容器化镜像化,经历了几代演进。容器技术在阿里的演进过程伴随着阿里技术架构本身的演进。 八年时间,阿里集团实现了 100%内部容器化镜像化,经历了几代演进。本文将从最初的架构开始,向大家介绍下阿里内部的容器化演化过程。 PouchContainer 现在服务于阿里巴巴集团和蚂蚁金服集团的绝大部分 BU, 包括交易&中间件,B2B/CBU/ICBU,搜索广告数据...
阅读 1455·2021-09-02 13:57
阅读 1869·2019-08-30 15:55
阅读 2406·2019-08-30 15:54
阅读 2239·2019-08-30 15:44
阅读 2732·2019-08-30 13:18
阅读 478·2019-08-30 13:02
阅读 625·2019-08-29 18:46
阅读 1663·2019-08-29 11:25