熱更新必懂3件事
今天我們來(lái)一起來(lái)說(shuō)說(shuō)熱更新,談起熱更新,大家都覺得很難,都去找官方的熱更新的解決方案,然后對(duì)著一步一步搞,原理還是不懂, 今天小編就帶你來(lái)完整的講解一下熱更新的原理,搞懂原理,做熱更新可以自己做,也可以自己修改,比如大廳與子游戲的模式。 這個(gè)原理經(jīng)過測(cè)試,可以適用js, Lua等多種腳本語(yǔ)言。
1: 熱更新準(zhǔn)備活動(dòng)
? ?H5游戲不需要熱更新,因?yàn)楸旧砭褪菑姆?wù)器下載的,而只有Native開發(fā)里面需要熱更新。
?運(yùn)行時(shí)動(dòng)態(tài)加載的語(yǔ)言腳本才可以實(shí)現(xiàn)熱更新,例如,js , Lua等;
每個(gè)native 的app 都有一個(gè)寫的目錄,可以用來(lái)放資源和代碼; 這個(gè)cocos creator fileUtils都有對(duì)應(yīng)的接口;
?每個(gè)腳本語(yǔ)言都有一個(gè)searchPath,運(yùn)行時(shí)根據(jù)搜索路徑到這些路徑下來(lái)裝載文件。fileUtils 也有searchPath, 資源文件加載的時(shí)候,也是從searchPath里面的路徑開始尋找資源。
2: 增量下載系統(tǒng):
? ? 增量指的是客戶端版本與服務(wù)器版本有差異的內(nèi)容,每次更新,只更新客戶端與服務(wù)器的差異,來(lái)節(jié)省流量和下載時(shí)間,所以我們做增量下載系統(tǒng)的時(shí)候,資源包(代碼+資源)要做類似的設(shè)計(jì):
? ? ?(1) ?資源列表, 記錄了版本號(hào), 記錄了這個(gè)版本每個(gè)文件的一些信息,路徑, MD5值,等信息;
? ? ?(2) ?完整的資源包;
?第一次打包客戶端的時(shí)候,也會(huì)帶上這個(gè)當(dāng)前客戶端的包的資源列表。
?客戶端增量更新邏輯: ?客戶端先讀取客戶端當(dāng)前最新資源列表(先到下載路徑下找,再到包里找), 找到后和服務(wù)器上的比對(duì), 根據(jù)md5值和客戶端列表里缺的文件,得到一個(gè)下載更新列表, 然后根據(jù)更新列表來(lái)從服務(wù)器下載文件。最后將服務(wù)器的資源列表更新到本地,下次啟動(dòng)就不用再更新了。附上資源列表的結(jié)構(gòu)截圖:


3: 使用最新源碼和資源:
? ? ? ? ?在啟動(dòng)腳本的時(shí)候,添加搜索路徑,把熱更新下載的路徑,添加到前面,這樣,系統(tǒng)搜索資源的時(shí)候,都從下載路徑開始搜索,
這樣你更新的數(shù)據(jù)和文件就被優(yōu)先加載進(jìn)來(lái),實(shí)現(xiàn)到熱更新,附上啟動(dòng)腳本的修改截圖:

需要獲取更多資源和課程請(qǐng)點(diǎn)擊:
https://bycwedu.vipwan.cn/promotion_channels/630597732