一种手游安装包冗余资源检查方法及系统技术方案

技术编号:20865340 阅读:47 留言:0更新日期:2019-04-17 09:08
本发明专利技术的技术方案包括一种手游安装包冗余资源检查方法及系统,用于实现:逆向思维自动化静态检测手游安装包多余资源。此方案通过自动化扫描代码、表格得到游戏运行时会使用到的资源列表,自动化逆向分析手游安装包资源列表及其间引用关系,最后对两者进行比较,得到多余资源列表。本发明专利技术的有益效果为:在于静态、自动化、通用、无人工干涉正确率高,一次实现后,游戏开发的迭代对其几乎无影响,且可快速移植到其他游戏项目直接使用,且不同游戏项目制定资源使用规则后,该方案对不同游戏项目通用,且后续完全静态自动化,无需持续投入人力。

【技术实现步骤摘要】
一种手游安装包冗余资源检查方法及系统
本专利技术涉及一种手游安装包冗余资源检查方法及系统,属于计算机

技术介绍
目前手机游戏广受大众欢迎,而大部分手机游戏使用Unity商业引擎进行开发。开发Unity手游项目是一个大量人员合作进行反反复复的设计、开发、测试验证、修改的过程,大量人员间的协调反复工作会很容易导致安装包中包含大量老旧不再使用的资源,最终使安装包越来越大。而Unity手游安装包大小直接影响着手机用户试玩的意愿度、游戏运行时体验,且受影响最大的是占市场比率最高的低端手机。所以每个开发团队需要额外投入大量人力和时间不定时的进行排查,不同团队方法不同,低效又总有遗漏。当前已有方案实现多余资源检查,如运行游戏时注入监控程序,记录运行过程中被加载的所有资源文件,通过引用关联得到所有被直接或间接使用的资源列表,其他资源即为多余资源,但此方案是动态监控游戏,需要运行游戏所有玩法,时间特别长,且要么人工跑游戏要么脚本自动AI,但自动AI实现难度也偏高,且不同游戏差别大。
技术实现思路
为解决上述问题,本专利技术的目的在于提供一种手游安装包冗余资源检查方法及系统,逆向思维自动化静态检测手游安装包多余资源。此方案通过自动化扫描代码、表格得到游戏运行时会使用到的资源列表,自动化逆向分析手游安装包资源列表及其间引用关系,最后对两者进行比较,得到多余资源列表。本专利技术解决其问题所采用的技术方案一方面是:一种手游安装包冗余资源检查方法,其特征在于,该方法包括以下步骤:读取手游项目资源使用规则;根据资源使用规则获取手游项目使用的资源路径;得到的资源路径与手游项目使用的资源一一对应;对手游安装包执行解包操作,分析解包后的文件,得到安装包内资源引用关系以及资源信息并生成资源列表和引用关系图;将手游项目使用的资源与资源列表和引用关系图做对比检索;未在资源列表和引用关系图查询到的资源即为冗余资源。进一步的,所述资源使用规则为,Excel表格列属性和/或源码的路径表达式中存储了项目使用的资源路径。进一步的,所述根据资源使用规则获取手游项目使用的资源路径包括:使用脚本分别遍历表格目录下所有excel表格内容和项目中所有源码;根据资源使用规则记录表格和源码中所有的资源路径,即得到了在项目中所有被使用的资源的资源路径。进一步的,所述对手游安装包执行解包操作,分析解包后的文件,得到安装包内资源引用关系以及资源信息并生成资源列表和引用关系图包括:使用Unity工程对手游项目进行打包,得到手游安装包;对安装包进行解压,得到解压后的文件,遍历所有资源,包括但不限于AssetBundle、Resources以及StreamingAssets;统计所有资源的资源信息,根据资源信息建立资源列表和引用关系图。进一步的,所述资源信息包括资源的GUID、该资源依赖的其他资源的GUID以及资源路径。进一步的,所述将手游项目使用的资源与资源列表和引用关系图做对比检索包括:建立对比库,其中对比库包括资源路径与手游项目使用的资源的信息;将资源列表中所有的资源在对比库中进行遍历检索,筛选出未检索到的资源;将未检索到的资源与引用关系图进行检索匹配,未匹配到的资源即为冗余资源。进一步的,所述遍历检索和所述检索匹配的方法为,将资源路径作为唯一标识与对比库中的资源路径进行检索对比,资源路径一致的即为同一资源。本专利技术解决其问题所采用的技术方案另一方面是:一种手游安装包冗余资源检查系统,其特征在于,包括:静态读取模块,用于静态获取分析游戏项目使用的资源信息;解包模块,用于对手游安装包执行解包操作;分析模块,用于分析解包后的文件,得到资源信息;资源信息处理模块,用于根据得到的资源信息生成资源列表和引用关系图;检索对比模块,用于根据游戏项目使用的资源信息与资源列表和引用关系图,得到未检索到的资源信息,并判定为冗余资源。进一步的,所述静态读取模块还包括对比库生成模块,用于根据获取到的游戏项目使用的资源信息,生成对比库,其中资源信息包括资源路径。本专利技术的有益效果是:本专利技术采用的一种手游安装包冗余资源检查方法及系统,在于静态、自动化、通用、无人工干涉正确率高,一次实现后,游戏开发的迭代对其几乎无影响,且可快速移植到其他游戏项目直接使用,且不同游戏项目制定资源使用规则后,该方案对不同游戏项目通用,且后续完全静态自动化,无需持续投入人力。附图说明图1所示为根据本专利技术较佳实施例的方法流程示意图;图2所示为根据本专利技术较佳实施例的系统模块框图;图3所示为根据本专利技术较佳实施例的引用关系图一;图4所示为根据本专利技术较佳实施例的引用关系图二。具体实施方式以下将结合实施例和附图对本专利技术的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本专利技术的目的、方案和效果。需要说明的是,如无特殊说明,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本
的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本专利技术。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本专利技术的实施例,并且除非另外要求,否则不会对本专利技术的范围施加限制。参照图1所示为根据本专利技术较佳实施例的方法流程示意图,读取手游项目资源使用规则;使用规则可以为,Excel表格列属性或源码的路径表达式中存储了项目使用的资源路径。根据资源使用规则获取手游项目使用的资源路径;使用脚本分别遍历表格目录下所有excel表格内容和项目中所有源码;根据资源使用规则记录表格和源码中所有的资源路径,即得到了在项目中所有被使用的资源的资源路径。得到的资源路径与手游项目使用的资源一一对应;对手游安装包执行解包操作,分析解包后的文件,得到安装包内资源引用关系以及资源信息并生成资源列表和引用关系图;使用Unity工程对手游项目进行打包,得到手游安装包;对安装包进行解压,得到解压后的文件,遍历所有资源,包括但不限于AssetBundle、Resources以及StreamingAssets;统计所有资源的资源信息,根据资源信息建立资源列表和引用关系图。将手游项目使用的资源与资源列表和引用关系图做对比检索;建立对比库,其中对比库包括资源路径与手游项目使用的资源的信息;将资源列表中所有的资源在对比库中进行遍历检索,筛选出未检索到的资源;将未检索到的资源与引用关系图进行检索匹配,未匹配到的资源即为冗余资源,即未在资源列表和引用关系图查询到的资源即为冗余资源。举例说明,第一步:制定表格、源码使用资源的规则,Unity手游资源绝大部分来源于表格,少部分来源于源码。如excel表格使用资源规则是名字为ResourceName的列等等,源码使用资源规则是带有后缀名的常量字符串等等。第二步:自动化静态分析手游使用的资源列表。使用脚本语言Python进行全部表格和源码的扫描,根据制定的规则分析得到资源文件路径列表。第三步:自动化静态分析安装包内的资源列表、资源的引用关系图。解压Unity安装包,逆向解析所有本文档来自技高网
...

【技术保护点】
1.一种手游安装包冗余资源检查方法,其特征在于,该方法包括以下步骤:读取手游项目资源使用规则;根据资源使用规则获取手游项目使用的资源路径;得到的资源路径与手游项目使用的资源一一对应;对手游安装包执行解包操作,分析解包后的文件,得到安装包内资源引用关系以及资源信息并生成资源列表和引用关系图;将手游项目使用的资源与资源列表和引用关系图做对比检索;未在资源列表和引用关系图查询到的资源即为冗余资源。

【技术特征摘要】
1.一种手游安装包冗余资源检查方法,其特征在于,该方法包括以下步骤:读取手游项目资源使用规则;根据资源使用规则获取手游项目使用的资源路径;得到的资源路径与手游项目使用的资源一一对应;对手游安装包执行解包操作,分析解包后的文件,得到安装包内资源引用关系以及资源信息并生成资源列表和引用关系图;将手游项目使用的资源与资源列表和引用关系图做对比检索;未在资源列表和引用关系图查询到的资源即为冗余资源。2.根据权利要求1所述的手游安装包冗余资源检查方法,其特征在于,所述资源使用规则为,Excel表格列属性和/或源码的路径表达式中存储了项目使用的资源路径。3.根据权利要求1所述的手游安装包冗余资源检查方法,其特征在于,所述根据资源使用规则获取手游项目使用的资源路径包括:使用脚本分别遍历表格目录下所有excel表格内容和项目中所有源码;根据资源使用规则记录表格和源码中所有的资源路径,即得到了在项目中所有被使用的资源的资源路径。4.根据利要求1所述的手游安装包冗余资源检查方法,其特征在于,所述对手游安装包执行解包操作,分析解包后的文件,得到安装包内资源引用关系以及资源信息并生成资源列表和引用关系图包括:使用Unity工程对手游项目进行打包,得到手游安装包;对安装包进行解压,得到解压后的文件,遍历所有资源,包括但不限于AssetBundle、Resources以及StreamingAssets;统计所有资源的资源信息,根据资源信息建立资源...

【专利技术属性】
技术研发人员:刘美智易罗阳赵帅
申请(专利权)人:珠海西山居互动娱乐科技有限公司珠海金山网络游戏科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1