亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

iOS 遠(yuǎn)端代碼下發(fā): 使用 JS 設(shè)計(jì) Patch

yeooo / 1080人閱讀

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

iOS 遠(yuǎn)端代碼下發(fā),有什么設(shè)計(jì)思路 ?

一般大家都用 JSPatch?

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

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

怎么設(shè)計(jì)這個(gè) Patch?

從原理上

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

這個(gè)時(shí)候,打補(bǔ)丁比較好

可以遠(yuǎn)端下發(fā)一個(gè)文件,開發(fā)的 App 通過 加載 這個(gè)文件,
實(shí)行 這個(gè) 代碼 補(bǔ)丁。

這個(gè)樣子,就可以通過遠(yuǎn)端, 把這個(gè)代碼, 在開發(fā)的 app 運(yùn)行當(dāng)中,給執(zhí)行過來,

OC 可以的,因?yàn)槭莿?dòng)態(tài)語言,有 runtime ,所以才能搞這個(gè) patch。

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

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

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

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

JSPatch 用到了 FFI,這個(gè)庫(kù)老王 Patch 也使用了 FFI .

FFI, Foreign Function Interface ,就是把一個(gè)語言暴露出來的接口,能讓其他語言來調(diào)用。
Java 的 JNI 標(biāo)準(zhǔn),與 FFI 比較相似。
FFI ,首先遵從 Coding Convention ,就是定義遵守一些調(diào)用的協(xié)議和規(guī)定。
為什么要有 FFI 呢?

舉個(gè)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/95774.html

相關(guān)文章

  • 阿里如何實(shí)現(xiàn)100%容器化鏡像化?八年技術(shù)演進(jìn)之路回顧

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

    tyheist 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<