- 精通Cocos2d-x游戲開(kāi)發(fā)(進(jìn)階卷)
- 王永寶
- 762字
- 2020-11-28 22:36:59
3.3 Manifest文件詳解
AssetsManagerEx使用Manifest配置文件來(lái)描述增量更新的詳細(xì)信息,Manifest意為清單,文件內(nèi)容是JSON格式。在增量更新中會(huì)用到兩種Manifest文件,即ProjectManifest和VersionManifest, ProjectManifest文件描述了詳細(xì)的增量更新信息,如版本信息、要下載的資源文件列表、文件的MD5,以及它們的下載路徑等。我們需要有兩個(gè)ProjectManifest文件,即一個(gè)本地的和一個(gè)遠(yuǎn)程的Manifest,在檢查更新時(shí),根據(jù)本地的Manifest和遠(yuǎn)程的Manifest進(jìn)行判斷,從而判斷是否需要更新。
VersionManifest是ProjectManifest的簡(jiǎn)化版,這個(gè)文件是可選的,VersionManifest文件僅僅記錄了版本信息以及ProjectManifest的下載路徑等信息,因?yàn)椴⒉皇敲看螁?dòng)都有內(nèi)容要更新,所以通過(guò)VersionManifest文件就可以判斷。當(dāng)有更新時(shí)才去下載詳細(xì)的ProjectManifest,如果ProjectManifest文件的內(nèi)容不多,也可以忽略VersionManifest文件,如果不配置VersionManifest文件,則每次檢查更新時(shí)都會(huì)直接下載服務(wù)器的ProjectManifest進(jìn)行判斷。下面是一個(gè)簡(jiǎn)單的VersionManifest文件示例。
{ "packageUrl": "http://localhost/test/", "remoteManifestUrl": "http://localhost/test/project.manifest", "remoteVersionUrl": "http://localhost/test/version.manifest", "version": "1.0.2", "groupVersions": { "1": "1.0.1", "2": "1.0.2" } }
VersionManifest中包含了增量更新的版本信息,其中版本號(hào)和版本組是需要注意的,因?yàn)锳ssetsManagerEx是同時(shí)根據(jù)這兩個(gè)字段來(lái)判斷是否需要更新的。版本組包含了很多小的版本號(hào),如1.0.1、1.0.2等,在版本號(hào)字段相同的情況下,只要服務(wù)器的Manifest中版本組字段中有一個(gè)版本號(hào)是本地沒(méi)有的,那么就需要更新,當(dāng)需要更新時(shí),會(huì)獲取服務(wù)器的ProjectManifest進(jìn)行進(jìn)一步的判斷,如圖3-2所示為版本信息結(jié)構(gòu)。

圖3-2 版本信息結(jié)構(gòu)
下面是一個(gè)完整的ProjectManifest示例。
{ "packageUrl": "http://localhost/test/", "remoteManifestUrl": "http://localhost/test/project.manifest", "remoteVersionUrl": "http://localhost/test/version.manifest", "version": "1.0.2", "groupVersions": { "1": "1.0.1", "2": "1.0.2" }, "assets": { "1.0.1": { "path": "release1.0.1.zip", "md5": "01621650ddc23821709efd68e3786d2c", "compressed": true }, "1.0.2": { "path": "release1.0.2.zip", "md5": "596d892583761b91d910ecd45f473725", "compressed": true } } "searchPaths" : [ "res/" ] }
ProjectManifest完全包含了VersionManifest中的全部?jī)?nèi)容,除了版本信息之外,ProjectManifest還包含了詳細(xì)的資源信息,最主要的是資源列表信息。資源列表信息由一個(gè)個(gè)資源信息組成,每個(gè)資源信息都包括下載路徑、MD5、是否被壓縮、分組等屬性。如果資源信息下沒(méi)有path屬性,會(huì)將自定義的資源名作為path的默認(rèn)值,如上面的1.0.1資源沒(méi)有配置path,那么path就會(huì)被設(shè)置為1.0.1。如圖3-3所示為資源信息結(jié)構(gòu)。

圖3-3 資源信息結(jié)構(gòu)
關(guān)于Manifest文件的生成,需要自己實(shí)現(xiàn)一個(gè)小工具按照AssetsManagerEx的規(guī)則來(lái)生成Manifest文件。
- 構(gòu)建運(yùn)營(yíng)級(jí)IPv6網(wǎng)絡(luò)
- 5G承載關(guān)鍵技術(shù)與規(guī)劃設(shè)計(jì)
- 基于數(shù)字條紋投影的在線深度獲取技術(shù)
- 教你檢修液晶顯示器
- 教你看懂CRT數(shù)字高清彩色電視機(jī)線路圖
- EDA技術(shù)與應(yīng)用
- Premiere Pro CS6影視編輯剪輯制作實(shí)戰(zhàn)從入門到精通(全彩超值版)
- 現(xiàn)代通信技術(shù)概論(第3版)
- 機(jī)載激光雷達(dá)基礎(chǔ)原理與應(yīng)用
- 從算法到電路:數(shù)字芯片算法的電路實(shí)現(xiàn)
- 光纜與光設(shè)備維護(hù)
- Cadence Allegro 17.4電子設(shè)計(jì)速成實(shí)戰(zhàn)寶典
- 天地一體化信息網(wǎng)絡(luò)架構(gòu)與技術(shù)
- 電子設(shè)計(jì)與制作100例
- 云存儲(chǔ)解析