2018-05-06 Patch, 代碼補(bǔ)丁

主題: 怎么從原理上臀蛛, 設(shè)計這個 Patch

王宇 patch 視頻



Patch 是干什么的呢刊殉?

app 在運(yùn)行的過程中,會出現(xiàn)一些問題炮车。 你可以通過遠(yuǎn)端下發(fā)補(bǔ)丁文件舵变,
你的 app 可以通過加載這個文件,就可以給有問題的代碼打上補(bǔ)丁瘦穆。



實(shí)現(xiàn) Patch 的要素

  • app 使用的語言纪隙,有被注入的可能性。

相當(dāng)于扛或,通過遠(yuǎn)端下發(fā)代碼绵咱,可以把在 app 中運(yùn)行的代碼,給覆蓋/替換執(zhí)行了熙兔。
Java / OC , 都具備這種特性悲伶。具備這種要素, 才能實(shí)現(xiàn) patch.



  • 在 app 中植入黔姜,能夠 eval Patch 使用語言的 context

JavaScript eval() 函數(shù)
eval() 函數(shù)可計算某個字符串拢切,并執(zhí)行其中的的 JavaScript 代碼。

資料鏈接


在 app 中秆吵,植入了 patch.
所使用的語言淮椰, 都能被 eval 的。
換句話說,app 里面有一個 context, 可以執(zhí)行 context 里面的語言主穗。



拓展閱讀:

當(dāng)然泻拦, 你自己寫一個 DSL ,可不可以呢忽媒?
可以的争拐。

自己寫的 DSL 難。
也許有一些局限性晦雨,可能有一些場景考慮不周架曹。

用現(xiàn)成的語言,做 app 的熱更新闹瞧,就方便多了绑雄。

譬如:

  • Rua
  • Ruby
  • JS


iOS 可以利用的特性:

王宇 patch , 的原理, 同 JSPatch 的原理奥邮,基本相同万牺。

ObjC 語言的 runtime

OC 特有的 ObjC runtime.

有一個自己的消息轉(zhuǎn)發(fā)流程。

有自己的 msgSend 洽腺, 和 msgForward

objc_msgSend 資料鏈接

objc_msgForward 資料鏈接

JSContext



自定義 "FFI"

node-ffi 資料

lua ffi 資料

預(yù)編譯

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脚粟,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蘸朋,更是在濱河造成了極大的恐慌核无,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件藕坯,死亡現(xiàn)場離奇詭異厕宗,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)堕担,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門已慢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人霹购,你說我怎么就攤上這事佑惠。” “怎么了齐疙?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵膜楷,是天一觀的道長。 經(jīng)常有香客問我贞奋,道長赌厅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任轿塔,我火速辦了婚禮特愿,結(jié)果婚禮上仲墨,老公的妹妹穿的比我還像新娘。我一直安慰自己揍障,他們只是感情好目养,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著毒嫡,像睡著了一般癌蚁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上兜畸,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天努释,我揣著相機(jī)與錄音,去河邊找鬼咬摇。 笑死洽洁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的菲嘴。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼汰翠,長吁一口氣:“原來是場噩夢啊……” “哼龄坪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起复唤,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤健田,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后佛纫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妓局,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年呈宇,在試婚紗的時候發(fā)現(xiàn)自己被綠了好爬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡甥啄,死狀恐怖存炮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蜈漓,我是刑警寧澤穆桂,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站融虽,受9級特大地震影響享完,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜有额,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一般又、第九天 我趴在偏房一處隱蔽的房頂上張望彼绷。 院中可真熱鬧,春花似錦倒源、人聲如沸苛预。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽热某。三九已至,卻和暖如春胳螟,著一層夾襖步出監(jiān)牢的瞬間昔馋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工糖耸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秘遏,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓嘉竟,卻偏偏與公主長得像邦危,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子舍扰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,510評論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫倦蚪、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,024評論 4 62
  • 昨一朋友說边苹,換工作之后你變了陵且,變得都不像你了。 我第一反應(yīng)个束,不對慕购!我不是為了你對我的固有印象而活! 原本我可以浩浩...
    e137ceaa64cf閱讀 664評論 1 0
  • 記得上中學(xué)的時候,在村里看到的一幅畫面阱表,一直根植于腦海可训,揮之不去。那是一個婦人捶枢,衣不蔽體握截,渾身骯臟,手上拿著一...
    木木向陽閱讀 918評論 1 15
  • 今日重要的事情 很多人覺得節(jié)日送禮才有意義烂叔,我認(rèn)識一個人就喜歡在普通的日子里給他人送禮谨胞。什么手工,書籍蒜鸡,看見的小禮...
    飄渺_d65f閱讀 516評論 8 5