昨晚看了很多游戏的源代码,研究它们的在线更新方式,发现有两种。
1.登陆游戏时候检查更新,下载过来后,通过预加载的方式,然后同步使用。
2.同样是登陆游戏时候检查更新,但打包用非压缩的方式,可以直接同步使用。
然后第三种方式我还没有找到哪个游戏使用,就是第二种的改进,自己压缩,下载下来后解压,然后直接同步使用。
首先,我打算采用最简单的第二种方案,需要测试的是在不压缩的情况下,apk包是否没有增大。
这里附带一片不错的文章:
http://game.ceeger.com/forum/read.php?tid=4394
首先不用asset bundle 160M
用不压缩的发现高达220M,好吧 毫无疑问,不压缩是不合理的。那么要么采用第一种方案,要么采用第三种方案。
但这实在是麻烦,因为我是想同步的,不然我们整个框架都要改动,其次,我又不想自己去用lzma压缩解压,感觉太累。我想了第四种方案:
apk里面用最原始的压缩文件,第一次登陆时候解压。以后更新资源都用非压缩,毕竟更新资源应该只在20M左右吧。
试试新方案。
经过初步的尝试,新方案先定成这样:
1.将所有的assetbundle不压缩,然后统一用zip进行存储成一个大文件,然后用lzma算法压缩成一个小文件。
2.使用的时候用lzma解压第一遍,再用zip解压第二遍。。。。虽然感觉很奇怪,但我觉得这是可行的。
ok,晚上就可以开始尝试新方案了。