laya zip更新方案
1.将要打包的的资源和layaairfiles.txt文件一起打成zip.
2.预加载阶段,先将zip包通过downfile下载并解压到缓存目录.
3.设置baseurl,开始预加载所有资源.
4.下面为node.js编写的自动生成layaairfiles.txt的脚本
var fs = require("fs");var cacheData = ""; var tmp = {}; var totalSize = 0; var nowTime = Date.now(); var BaseUrl = "https://0.0.3/"; var BasePath = "./bin/"; var fileList = fs.readdirSync(BasePath); tmp["fileUsedSize"] = totalSize; for(var i=0;i<fileList.length;i++){var file = fileList[i];var stats = fs.statSync(BasePath+file);if(stats.isDirectory()){readFile(BasePath+file+"/",file+"/");}else{totalSize += stats.size;tmp[BaseUrl+file] = {};var data = tmp[BaseUrl+file];data["md5"] = prePath+file;data["readyUrl"] = BaseUrl+file;data["size"] = stats.size;data["times"] = nowTime;var arr = file.split('.');if(arr[1] == "atlas"){data["encoding"] = "utf8";}else{data["encoding"] = "";}} } tmp["fileUsedSize"] = totalSize; var str = JSON.stringify(tmp); fs.writeFileSync('./layaairfiles.txt',str);function readFile(readurl,prePath){var fileList = fs.readdirSync(readurl);for(var i=0;i<fileList.length;i++){var file = fileList[i];var stats = fs.statSync(readurl+file);if(stats.isDirectory()){readFile(readurl+"/"+file+"/",prePath+file+"/");}else{totalSize += stats.size;tmp[BaseUrl+prePath+file] = {};var data = tmp[BaseUrl+prePath+file];data["md5"] = prePath+file;data["readyUrl"] = BaseUrl+prePath+file;data["size"] = stats.size;data["times"] = nowTime;var arr = file.split('.');if(arr[1] == "atlas"){data["encoding"] = "utf8";}else{data["encoding"] = "";}}} }
5.将下载下来的zip文件解压到缓存目录
Laya.MiniAdpter.removeAll(); wx.getFileSystemManager().unzip({zipFilePath: res.tempFilePath,targetPath: laya.wx.mini.MiniFileMgr.fileNativeDir,success: () => {this.unzipSuccess();},fail: (res) => {this.unzipFail(res);} });
转载于:https://www.cnblogs.com/wsswlyy/p/10973653.html
laya zip更新方案相关推荐
- React Native 热更新方案
转载: https://blog.csdn.net/xiangzhihong8/article/details/73201421 随着 React Native 的不断发展完善,越来越多的公司选择使用 ...
- 游戏开发(九) 之 纯 lua 版 热更新 方案
大概看了cocos和quick的更新方案,也挺不错的,但是感觉不太适合自己使用,所以就自己写一套 最早做的时候,我使用的是在c++端完全控制,把需要下载的资源以及lua文件下载完成后再调用engine ...
- weex更新方案探索(一)
created by zhenggl 在项目开发过程中发现: 由于网络的波动不稳定,有时weex在线js加载显示会比较慢甚至加载超时: 而资源在安装包内的本地js的方式,每次有B端页面的改动都需要重新 ...
- “真正的”Apk增量更新方案ApkDiffPatch
"真正的"Apk增量更新方案ApkDiffPatch 作者: HouSisong@gmail.com 2018.03.31 Android的Apk包增量更新原理: 服务端对新旧版本 ...
- 基于Quick-cocos2d-x的资源更新方案
昨天写了一篇关于更新方案的理论 游戏开发:通过路径搜索优先级来进行补丁升级(从端游到手游) 今天继续细化一下 由于新项目采用的是Quick-cocos2d-x,那我就直接给出我基于Quick-coco ...
- Hybrid App 跨平台热更新方案实践 附带源码
前言 移动开发的跨平台与快速发布一直是开发者的追求,也是技术的一个发展趋势,现在各大厂开始有了自己的大前端团队,所以我们也开始了自己的探索,目前来说主要有两种思路: Hybrid App 代表:Cor ...
- android热更新插件,与Android热更新方案Amigo的再次接触
Amigo 作为一个"过气"的的热修复框架,用来学习和了解一下热修复的基本原理还是很好的.本文是本系列的第三篇. 前两篇: 与Android 热更新方案Amigo的初次接触 原作者 ...
- iOS 热更新方案 - lance的专栏 - 博客频道 - CSDN.NET
iOS 热更新方案 - lance的专栏 - 博客频道 - CSDN.NET Weex
- Android热更新方案Robust
美团•大众点评是中国最大的O2O交易平台,目前已拥有近6亿用户,合作各类商户达432万,订单峰值突破1150万单.美团App是平台主要的入口之一,O2O交易场景的复杂性决定了App稳定性要达到近乎苛刻 ...
最新文章
- php symfony 安装,Symfony的安装和配置方法
- 给定的 columnmapping 与源或目标中的任意列均不匹配_闻歌研究 | 图文自动匹配任务研究调研...
- LeetCode之Sum of Two Integers
- oracle单表存储记录,oracle从各个表获得数据保存到另一个表
- java 判断 nan_判断NaN,js和java中取小数点后几位
- Delphi 与 DirectX 之 DelphiX(47): TDIB.DoContrast();
- python获取代码当前行数_Python实验室一段日志代码,获取当前调用的函数名和行号...
- unity下载教育版_新的现场学习系列为Unity教育工作者提供支持
- weka下载后没有安装java_Weka程序原版安装文件[下载指引]
- [读书笔记]职场动物进化手册
- 河北工程大学计算机类专业排名,河北工程大学优势专业排名,2021年河北工程大学最好的专业排名...
- python数据笔记分析_python数据分析入门学习笔记
- cache line大小
- SpringMVC源码学习
- 什么是嵌入式?嵌入式技术应用领域
- 5G 空口信令分析指导书
- 通过excel文件在arcgis中点转面
- Allegro PCB对某个网络进行高亮以及取消高亮
- B2B常见名词以及英文缩写
- Tech Talk 活动预告 | 云原生DevOps的Kubernetes技巧