摘要:遠端代碼下發,有什么設計思路一般大家都用用別人的,總不好。老王造了個輪子,我來描述一下。代碼,采用打包。蘋果自己實現的用到了,這個庫老王也使用了,,就是把一個語言暴露出來的接口,能讓其他語言來調用。
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 呢?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95774.html
摘要:八年時間,阿里集團實現了內部容器化鏡像化,經歷了幾代演進。容器技術在阿里的演進過程伴隨著阿里技術架構本身的演進。 八年時間,阿里集團實現了 100%內部容器化鏡像化,經歷了幾代演進。本文將從最初的架構開始,向大家介紹下阿里內部的容器化演化過程。 PouchContainer 現在服務于阿里巴巴集團和螞蟻金服集團的絕大部分 BU, 包括交易&中間件,B2B/CBU/ICBU,搜索廣告數據...
閱讀 1456·2021-09-02 13:57
閱讀 1870·2019-08-30 15:55
閱讀 2407·2019-08-30 15:54
閱讀 2241·2019-08-30 15:44
閱讀 2733·2019-08-30 13:18
閱讀 480·2019-08-30 13:02
閱讀 628·2019-08-29 18:46
閱讀 1665·2019-08-29 11:25