android h5游戏图片不缓存,H5小游戏资源缓存方法与流程

72aeaa1f035ceb96ad2f8368e08ad8d6.gif

本发明涉及H5资源缓存领域,尤其涉及H5小游戏资源缓存方法。

背景技术:

随着移动互联网的发展和手机硬件性能的不断提升,H5小游戏这种不需要下载安装即可使用的全新游戏应用得到了爆发式发展。这种用完即走的方式充分节省了用户的手机空间。但是,随着H5小游戏美术品质的提升,用到的各种游戏资源越来眼都花了多,从而导致用户加载资源的时间变长,游戏卡顿和闪退率变高,游戏业务逻辑变化会频繁加载释放资源,手机流量消耗变多,游戏的服务器维护成本变高。这些问题最终会导致用户游戏体验起来越差。

微信、QQ、百度或抖音应用程序中,对H5小游戏本地缓存都有各种限制,原生手机游戏中将所有资源打包存储到手机本地存储空间或者打包一部分基础资源,剩下资源边玩游戏边下载,这两种资源缓存方法都不适合H5游戏;而传统web缓存机制,由于游戏业务逻辑多变,资源种类复杂,也不能很好的解决这些问题。

技术实现要素:

本发明的目的是解决现有技术中H5小游戏游戏卡顿等问题而提出H5小游戏资源缓存方法,该方法缓存公共资源和部分业务逻辑资源,避免步骤重复加载,从而减少流量消耗和减少卡顿。

本发明的技术方案如下:

H5小游戏资源缓存方法,包括:

将游戏资源进行分类整理,并打包压缩上传至服务器;

设定H5小游戏在最低配置机器运行时内存缓存容量;

用户启动H5小游戏,检查本地文件是否缓存首屏资源;

检查本地文件是否缓存通用资源。

将游戏资源进行分类包括游戏首屏资源,公用资源以及游戏中各业务逻辑系统资源。

将分类中涉及到的图片资源中的小图资源合并成一张大图资源。

将图片资源中格式为JPG和PNG的资源压缩。

进一步的,设置H5小游戏在最低配置运行时内存容量值。

用户启动H5小游戏,检查本地文件是否缓存首屏资源,包括:如本地文件有首屏资源,则直接加载本地文件的首屏资源;如本地文件没有首屏资源,则向服务器请求首屏资源,加载服务器回包的首屏资源,并检查是否可以写入本地缓存,如可以写入,则将首屏资源写入本地文件读写模块中。

检查本地文件是否缓存通用资源,包括:如本地文件有缓存通用资源,直接加载本地文件中缓存的通用资源,如本地文件没有缓存通用资源,则向服务器请求通用资源,加载服务器回包中的通用资源,并检查是否可以写入本地文件系统,如可以写入,则将通用资源写入本地文件系统中缓存。

检查本地文件是否缓存通用资源后如用户有输入,检查是否结束游戏,是则直接释放所有资源并关闭游戏;如不结束游戏,则检查是否需要加载资源;如需要加载资源,检查内存是否缓存有资源,如内存中有缓存要加载的资源,则直接加载使用内存中的资源,如内存中没有缓存资源,则向服务器请求资源,收到服务器回包资源后,检查内存缓存空间是否足够,如内存缓存空间足够,将服务器回包资源加载到内存中缓存,加载使用内存中缓存的资源,如内存中缓存容量空间不够,则将资源管理系统中历史访问记录队列和缓存队列清理出设定的内存空间,加载新资源到内存中缓存,加载使用内存中缓存的资源。

优选的,如果内存中缓存空间不够,则根据LRU-K算法维护和记录的资源使用数据清理内存中缓存的资源。

本发明的有益效果:

1.通过压缩H5小游戏的资源,减少资源量,并利用微信、QQ、百度、抖音等应用的本地文件读写权限和缓存空间,缓存部分资源,从而减少下载资源时间,减少流量消耗;

2.缓存首屏资源,从而加快游戏启动时间,提高用户留存;

3.根据微信、QQ、百度、抖音等应用运行情况,设定H5小游戏运行时内存缓存大小,缓存部分业务逻辑系统资源,避免频繁加载释放资源,从而减少流量消耗、减少卡顿,达到提高用户体验流畅度;

4.利用资源压缩和缓存资源,避免频繁重复请求资源,能显著减少服务器维护成本。

附图说明

图1为本发明H5小游戏资源缓存示意图;

图2为本发明H5小游戏启动后流程图。

具体实施方式

为了更好的说明本发明,现结合实施例及附图作进一步的说明。

如图1所示,H5小游戏资源包括图片资源、音效资源、特效资源、表格资源和代码资源这几大类,其中图片资源包括背景、人物立绘、人物表情、UI和帧动画,首先将将这些资源进行分类整理,并打包压缩上传至服务器,以便后续进行缓存管理。

将游戏资源进行分类,包括游戏首屏资源,公用资源以及游戏中各业务逻辑系统资源;将分类中涉及到的图片资源中的小图资源合并成一张大图资源;将图片资源中格式为JPG和PNG的资源压缩。整理资源有利于减少加载时间,减少卡顿,减少加载流量,减少缓存占用,从而增加缓存中可加载文件数量。

H5小游戏包括资源管理系统、文件系统、运行时内存,资源管理系统包括本地文件读写模块、内存缓存管理模块、历史访问记录队列和缓存队列,本地文件读写模块与手机应用程序的文件系统进行数据读写,内存缓存管理模块与手机应用程序运行时内存进行数据缓存,手机应用程序的文件系统与手机的手机内存存储进行数据传输,手机应用程序运行时内存与手机运行时内存进行数据传输。

优选的,设置H5小游戏在最低配置运行时内存容量值,内存缓存大小可根据游戏环境不同,设置不同的值;本实施例中设定H5小游戏在最低配置机器运行时内存缓存容量100M。

如图2所示,用户启动H5游戏,开始请求加载并缓存资源,步骤如下:

S10:检查本地文件是否缓存首屏资源,如是则直接加载本地首屏资源,如否则请求服务器首屏资源,加载服务器回包首屏资源;显示游戏首屏,登陆游戏;

S20:检查本地文件是否缓存通用资源,如是则直接加载本地通用资源,如否则请求服务器通用资源,加载服务器回包通用资源,加载主界面必要的逻辑系统资源;进入主界面;

S30:检查用户是否输入,是则进入步骤S40,否则重复步骤S30;

S40:检查是否结束游戏,是则结束游戏;否则进入步骤S50;

S50:检查是否需要加载资源,是则进入步骤S60,否则执行S30;

S60:内存是否缓存资源,是则使用内存中缓存资源,否则请求服务器资源,并执行步骤S30;

S70:内存缓存容量是否足够,足够则加载服务器回包新资源到内存中缓存,不够则根据LRU-K算法维护和记录的资源数据清理内存中缓存的资源,并加载服务器回包新资源到内存中缓存;然后使用内存中缓存资源,并执行步骤S30;

如果内存缓存空间不够,如图1中所示,本实施例,资源管理系统记录的资源历史访问队列和资源缓存队列,清理出10M内存空间,加载新资源到内存中缓存,加载使用内存中缓存的资源。

优选的,S10步骤加载服务器回包首屏资源后,包括步骤S11:

S11:检查是否可以写本地缓存,如是则首屏资源写入本地文件缓存,即将首屏资源写入本地文件读写模块中。

优选的,S20步骤加载服务器回包通用资源后,包括步骤S21:

S21:检查是否可以写入本地缓存,如是则通用资源写入本地文件缓存,即将通用资源写入本地文件系统中缓存。

优选的,进入主界面后,包括步骤S31:

S31:检查是否需要清理内存中缓存的资源,如是清理内存中缓存资源,如否则重复步骤S31。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围内。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值