比如完整资源400M
然后我想APK只有100M,剩下的全部网上更新下来
应该怎么去拆分,设置,不放入包体呢?
可以考虑下我的插件
写一个带热更新的helloworld
我们是做了分包(边下边玩)和极小包(包内无资源或少资源)这些功能的。
其实关键点就一个:对project.manifest进行处理。
例如极小包,我们会把本地manifest的version设置成0,然后只放入必须的条目,那么第一次启动就必然热更去下载后续所有的资源。这个方案中本地包内和远程cdn上的manifest不一样。
然后边玩边下,在project.manifest里面,给每个资源添加一个分组,在热更文件对比逻辑那边,根据分组去对比。例如我现在是分包2已经下载完成状态,那么热更的时候对比就是0,1,2组资源参与热更(0是包内资源组),其余资源等待运行时另外的下载流程,下载完成分包后增加完成状态步数就行。这个方案中本地包内和远程cdn上的manifest是一样的,都有带分组信息。
如果你资源400M,包体100M。对剩下的资源,看你是想一进去就热更下载,还是在游戏内后台下载。如果是一进去就下载,就用极小包的方式,如果是游戏内后台下载,就用边玩边下的方式。都是可以的。
尽量拆包,将bundle控制在1M左右。然后跑一下游戏,导出一定时间用到的bundle包,将这些包打入首包里,其它的线上拉。
要注意bundle之间的依赖 和优先级哈。还要考虑bundle的热更。