摘要:遠端代碼下發(fā),有什么設計思路一般大家都用用別人的,總不好。老王造了個輪子,我來描述一下。代碼,采用打包。蘋果自己實現(xiàn)的用到了,這個庫老王也使用了,,就是把一個語言暴露出來的接口,能讓其他語言來調(diào)用。
iOS 遠端代碼下發(fā),有什么設計思路 ?
一般大家都用 JSPatch?
用別人的,總不好。老王造了個輪子,我來描述一下。
怎么設計這個 Patch?
從原理上Patch 主要是 干什么的呢?
一般大公司的 App 在運行的過程當中,業(yè)務線非常復雜,可能會出現(xiàn)一些問題。
可以遠端下發(fā)一個文件,開發(fā)的 App 通過 加載 這個文件,
實行 這個 代碼 補丁。
OC 可以的,因為是動態(tài)語言,有 runtime ,所以才能搞這個 patch。
OC 有自己的消息轉發(fā)流程。 Runtime 有 objc_msgSend 和 _objc_msgForward 。
Runtime 有這兩個方法,
這兩個函數(shù)特性,讓所有的函數(shù)調(diào)用都會走這兩個方法。
這樣 app 中有一個 context, 可以執(zhí)行用于 patch 的語言。
本文中的 iOS 補丁方案直接運用 這個 JavaScriptCore,
就是使用 JavaScriptCore 提供的 JSContext.
能讓 JavaScript 語言 和 Objective-C 之間,有一個接口。然后就可以 JavaScript 與 Objective-C 相互調(diào)用了。
( 蘋果自己實現(xiàn)的 )
FFI, Foreign Function Interface ,就是把一個語言暴露出來的接口,能讓其他語言來調(diào)用。
Java 的 JNI 標準,與 FFI 比較相似。
FFI ,首先遵從 Coding Convention ,就是定義遵守一些調(diào)用的協(xié)議和規(guī)定。
為什么要有 FFI 呢?
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/95774.html
摘要:八年時間,阿里集團實現(xiàn)了內(nèi)部容器化鏡像化,經(jīng)歷了幾代演進。容器技術在阿里的演進過程伴隨著阿里技術架構本身的演進。 八年時間,阿里集團實現(xiàn)了 100%內(nèi)部容器化鏡像化,經(jīng)歷了幾代演進。本文將從最初的架構開始,向大家介紹下阿里內(nèi)部的容器化演化過程。 PouchContainer 現(xiàn)在服務于阿里巴巴集團和螞蟻金服集團的絕大部分 BU, 包括交易&中間件,B2B/CBU/ICBU,搜索廣告數(shù)據(jù)...
閱讀 1466·2021-09-02 13:57
閱讀 1882·2019-08-30 15:55
閱讀 2419·2019-08-30 15:54
閱讀 2259·2019-08-30 15:44
閱讀 2741·2019-08-30 13:18
閱讀 491·2019-08-30 13:02
閱讀 660·2019-08-29 18:46
閱讀 1673·2019-08-29 11:25