成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

iOS 遠端代碼下發(fā): 使用 JS 設計 Patch

yeooo / 1037人閱讀

摘要:遠端代碼下發(fā),有什么設計思路一般大家都用用別人的,總不好。老王造了個輪子,我來描述一下。代碼,采用打包。蘋果自己實現(xiàn)的用到了,這個庫老王也使用了,,就是把一個語言暴露出來的接口,能讓其他語言來調(diào)用。

iOS 遠端代碼下發(fā),有什么設計思路 ?

一般大家都用 JSPatch?

用別人的,總不好。老王造了個輪子,我來描述一下。

老王 Patch, 挺先進的。JavaScript 代碼, 采用 WebPack 打包。也參考了 JSPatch ,

怎么設計這個 Patch?

從原理上

Patch 主要是 干什么的呢?
一般大公司的 App 在運行的過程當中,業(yè)務線非常復雜,可能會出現(xiàn)一些問題。

這個時候,打補丁比較好

可以遠端下發(fā)一個文件,開發(fā)的 App 通過 加載 這個文件,
實行 這個 代碼 補丁。

這個樣子,就可以通過遠端, 把這個代碼, 在開發(fā)的 app 運行當中,給執(zhí)行過來,

OC 可以的,因為是動態(tài)語言,有 runtime ,所以才能搞這個 patch。

OC 有自己的消息轉發(fā)流程。 Runtime 有 objc_msgSend_objc_msgForward 。
Runtime 有這兩個方法,
這兩個函數(shù)特性,讓所有的函數(shù)調(diào)用都會走這兩個方法。

這樣就可以干一些 patch 的事情。
另外一點, 在 App 中植入了這個 patch ,他所使用的語言,能夠被 eval 。 eval, 判斷代碼語句可以執(zhí)行

這樣 app 中有一個 context, 可以執(zhí)行用于 patch 的語言。

本文中的 iOS 補丁方案直接運用 這個 JavaScriptCore,
就是使用 JavaScriptCore 提供的 JSContext.
能讓 JavaScript 語言 和 Objective-C 之間,有一個接口。然后就可以 JavaScript 與 Objective-C 相互調(diào)用了。
( 蘋果自己實現(xiàn)的 )

JSPatch 用到了 FFI,這個庫老王 Patch 也使用了 FFI .

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)100%容器化鏡像化?八年技術演進之路回顧

    摘要:八年時間,阿里集團實現(xiàn)了內(nèi)部容器化鏡像化,經(jīng)歷了幾代演進。容器技術在阿里的演進過程伴隨著阿里技術架構本身的演進。 八年時間,阿里集團實現(xiàn)了 100%內(nèi)部容器化鏡像化,經(jīng)歷了幾代演進。本文將從最初的架構開始,向大家介紹下阿里內(nèi)部的容器化演化過程。 PouchContainer 現(xiàn)在服務于阿里巴巴集團和螞蟻金服集團的絕大部分 BU, 包括交易&中間件,B2B/CBU/ICBU,搜索廣告數(shù)據(jù)...

    tyheist 評論0 收藏0

發(fā)表評論

0條評論

yeooo

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<