成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

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

yeooo / 1083人閱讀

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

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

一般大家都用 JSPatch?

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

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

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

從原理上

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

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

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

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

OC 可以的,因?yàn)槭莿?dòng)態(tài)語(yǔ)言,有 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 ,他所使用的語(yǔ)言,能夠被 eval 。 eval, 判斷代碼語(yǔ)句可以執(zhí)行

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

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

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

FFI, Foreign Function Interface ,就是把一個(gè)語(yǔ)言暴露出來(lái)的接口,能讓其他語(yǔ)言來(lái)調(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://m.hztianpu.com/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)過(guò)程伴隨著阿里技術(shù)架構(gòu)本身的演進(jìn)。 八年時(shí)間,阿里集團(tuán)實(shí)現(xiàn)了 100%內(nèi)部容器化鏡像化,經(jīng)歷了幾代演進(jìn)。本文將從最初的架構(gòu)開(kāi)始,向大家介紹下阿里內(nèi)部的容器化演化過(guò)程。 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元查看
<