本文將會具體解說cocos2d-js下的熱更新機制。這篇內容先給大家介紹一下兩個manifest文件就當熱身了。
首先介紹project.manifest: 舉個樣例
{
"packageUrl" : "http://192.168.1.108/games/dragon_gold",
"remoteManifestUrl" : "http://192.168.1.108/games/dragon_gold/project.manifest",
"remoteVersionUrl" : "http://192.168.1.108/games/dragon_gold/version.manifest",
"version" : "1.0.2",
"groupVersions" : {
"1" : "1.0.1",
"2" : "1.0.2"
},
"engineVersion" : "3.6",
"assets" : {
"update1" : {
"path" : "dragon_gold1.zip",
"md5" : "140caaa2a4508912424e807a941bf71",
"compressed" : true,
"group" : "1"
},
"update2" : {
"path" : "dragon_gold2.zip",
"md5" : "140caaa2a4508912424e807a941bf7bc",
"compressed" : true,
"group" : "2"
}
},
"searchPaths" : [
]
}
- packageUrl : 遠程資源的下載根路徑。 (它是為“dragon_gold1.zip”服務的。沒了這個根路徑我們都找不到要下載的包)
- remoteVersionUrl :遠程版本號文件的路徑,用來推斷server端是否有新版本號的資源。
- remoteManifestUrl :遠程配置文件的路徑,包括版本號信息以及全部資源信息。
- version : 配置文件相應的版本號。
(這個用來推斷是否有新的更新包)
- assets :這個比較重要:里面的value就是相應要更新的包,當中path是更新包的包名。md5:當在下次更新時用來比較這次與上次下載下來的manifest文件里相應的包的md5 碼是否同樣,不同的話須要做些處理(更新。刪除操作)。
compressed是用來決定下載下來的包是否須要解壓。
group是重中之重。它是用來實現增量跟新的。它的值與groupVersions相相應。
"packageUrl" : "http://192.168.1.108/games/dragon_gold",
"remoteManifestUrl" : "http://192.168.1.108/games/dragon_gold/project.manifest",
"remoteVersionUrl" : "http://192.168.1.108/games/dragon_gold/version.manifest",
"version" : "1.0.2",
"groupVersions" : {
"1" : "1.0.1",
"2" : "1.0.2"
}
}
這一節就講到這。下次開始用我眼下做的一個項目來具體解說熱更新的使用方法。(備注:這一節是用工作時間寫的。有點馬虎了.......)