市面上的熱更新框架

JavaScriptCore
1、JavaCore本質(zhì)就是Java引擎砌溺,提供了執(zhí)行Java語言的環(huán)境涵卵,提供Java執(zhí)行所需的底層資源
2佣谐、JavaCore是一個(gè)C++實(shí)現(xiàn)的開源項(xiàng)目。使用Apple提供的JavaCore框架吮蛹,你可以在Objective-C或者基于C的程序中執(zhí)行Java代碼荤崇,也可以向Java環(huán)境中插入一些自定義的對(duì)象。JavaCore從iOS 7.0之后可以直接使用潮针。
3术荤、Java可以通過JavaScriptCore,獲取OC中對(duì)象的成員變量每篷、屬性和方法瓣戚,從而動(dòng)態(tài)更改OC代碼
4、鑒于以上特點(diǎn)焦读,許多跨平臺(tái)開發(fā)框架和熱更新框架內(nèi)部都用到JavaScriptCore子库,以支持OC與java的通信

JavaScriptCore內(nèi)部幾個(gè)重要的類

詳細(xì)的介紹和使用

  • JSVirtualMachine
    一個(gè)JSVirtualMachine的實(shí)例就是一個(gè)完整獨(dú)立的Java的執(zhí)行環(huán)境,為Java的執(zhí)行提供底層資源矗晃。
    這個(gè)類主要用來做兩件事情:
    1仑嗅、實(shí)現(xiàn)并發(fā)的Java執(zhí)行
    2、Java和Objective-C橋接對(duì)象的內(nèi)存管理
  • JSContext
    一個(gè)JSContext對(duì)象代表一個(gè)Java執(zhí)行環(huán)境张症。在native代碼中仓技,使用JSContext去執(zhí)行JS代碼,訪問JS中定義或者計(jì)算的值吠冤,并使Java可以訪問native的對(duì)象浑彰、方法、函數(shù)拯辙。
  • JSValue
    一個(gè)JSValue實(shí)例就是一個(gè)Java值的引用郭变。使用JSValue類在Java和native代碼之間轉(zhuǎn)換一些基本類型的數(shù)據(jù)(比如數(shù)值和字符串)颜价。你也可以使用這個(gè)類去創(chuàng)建包裝了自定義類的native對(duì)象的Java對(duì)象,或者創(chuàng)建由native方法或者block實(shí)現(xiàn)的Java函數(shù)诉濒。
  • JSExport
    JSExport協(xié)議提供了一種聲明式的方法去向Java代碼導(dǎo)出Objective-C的實(shí)例類及其實(shí)例方法周伦,類方法和屬性。

JSPatch 騰訊iOS高級(jí)工程師bang
JSPatch 是一個(gè)開源項(xiàng)目(Github鏈接)未荒,只需要在項(xiàng)目里引入極小的引擎文件专挪,就可以使用 JavaScript 調(diào)用任何 Objective-C 的原生接口,替換任意 Objective-C 原生方法片排。目前主要用于下發(fā) JS 腳本替換原生 Objective-C 代碼寨腔,實(shí)時(shí)修復(fù)線上 bug。原理:JS傳遞字符串給OC率寡,OC通過 Runtime 接口調(diào)用和替換OC方法迫卢。JS與OC的消息傳遞即通信用的是Apple提供的JavaScriptCore的API。

lua腳本
比如: wax冶共。熱更新時(shí)乾蛤,從服務(wù)器拉去lua腳本。游戲開發(fā)經(jīng)常用到捅僵。

Weex
跨平臺(tái)家卖,一套代碼,iOS庙楚、Android都可以運(yùn)行上荡。用前端語法實(shí)現(xiàn)原生效果。比React Native更好用馒闷。
weex基于vue.js榛臼,ReactNative基于React。
ReactNative安裝配置麻煩窜司。 weex安裝cli之后就可以使用。
react模板JSX有一定的學(xué)習(xí)成本航揉,vue和常用的web開發(fā)類似塞祈,模板是普通的html,數(shù)據(jù)綁定用mustache風(fēng)格帅涂,樣式直接使用css议薪。
淘寶干的漂亮,中國在編碼的實(shí)力越來越牛叉了媳友。威武K挂椤!醇锚!

React Native 哼御, Facebook
不像Weex能一套代碼多端運(yùn)行坯临,需要自己分別做修改。
React Native 基于React開發(fā)的用web技術(shù)達(dá)到native的交互效果的可擴(kuò)展組件恋昼,實(shí)現(xiàn)跨平臺(tái)開發(fā)看靠。 可以動(dòng)態(tài)添加業(yè)務(wù)模塊,但無法做到修改原生OC代碼液肌。JSPatch挟炬、lua 配合React Native可以讓一個(gè)原生APP時(shí)刻處于可擴(kuò)展可修改的狀態(tài)。電商大公司淘寶京東等有用

Hybrid
像PhoneGap之類的框架, 基本概念和web差不多, 通過更新js/html來實(shí)現(xiàn)動(dòng)態(tài)化嗦哆,沒有原生的效果流暢谤祖。

動(dòng)態(tài)庫
可以做demo用,真實(shí)使用的時(shí)候會(huì)被蘋果禁止老速。
因?yàn)?打包發(fā)到AppStore的ipa安裝包 里的每個(gè)動(dòng)態(tài)庫 都有唯一的編碼粥喜,iOS系統(tǒng)會(huì)進(jìn)行驗(yàn)證,所以動(dòng)態(tài)通過網(wǎng)絡(luò)獲取 新的動(dòng)態(tài)庫 也用不了烁峭。

rollout.io
Rollout緊急修復(fù)線上bug容客。后端有相關(guān)的管理頁面。因?yàn)槭菄獾木W(wǎng)站约郁,然后呢缩挑,要FQ才能使用。

DynamicCocoa 鬓梅, 滴滴
DynamicCocoa供置,是滴滴 App 架構(gòu)組自研的 iOS 動(dòng)態(tài)化方案,可以讓現(xiàn)有的 Objective-C 代碼轉(zhuǎn)換生成中間代碼(JS)绽快,下發(fā)后動(dòng)態(tài)執(zhí)行芥丧。計(jì)劃于 2017 年初開源。

相比其他動(dòng)態(tài)化方案坊罢,DynamicCocoa 優(yōu)勢(shì)在于

  • 使用原生技術(shù)棧:使用者完全不用接觸到 JS 或任何中間代碼续担,保持原生的 Objective-C 開發(fā)、調(diào)試方式不變
  • 無需重寫已有代碼:已有 native 模塊能很方便的變成動(dòng)態(tài)化插件
  • 語法支持完備性高:支持絕大多數(shù)日常開發(fā)中用到的語法活孩,不用擔(dān)心這不支持那不支持
  • 支持 HotPatch:改完 bug 后直接從源碼打出 patch物遇,一站式解決動(dòng)態(tài)化和熱修復(fù)需求
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市憾儒,隨后出現(xiàn)的幾起案子询兴,更是在濱河造成了極大的恐慌,老刑警劉巖起趾,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诗舰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡训裆,警方通過查閱死者的電腦和手機(jī)眶根,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門蜀铲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人汛闸,你說我怎么就攤上這事蝙茶。” “怎么了诸老?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵隆夯,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我别伏,道長(zhǎng)蹄衷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任厘肮,我火速辦了婚禮愧口,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘类茂。我一直安慰自己耍属,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布巩检。 她就那樣靜靜地躺著厚骗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兢哭。 梳的紋絲不亂的頭發(fā)上领舰,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音迟螺,去河邊找鬼冲秽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛矩父,可吹牛的內(nèi)容都是我干的锉桑。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼窍株,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼刨仑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起夹姥,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辙诞,沒想到半個(gè)月后辙售,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡飞涂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年旦部,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了祈搜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡士八,死狀恐怖容燕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情婚度,我是刑警寧澤蘸秘,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站蝗茁,受9級(jí)特大地震影響醋虏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哮翘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一颈嚼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧饭寺,春花似錦阻课、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至旬薯,卻和暖如春晰骑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绊序。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國打工硕舆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人骤公。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓抚官,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親阶捆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子凌节,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

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