国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

iOS 遠端代碼下發: 使用 JS 設計 Patch

yeooo / 1030人閱讀

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

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

一般大家都用 JSPatch?

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

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

怎么設計這個 Patch?

從原理上

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

這個時候,打補丁比較好

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

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

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

OC 有自己的消息轉發流程。 Runtime 有 objc_msgSend_objc_msgForward
Runtime 有這兩個方法,
這兩個函數特性,讓所有的函數調用都會走這兩個方法。

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

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

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

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

FFI, Foreign Function Interface ,就是把一個語言暴露出來的接口,能讓其他語言來調用。
Java 的 JNI 標準,與 FFI 比較相似。
FFI ,首先遵從 Coding Convention ,就是定義遵守一些調用的協議和規定。
為什么要有 FFI 呢?

舉個

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95774.html

相關文章

  • 阿里如何實現100%容器化鏡像化?八年技術演進之路回顧

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

    tyheist 評論0 收藏0

發表評論

0條評論

yeooo

|高級講師

TA的文章

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