1、熱更新(熱修復(fù))是什么痛倚?有什么作用规婆?
1.1 在我印象里,對(duì)熱插拔有一點(diǎn)印象蝉稳,熱修復(fù)都沒聽說過抒蚜,對(duì)于弄懂什么叫熱更新、熱修復(fù)就很關(guān)鍵了耘戚。熱插拔的意思為:通著電進(jìn)行一些零件的插拔嗡髓,比如說,臺(tái)式機(jī)開機(jī)運(yùn)行我們插拔鼠標(biāo)收津,手機(jī)開機(jī)安裝取出SIM卡器贩。那熱修復(fù)就是在iOS的應(yīng)用上線之后,不斷電(不下線)的修復(fù)它朋截,更新它蛹稍。
1.2 如果iOS的app上線之后發(fā)現(xiàn)了一個(gè)極其隱蔽的bug,就只能通過再次修改再上線來解決這個(gè)問題了部服,iOS特有的審核會(huì)延長(zhǎng)這個(gè)周期唆姐,所以,如果我們有了熱修復(fù)的功能廓八,在iOSapp上線之后發(fā)現(xiàn)了bug奉芦,我們可以通過修改.js的文件來修復(fù)出現(xiàn)的問題。
2剧蹂、用什么声功?如何使用?
2.1 因?yàn)轫?xiàng)目里引入了bugly的崩潰日志報(bào)告宠叼,確實(shí)值得推薦使用先巴,信息很詳細(xì)其爵。巧的是,bugly包含了熱更新的SDK伸蚯,bugly熱更新的核心是基于JSPatch的摩渺,patch的中文意思為補(bǔ)丁。
2.2 關(guān)于如何導(dǎo)入或者集成就需要看詳細(xì)的官方文檔了剂邮。
在項(xiàng)目中新建了.js文件摇幻,項(xiàng)目上線之后,我們需要通過bugly的平臺(tái)挥萌,去上傳修改好的腳本文件(壓縮)绰姻,如果是首次運(yùn)行應(yīng)用應(yīng)該不會(huì)立即更新,推測(cè)此時(shí)在下載補(bǔ)丁引瀑。第二次運(yùn)行就可以看到效果了龙宏。
3 重點(diǎn)為如何編輯使用.js文件
3.1 JSPatch很類似JS語法,但是畢竟不是JS語法伤疙,一些JS的高級(jí)用法還是無法進(jìn)行使用银酗。
關(guān)于腳本語言的一些理解:腳本語言是為了縮短傳統(tǒng)的編寫-編譯-鏈接-運(yùn)行(edit-compile-link-run)過程而創(chuàng)建的計(jì)算機(jī)編程語言。由解釋器(虛擬器)負(fù)責(zé)解釋說明翻譯徒像。腳本語言也稱膠水語言黍特,用來連接軟件組件的程序設(shè)計(jì)性語言,可以調(diào)用別的語言編寫的功能模塊锯蛀,結(jié)合在一起形成更高效的新程序灭衷。
腳本語言介于標(biāo)記語言和編程語言之間,腳本語言不需要編譯旁涤,可以直接用翔曲,由解釋器來負(fù)責(zé)解釋。
編譯型語言寫的程序執(zhí)行之前劈愚,需要專門的一個(gè)編譯過程瞳遍,把程序編譯成機(jī)器語言的文件,比如.exe文件菌羽,以后要運(yùn)行就不需要重新編譯了掠械,直接使用編譯的結(jié)果就好了(exe文件),因?yàn)榉g只做了一次注祖,運(yùn)行時(shí)不需要翻譯猾蒂,所以編譯型語言的執(zhí)行效率高。
資料收集以及依據(jù):
3.2? 申明變量用var? 用.調(diào)用方法 ?require()是需要引入的類名字 例如:
var testView = require('UIView').alloc().init()
#warnning JSPatch的語法可能是所有的方法都帶有括號(hào)的是晨,有參數(shù)傳參數(shù)肚菠,沒有參數(shù)就不用管了。如何得知呢罩缴? 舉例
require('UIView')
var superView = UIView.alloc().init()
var view = UIView.alloc().init()
superView.addSubview(view)
多參數(shù)方法名用_分割開 ?