游戏安装包体的多重压缩的方法、设备及存储介质与流程

文档序号:18475079发布日期:2019-08-20 20:54阅读:317来源:国知局
本发明涉及数据处理
技术领域
:,尤其涉及一种游戏安装包体的多重压缩的方法、设备及存储介质。
背景技术
::所谓apk是androidpackage的缩写,即android安装包,通过将apk文件直接传到android模拟器或android手机中执行即可安装。apk文件其实是zip格式,但后缀名被修改为apk,通过unzip解压后,可以看到apk大概的目录结构:lib(存放native的库文件);meta-inf(jar文件中常可以看到);res(存放资源文件的目录);androidmanifest.xml程序全局配置文件;classes.dex(dalvik字节码);resources.arsc(编译后的二进制资源文件)。现有技术中,apk里面包含的native库、classes.dex、res资源文件等都在打包时被统一的压缩方式zip进行打包压缩,zip压缩效率比较低下,能对apk起到一定的压缩效果,但效果不是很明显,这并不利于文件的传输,尤其是在无线时代,渠道分发对apk包的大小非常苛刻,无线的流量对用户也是万分宝贵。在现有技术中,例如公开号为105138333a的中国专利,公开了一种基于安卓系统的apk文件压缩的方法及系统,获取要打包成apk的文件;判断这些要打包成apk文件的各文件是否符合筛选条件,若不符合,则将不符合的文件保留于原有目录中,若符合,则利用第一算法对符合的文件进行第一压缩;经过第一压缩后的文件以资源文件方式存放于res目录;利用第二算法对经过第一压缩后以资源文件方式存储的文件和不符合筛选条件的文件进行第二压缩,生成apk安装包。然而对于游戏类安装包而言,由于其引用的资源种类繁多,资源过大的原因,采用传统的多次加密方式并不能很好的实现游戏类apk的快速打包。总之,对于游戏类安装包,传统的apk的打包方式对所包含的所有文件都统一采用类似zip压缩方式,效率比较低下且极大的影响了安装包的下载传输速度。技术实现要素:本发明旨在至少解决现有技术中存在的技术问题。为此,本发明公开了一种针对游戏安装包体的多重压缩的方法,游戏下载平台获取游戏安装包后对所述游戏安装包进行反编译,获得所述游戏安装包的源代码信息,对所述安装包体进行缩小包体大小的操作,然后针对安装包的资源使用的先后顺序智能筛选出资源的优先级,通过第一压缩算法对优先级高的资源进行压缩,同时通过第二压缩算法对优先级低的资源压缩后放至云端服务器。更进一步地,所述游戏下载平台获取游戏安装包后对所述游戏安装包进行反编译,获得所述游戏安装包的源代码信息,对所述安装包体进行缩小包体大小的操作进一步包括:对获取的游戏安装包进行反编译操作,获得所述游戏安装包体的源代码信息,识别拼接的字符串,通过察验代码中出现的字符串与查看器内图片名字是否一致,判断所述图片是否被调用;若判断为非调用的图片,则删除该图片,若判断为被调用图片,则删除该图片的exif信息来压缩空间;然后通过分析所述源代码对类文件的使用状态,去除并未使用的类文件来压缩源代码引用类的大小;对所述游戏安装包体内的第三方静态库进行分析并删除重复的指令集的库文件;客户端下载所述游戏安装包时,获取游戏的版本控制文件后,和所述云端服务器上的版本控制文件进行比较如果两个文件中版本号一致则不执行更新操作,如果不一致则下载更新包,通过版本控制文件中的md5码对下载下来的包进行解压,更新下载下来的图片、动画、代码资源对原始版本的数据进行覆盖,代码进行重新加载。更进一步地,其特征在于,所述针对安装包的资源使用的先后顺序智能筛选出资源的优先级,进一步包括:对源代码进行识别并通过模拟器根据对安装包的资源使用的先后顺序,判断出源代码文件的资源数据和结构数据,将所述资源数据筛选为低优先级、所述结构数据为高优先级。更进一步地,所述通过第一压缩算法对优先级高的资源进行压缩,同时通过第二压缩算法对优先级低的资源压缩后放至云端服务器进一步包括:将源代码文件资源数据和结构数据分别进行压缩,其中,对源代码内的元素和属性视为结构数据部分,元素与属性值的内容为资源数据部分,对于所述的资源数据拆分为不同的待压缩项分配在不同的压缩容器中,通过使用语义压缩对不同的所述压缩容器使用不同的压缩方法,并将所有的所述压缩项存储于云端服务器。更进一步地,对于结构信息采用基于词组的自适应压缩方法进行压缩,在压缩的过程中,对遇到的新词组将放入字典中、遇到重复词组时则利用其在字典中的索引进行代替;其中,先初始化结构字典为null,当遇见新标签时,将它放入字典的同时将标签名写入输出流,当遇见在字典中出现过的标签时,先缓存此标签名,继续读取下一个标签,直到字典中不存在缓存中所有标签组成的标签集合时,先将缓存中标签集合在结构字典的索引写入输出流,再将新标签放入字典,将其标签名写入数据流。更进一步地,所述将所有的所述压缩项存储于云端服务器进一步包括:在所述云端服务器中对每个被压缩的压缩项生成一个或多个压缩包和与之匹配的压缩文件日志,所述压缩文件日志内记录有文件数据路径、大小、生成日期和文件类型,将生成的压缩包和压缩文件日志导入云端服务器的数据库中。更进一步地,所述图片类型包括:jpeg格式、tiff格式、raw格式。更进一步地,所述第一压缩算法为zlib压缩算法和xml压缩算法相结合的压缩算法,所述第二压缩算法为quicklz算法、snappy算法、bzip算法中的一种或多种的组合。本发明还公开了一种电子设备,包括:处理器;以及,存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的针对游戏安装包体的多重压缩的方法。本发明还公开了一种计算机可读存储介质,其上存储有计算机程序所述计算机程序被处理器执行时实现上述的针对游戏安装包体的多重压缩的方法。同样的包体,目前国内知名包体压缩公司压缩比例只能到40%左右,并且只能在wifi环境网络下载速度平均在100kb以上的用户才能做到不影响玩家的正常体验,而本发明可以不受wifi和4g网络和网速的影响。与现有技术相比,本申请所述的方法和系统,达到了如下效果:本发明通过对apk文件进行混合压缩打包方式,提升了apk文件打包的效率;本发明采用的多次压缩方式,可以实现对重要文件压缩加密,提高安全度。附图说明从以下结合附图的描述可以进一步理解本发明。图中的部件不一定按比例绘制,而是将重点放在示出实施例的原理上。在图中,在不同的视图中,相同的附图标记指定对应的部分。图1本发明的一实施例的针对游戏安装包体的多重压缩方法的流程图;图2是本发明的针对游戏安装包体的多重压缩及解压缩方法的流程图。具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。需要说明的是,结合附图所阐述的详细描述旨在作为对各种配置的描述,而不旨在表示其中可以实践本文所描述的概念的唯一配置。本文中所记载的装置实施例和方法实施例将在下面的详细描述中进行描述,并在附图中通过各种框、模块、单元、组件、电路、步骤、过程、算法等等(统称为“要素”)来予以示出。这些要素可以使用电子硬件、计算机软件或者其任意组合来实现。至于这些要素是实现为硬件还是软件,取决于特定应用和施加在整体系统上的设计约束。本发明的说明书和权利要求书以及说明书附图中的术语如果使用“第一”、“第二”等描述,该种描述是用于区别不同对象,而不是用于描述特定顺序。应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(personaldigitalassistant,pda)、便捷式媒体播放器(portablemediaplayer,pmp)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字tv、台式计算机等固定终端。后续描述中将以移动终端为例进行说明,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。实施例一如图1所示的一种针对游戏安装包体的多重压缩的方法,游戏下载平台获取游戏安装包后对所述游戏安装包进行反编译,获得所述游戏安装包的源代码信息,对所述安装包体进行缩小包体大小的操作,然后针对安装包的资源使用的先后顺序智能筛选出资源的优先级,通过第一压缩算法对优先级高的资源进行压缩,同时通过第二压缩算法对优先级低的资源压缩后放至云端服务器。其中,所述游戏下载平台获取游戏安装包后对所述游戏安装包进行反编译,获得所述游戏安装包的源代码信息,对所述安装包体进行缩小包体大小的操作进一步包括:对获取的游戏安装包进行反编译操作,获得所述游戏安装包体的源代码信息,识别拼接的字符串,通过察验代码中出现的字符串与查看器内图片名字是否一致,判断所述图片是否被调用;若判断为非调用的图片,则删除该图片,若判断为被调用图片,则删除该图片的exif信息来压缩空间;然后通过分析所述源代码对类文件的使用状态,去除并未使用的类文件来压缩源代码引用类的大小;对所述游戏安装包体内的第三方静态库进行分析并删除重复的指令集的库文件。其中,所述针对安装包的资源使用的先后顺序智能筛选出资源的优先级,进一步包括:对源代码进行识别并通过模拟器根据对安装包的资源使用的先后顺序,判断出源代码文件的资源数据和结构数据,将所述资源数据筛选为低优先级、所述结构数据为高优先级。本实施例所提供的apk文件的处理装置可以为位于本地终端的应用,或者还可以为位于本地终端的应用中的插件或软件开发工具包(softwaredevelopmentkit,sdk)等功能单元,或者还可以为位于网络侧的服务器中的处理引擎,或者还可以为位于网络侧的分布式系统,本实施例对此不进行特别限定。可以理解的是,所述游戏安装包体可以是安装在终端上的应用程序(nativeapp),或者还可以是终端上的浏览器的一个网页程序(webapp),本实施例对此不进行限定。实施例二在本实施例中,从移动客户端的角度进行描述,如图2所示的一种针对游戏安装包体的多重压缩的方法,游戏下载平台获取游戏安装包后对所述游戏安装包进行反编译,获得所述游戏安装包的源代码信息,对所述安装包体进行缩小包体大小的操作,然后针对安装包的资源使用的先后顺序智能筛选出资源的优先级,通过第一压缩算法对优先级高的资源进行压缩,同时通过第二压缩算法对优先级低的资源压缩后放至云端服务器。其中,所述游戏下载平台获取游戏安装包后对所述游戏安装包进行反编译,获得所述游戏安装包的源代码信息,对所述安装包体进行缩小包体大小的操作进一步包括:对获取的游戏安装包进行反编译操作,获得所述游戏安装包体的源代码信息,识别拼接的字符串,通过察验代码中出现的字符串与查看器内图片名字是否一致,判断所述图片是否被调用;若判断为非调用的图片,则删除该图片,若判断为被调用图片,则删除该图片的exif信息来压缩空间;然后通过分析所述源代码对类文件的使用状态,去除并未使用的类文件来压缩源代码引用类的大小;对所述游戏安装包体内的第三方静态库进行分析并删除重复的指令集的库文件。其中,所述针对安装包的资源使用的先后顺序智能筛选出资源的优先级,进一步包括:对源代码进行识别并通过模拟器根据对安装包的资源使用的先后顺序,判断出源代码文件的资源数据和结构数据,将所述资源数据筛选为低优先级、所述结构数据为高优先级。其中,所述通过第一压缩算法对优先级高的资源进行压缩,同时通过第二压缩算法对优先级低的资源压缩后放至云端服务器进一步包括:将源代码文件资源数据和结构数据分别进行压缩,其中,对源代码内的元素和属性视为结构数据部分,元素与属性值的内容为资源数据部分,对于所述的资源数据拆分为不同的待压缩项分配在不同的压缩容器中,通过使用语义压缩对不同的所述压缩容器使用不同的压缩方法,并将所有的所述压缩项存储于云端服务器。其中,对于结构信息采用基于词组的自适应压缩方法进行压缩,在压缩的过程中,对遇到的新词组将放入字典中、遇到重复词组时则利用其在字典中的索引进行代替;其中,先初始化结构字典为null,当遇见新标签时,将它放入字典的同时将标签名写入输出流,当遇见在字典中出现过的标签时,先缓存此标签名,继续读取下一个标签,直到字典中不存在缓存中所有标签组成的标签集合时,先将缓存中标签集合在结构字典的索引写入输出流,再将新标签放入字典,将其标签名写入数据流。其中,所述将所有的所述压缩项存储于云端服务器进一步包括:在所述云端服务器中对每个被压缩的压缩项生成一个或多个压缩包和与之匹配的压缩文件日志,所述压缩文件日志内记录有文件数据路径、大小、生成日期和文件类型,将生成的压缩包和压缩文件日志导入云端服务器的数据库中。其中,所述图片类型包括:jpeg格式、tiff格式、raw格式。其中,所述第一压缩算法为zlib压缩算法和xml压缩算法相结合的压缩算法,所述第二压缩算法为quicklz算法、snappy算法、bzip算法中的一种或多种的组合。本实施例还公开了一种电子设备,包括:处理器;以及,存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的针对游戏安装包体的多重压缩的方法。如图2所示的流程图,在本实施例中,在移动客户端进行下载安装包时,于客户端执行与安装包压缩相反的方式实现游戏的安装文件的重打包。通过接受又有的打包压缩文件,进行相同压缩算法的解压操作后,根据压缩记录对所有压缩内容进行还原,恢复原游戏apk,在移动客户端执行安装;优选地,因为使用无损压缩的算法,数据还原后的安装包出现问题的几率极低,但为了保证移动终端设备的安全性,在安装之前通过模拟器进行apk的安装测试,以避免压缩传输过程中的可能出现的问题。本实施例还公开了一种计算机可读存储介质,其上存储有计算机程序所述计算机程序被处理器执行时实现上述的针对游戏安装包体的多重压缩的方法。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。虽然上面已经参考各种实施例描述了本发明,但是应当理解,在不脱离本发明的范围的情况下,可以进行许多改变和修改。因此,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以下权利要求(包括所有等同物)旨在限定本发明的精神和范围。以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1