CN110109687A - 应用安装包生成方法及装置 - Google Patents

应用安装包生成方法及装置 Download PDF

Info

Publication number
CN110109687A
CN110109687A CN201910345392.8A CN201910345392A CN110109687A CN 110109687 A CN110109687 A CN 110109687A CN 201910345392 A CN201910345392 A CN 201910345392A CN 110109687 A CN110109687 A CN 110109687A
Authority
CN
China
Prior art keywords
resource
packet
group
type
dependence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910345392.8A
Other languages
English (en)
Other versions
CN110109687B (zh
Inventor
李立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Chengdu Co Ltd
Original Assignee
Tencent Technology Chengdu Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Chengdu Co Ltd filed Critical Tencent Technology Chengdu Co Ltd
Priority to CN201910345392.8A priority Critical patent/CN110109687B/zh
Publication of CN110109687A publication Critical patent/CN110109687A/zh
Application granted granted Critical
Publication of CN110109687B publication Critical patent/CN110109687B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种应用安装包生成方法及装置,属于软件技术领域。本发明通过先基于依赖关系来进行分组,从而再基于所分组得到的各个资源组以及各个资源组的类型,来应用不同的资源包构建方式创建资源包,以实现应用安装包的生成,由于考虑到依赖关系和资源类型,也就平衡了资源包的冗余和粒度,使得在计算机设备加载这些资源包时,可以避免对内存占用过大以及资源的重复,且可以大大减少耗能和发热,从而达到优化内存和提高运行效率的目的,避免对终端的正常运行造成影响。

Description

应用安装包生成方法及装置
技术领域
本发明涉及软件技术领域,特别涉及一种应用安装包生成方法及装置。
背景技术
随着游戏项目越来越庞大,游戏内的资源量越来越多,游戏安装包的体积会越来越大,如何生成安装包,以满足终端对资源快速加载和减小内存占用的需求,是当前的主要研究方向。目前,应用安装包生成方法可以包括:把每个资源单独构建一个资源包(AssetBundle),再基于全部资源包,来生成一个安装包。
由于上述应用安装包生成方法中的资源包构建策略过于简单、粒度太细,以至于资源包总量过多,对于一些资源量较大的项目,会导致加载I/O(Input/Output,读写)次数过多,会使得运行游戏的终端的硬件耗能和发热压力增大,且,在加载上述安装包内的资源包后,所产生的串行化文件(SerializedFile)过多,从而会导致占用内存过大,上述耗能、发热以及对内存的占用,均会影响终端的正常运行。
发明内容
本发明实施例提供了一种应用安装包生成方法及装置,能够保证所生成的应用安装包在实际应用时可以避免对终端的正常运行造成影响。该技术方案如下:
一方面,提供了一种应用安装包生成方法,该方法包括:
获取待生成安装包的多个资源;
基于该多个资源之间的依赖关系,对该多个资源进行分组,得到多个资源组,每个资源组包括至少一个资源;
针对不同类型的资源组,按照不同的构建方式,构建多个资源包;
将该多个资源包存储至目标目录,基于该多个资源包和目标目录,生成一个应用安装包。
一方面,提供了一种应用安装包生成装置,该装置包括:
获取模块,用于获取待生成安装包的多个资源;
分组模块,用于基于该多个资源之间的依赖关系,对该多个资源进行分组,得到多个资源组,每个资源组包括至少一个资源;
构建模块,用于针对不同类型的资源组,按照不同的构建方式,构建多个资源包;
生成模块,用于将该多个资源包存储至目标目录,基于该多个资源包和目标目录,生成一个应用安装包。
在一种可能实现方式中,该构建模块包括:
构建方式确定单元,用于识别各个资源组的资源类型,根据目标对应关系,获取与该各个资源组的资源类型对应的资源包构建方式,其中,目标对应关系包括各个资源包构建策略以及其对应的资源类型;
构建单元,用于基于该各个资源组的资源类型对应的资源包构建方式,来构建资源包。
在一种可能实现方式中,构建单元用于执行下述至少一项步骤:
对于着色器类型的资源组,将属于着色器类型的至少一个资源组构建成一个资源包;
对于公用动画基类型的资源组,将属于公用动画基类型的至少一个资源组构建成一个资源包;
对于特效类型的资源组,将多个属于多层次细节层的至少一个资源组构建成一个资源包;
对于角色卡牌类型的资源组,将在资源目录中属于同一个目录的资源组构建成一个资源包;
对于默认类型的资源组,将按照依赖分析的结果构建资源包,即,若多个资源都依赖某个资源,被依赖的资源只构建一个资源包,依赖它的资源共同引用这个资源包。
在一种可能实现方式中,该获取模块用于:根据资源配置表格,从该资源配置表格所指示的资源目录中,获取多个资源,该资源配置表格用于提供待进行安装包生成的资源信息。
在一种可能实现方式中,该分组模块用于:
基于该多个资源之间的依赖关系,构建基于该依赖关系的树形结构;
基于该树形结构,对该多个资源进行分组,得到多个资源组,每个资源组包括至少一个资源。
在一种可能实现方式中,该装置还包括:
记录模块,用于记录该树形结构中各个节点之间的连接关系;
该分组模块用于基于该连接关系执行该基于该树形结构,对该多个资源进行分组,得到多个资源组的步骤。
在一种可能实现方式中,不同使用需求对应的资源包对应于不同的卸载方式。
在一种可能实现方式中,当任一资源包的使用需求为反复加载时,对应于该资源包添加引用计数,当该资源包内的资源被引用时,该引用计数加1,当该资源包内的资源被引用结束时,该引用计数减1,当该引用计数为0时,该资源包被卸载。
一方面,提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令,该指令由该处理器加载并执行以实现如上述的应用安装包生成所执行的操作。
一方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条指令,该指令由该处理器加载并执行以实现如上述的应用安装包生成所执行的操作。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种树形结构的示意图;
图2是本发明实施例提供的一种实施环境的架构图;
图3是本发明实施例提供的一种应用安装包生成方法的流程图;
图4是本发明实施例提供的一种资源配置表格的示意图;
图5是本发明实施例提供的一种资源之间依赖关系的树形结构示意图;
图6是本发明实施例提供的一种资源类型与资源包构建方式的对应关系示意图;
图7是本发明实施例提供的一种资源包卸载方法的流程图;
图8是本发明实施例提供的一种资源包缓存配置方式的示意图;
图9是本发明实施例提供的一种应用安装包生成装置的结构示意图;
图10是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式做进一步地详细描述。
下面对本发明实施例所涉及的一些名词进行解释:
串行化文件:资源包加载时产生的序列化信息。
依赖关系:不同资源之间的引用关系,例如,当资源A引用资源B时,资源A和资源B构成依赖关系,即资源A依赖资源B。多资源之间的相互依赖可以构成一种类似树形结构的关系,且该树形结构的各个节点对应于至少一个资源。
参见图1,展示了多个资源之间的依赖关系树形图,树形图中的每个节点通过箭头指向它所依赖的节点,例如节点A依赖节点B和节点C。
图2是本发明实施例提供的一种实施环境的架构图。参见图2,该实施环境中包括至少一个计算机设备201和至少一个计算机设备202,该至少一个计算机设备201可以为开发侧设备,用于进行应用开发,以生成应用安装包,并进行发布,该至少一个计算机设备202可以为用户侧设备,用于下载并运行该应用安装包,上述计算机设备201可以为平板电脑、便携式电脑等,而计算机设备202可以为智能手机、平板电脑等设备,本发明实施例对此不做限定。
当然,该实施环境中还可以包括服务器203,该服务器203可以用于提供应用发布和下载等服务。也即是,当技术人员利用计算机设备201进行了应用开发后,可以将开发得到的应用安装包通过网络发布至该服务器203,而该计算机设备202可以通过网络访问服务器203,从服务器203上下载所发布的应用安装包,以进行安装,并在计算机设备202上运行该应用。
图3是本发明实施例提供的一种应用安装包生成方法的流程图。参见图3,该实施例具体可以包括以下步骤:
301、该计算机设备根据资源配置表格,从资源配置表格所指示的资源目录中,获取多个资源。
其中,资源配置表格用于提供待进行安装包生成的资源信息,该资源信息包括资源名称、资源类型、资源内容描述以及资源当前需求状态等信息,可以用于唯一标识一个资源。在本发明实施例中,上述资源配置表格由技术人员配置生成,该生成过程可以包括:当全部资源制作完毕后,技术人员在该计算机设备上将各个资源存储至对应的资源目录,并基于应用运行需求配置该资源配置表格,参见图4,该资源配置表格中包括资源名称、资源类型、资源内容描述以及资源当前需求状态等元素,该资源配置表格的数据内容部分的每一行分别对应一组资源,该资源配置表格中的每一列分别对应一种类型的字段,在该资源配置表中,通过资源当前需求状态列中的字段,来判断某组资源是否需要从资源目录中获取。图4提供了一种资源当前需求状态的标记方式,通过E“是否隐藏皮肤”列中的字段,来标记该字段所在行对应一组资源当前是否需要从资源目录中获取,例如,该资源配置表中110行对应的E列字段为1,则该行对应的一组资源不需要从资源目录中获取,该资源配置表中111行对应的E列字段为空,则该行对应的一组资源需要从资源目录中获取。
其中,该资源目录为用于存储多个资源的目录,该资源目录下可以包括多个资源文件夹,每个资源文件夹存储一种类型的资源。
上述资源配置表格,可以灵活地配置资源的当前需求状态,计算机设备根据该资源配置表格判断某资源是否需要从资源目录中获取,将不需要的、弃用的或者后期开放的资源剔除,从而达到减小安装包包体大小的目的。
302、该计算机设备基于该多个资源之间的依赖关系,构建基于该依赖关系的树形结构。
该树形结构可以通过各个节点来表示资源,并采用各个节点之间的连线的箭头指向来表示资源之间的依赖关系。
在一种可能实现方式中,在构建树形结构时,计算机设备可以对多个资源进行分组,得到多个第一资源组,每个第一资源组包括多个资源,每个第一资源组所包括的资源数可以相同也可以不同,本发明实施例对此不做限定。
用一个根节点表示一个第一资源组,以一个根节点为例,基于该根节点所表示的第一资源组内的各个第一资源以及多个资源之间的依赖关系,确定该各个第一资源所依赖的至少一个第二资源,用一个根节点的子节点来表示一个第二资源,再基于第二资源和该多个资源之间的依赖关系,确定该至少一个第二资源所依赖的资源,上述过程中,基于已生成节点的资源来确定该资源所依赖的资源,通过层层递进的类递归的方式,用树形结构中的节点以及节点之间的关系,来表示资源之间的依赖关系。
例如,有多个资源分别为资源1、资源2、资源3、资源4以及资源5,计算机设备将上述资源进行分组,得到资源组A和资源组B,其中,资源组A包括资源1、资源2和资源3,资源组B包括资源4和资源5,参见图5所示的依赖关系树形图,用根节点A表示资源组A,基于资源组A中的多个资源及资源组B中的多个资源之间的依赖关系,确定资源组A中的多个资源所依赖的多个资源,此处资源组A中的多个资源有两个依赖资源,分别用节点B和节点C表示,再基于节点B和节点C中的资源以及其他多个资源之间的依赖关系,分别确定节点B和节点C中的资源所依赖的多个资源,此处节点B中的资源有一个依赖资源,节用点D表示,节点C中的资源有两个依赖资源,分别用节点E和节点F表示。
上述过程可以达到将多个资源进行分层,从而维护出资源的依赖树关系,使得后续可以基于该用于表示依赖关系的树形结构进行进一步的资源包生成过程。
303、该计算机设备基于该树形结构,对该多个资源进行分组,得到多个资源组,每个资源组包括至少一个资源。
该分组过程是将依赖其他资源的资源和被资源所依赖的资源进行了分组,以区分资源和其他资源之间的关系,该分组的结果可以作为后续基于类型进一步进行资源包生成的基础。
在一种可能实现方式中,在进行分组时,首先,可以基于节点间的连接关系,去除只被同一节点依赖的节点以及一个根节点下的重复节点。其次,该计算机设备获取被多个根节点依赖的节点。最后,基于上述全部根节点和获取到的节点,进行资源分组,一个根节点对应的资源组分为一组,一个节点对应的资源分为一组。
在一种可能实现方式中,在进行分组之前,还可以记录树形结构中各个节点之间的连接关系,例如,该方法还包括:该计算机设备可以用哈希表(HashSet)记录每个节点之间的连接关系。上述哈希表是存在于java.util包中的类,用于储存不重复的对象,此处可以用于记录每个节点的连接关系,当需要进行分组时,该计算机设备可以通过读取哈希表来执行步骤303。在上述过程中,通过哈希表所记录的连接关系来进行分组,可以无需对树形结构的再次分析,而是直接基于哈希表的统计来判断资源是否为重复节点以及某个节点是否为多个节点所依赖等关系,可以大大提高处理效率。
上述步骤302至303是基于多个资源之间的依赖关系,对多个资源进行分组的过程,通过上述分组过程,可以确定对用于构建资源包的最小单元,也即是资源组。通过构建资源之间依赖关系的树形结构,并根据所述树形结构对所述多个资源进行分组,可以有效地减少资源冗余。
304、该计算机设备针对不同类型的资源组,按照不同方式构建资源包。
对于各个资源组来说,每个资源组内的资源对应于一个资源类型,而不同类型的资源具有不同的特性,可以基于这些特性来确定不同的资源包构建方式,以实现资源包的整合,达到减少资源包总量的目的。
该计算机设备可以识别各个资源组的资源类型,根据目标对应关系,获取与该资源类型对应的资源包构建方式,其中,目标对应关系包括各个资源包构建方式以及其对应的资源类型,基于该资源包构建方式,来构建资源包。
例如,本发明实施例提供了一种目标对应关系,以游戏资源为例,参见图6,游戏资源可分为着色器(Shader)类、公用动画类、特效类、角色卡牌类等资源类型,无明确分类的资源归为默认类型。
对于着色器类型的资源组,将属于着色器类型的至少一个资源组构建成一个资源包;对于公用动画基类型的资源组,将属于公用动画基类型的至少一个资源组构建成一个资源包;对于特效类型的资源组,将多个LOD(Level of Detail,多层次细节)层的至少一个资源组构建成一个资源包;对于角色卡牌类型的资源组,将在资源目录中属于同一个目录的资源组构建成一个资源包;对于默认类型的资源组,将按照依赖分析的结果构建资源包,即,若多个资源都依赖某个资源,被依赖的资源只构建一个资源包,依赖它的资源共同引用这个资源包。
305、该计算机设备将全部资源包存储至目标目录,基于全部资源包和该目标目录,生成一个应用安装包。
上述目标目录可以为数据流资源(StreamingAssets)文件夹,该文件夹是Unity工程中的文件夹,可用来存放资源包。本发明实施例对具体采用何种封装方式来生成应用安装包不做限定。
当然,当应用安装包生成完毕后,技术人员可以对应用安装包进行检测等处理后,再发布至服务器,由服务器进行安全检测等过程,并提供给用户进行下载。
通过上述应用安装包生成过程可以看出,相对于相关技术中的应用安装包生成方案,本发明实施例提供的方案,通过先基于依赖关系来进行分组,从而再基于所分组得到的各个资源组以及各个资源组的类型,来应用不同的资源包构建方式创建资源包,以实现应用安装包的生成,由于考虑到依赖关系和资源类型,也就平衡了资源包的冗余和粒度,使得在计算机设备加载这些资源包时,可以避免对内存占用过大以及资源的重复,且可以大大减少耗能和发热,从而达到优化内存和提高运行效率的目的,避免对终端的正常运行造成影响。
在应用运行过程中,为降低串行化文件内存占用和减少资源重复,计算机设备根据不同的资源类型,用不同的方式来处理资源包的卸载,以达到优化内存的目的。图7是本发明实施例提供的一种资源包卸载方法的流程图,参见图7,该实施例具体可以包括以下步骤:
701、计算机设备下载并安装应用安装包,该应用安装包包括多个资源包。
该应用安装包可以是基于上述图3所示的应用安装包生成方法所得到的安装包。
702、在该应用的运行过程中,计算机设备根据运行场景,加载该多个资源包。
根据运行场景加载部分资源包。例如,某个场景只需要几个元素,那么只加载相关的资源包。
703、该计算机设备对于已加载的资源包,根据不同使用需求,对对应的资源包进行不同方式的卸载。
当某一类型的资源的使用需求指示该资源为公用资源时,例如着色器类型的资源和公用动画基类型的资源,则在加载了该类型的资源后,可以将该类型资源对应的资源包常驻内存,也即是,该方法包括:当加载了第一类型的资源后,保持该第一类型的资源包常驻内存。其中,第一类型为公用资源的资源类型。
当某一类型的资源的使用需求指示该资源在应用运行过程中需要多次加载时,例如UI类型的资源,则在加载了该类型的资源后,对该类型资源对应的资源包添加引用计数手动管理卸载,当该资源包内的资源被引用时,该资源包的引用计数加1,当该资源包内的资源被引用结束时,该资源包的引用计数减1,当该资源包的引用计数为0时,该资源包被卸载,也即是,该方法包括:当加载了第二类型的资源后,对该类型资源对应的资源包添加引用计数手动管理卸载。其中,第二类型为在应用运行过程中需要多次加载的资源类型。通过对所述资源包添加引用计数,进行资源包管理,可以有效地避免一些因资源包被反复加载和卸载,所导致的资源重复问题。
当某一类型的资源的使用需求指示该资源在应用运行过程中可能只需要加载一次时,则在加载了该类型的资源后,立即卸载该资源对应的资源包,也即是,该方法包括:当加载了第三类型的资源后,立即卸载该类型资源对应的资源包。其中,第三类型为在应用运行过程中可能只需要加载一次的资源类型。
当某一类型的资源无法预期使用需求时,可以通过配置缓存的方式对该类型资源对应的资源包进行管理,加入到配置中的资源包不会在其对应的资源加载完后被立即卸载,而是等到该资源包对应的场景切换至其他场景时卸载,也即是,该方法包括:当加载了第四类型的资源后,对该类型资源对应的资源包应用配置缓存的方式进行管理。其中,第四类型为无法预期使用需求的资源类型。例如,图8提供了一种可能的卸载资源包的配置缓存方式。
需要说明的是,除了常驻内存的资源包,没有被立即卸载的所有资源包都会在该资源包对应的场景切换至其他场景时卸载。
例如,以游戏应用为例,在游戏运行过程中,如果过多的资源包加载到内存后,不及时卸载掉,会导致串行化文件占用内存过高,而如果资源包在资源加载完成后立即卸载,当需要再次加载该资源时,又会导致内存中出现多份资源,资源占用内存升高。而采用本发明实施例提供的资源卸载方式,则可以平衡串行化文件的内存占用度和资源重复,以达到内存最优。
图9是本发明实施例提供的一种应用安装包生成装置的结构示意图,参见图9,该装置包括:
获取模块901,用于获取待生成安装包的多个资源;
分组模块902,用于基于该多个资源之间的依赖关系,对该多个资源进行分组,得到多个资源组,每个资源组包括至少一个资源;
构建模块903,用于针对不同类型的资源组,按照不同的构建方式,构建多个资源包;
生成模块904,用于将该多个资源包存储至目标目录,基于该多个资源包和目标目录,生成一个应用安装包。
在一种可能实现方式中,该构建模块包括:
构建方式确定单元,用于识别各个资源组的资源类型,根据目标对应关系,获取与该各个资源组的资源类型对应的资源包构建方式,其中,目标对应关系包括各个资源包构建策略以及其对应的资源类型;
构建单元,用于基于该各个资源组的资源类型对应的资源包构建方式,来构建资源包。
在一种可能实现方式中,构建单元用于执行下述至少一项步骤:
对于着色器类型的资源组,将属于着色器类型的至少一个资源组构建成一个资源包;
对于公用动画基类型的资源组,将属于公用动画基类型的至少一个资源组构建成一个资源包;
对于特效类型的资源组,将多个多层次细节层的至少一个资源组构建成一个资源包;
对于角色卡牌类型的资源组,将在资源目录中属于同一个目录的资源组构建成一个资源包;
对于默认类型的资源组,将按照依赖分析的结果构建资源包,即,若多个资源都依赖某个资源,被依赖的资源只构建一个资源包,依赖它的资源共同引用这个资源包。
在一种可能实现方式中,该获取模块用于:根据资源配置表格,从该资源配置表格所指示的资源目录中,获取多个资源,该资源配置表格用于提供待进行安装包生成的资源信息。
在一种可能实现方式中,该分组模块用于:
基于该多个资源之间的依赖关系,构建基于该依赖关系的树形结构;
基于该树形结构,对该多个资源进行分组,得到多个资源组,每个资源组包括至少一个资源。
在一种可能实现方式中,该装置还包括:
记录模块,用于记录该树形结构中各个节点之间的连接关系;
该分组模块用于基于该连接关系执行该基于该树形结构,对该多个资源进行分组,得到多个资源组的步骤。
在一种可能实现方式中,不同使用需求对应的资源包对应于不同的卸载方式。
在一种可能实现方式中,当任一资源包的使用需求为反复加载时,对应于该资源包添加引用计数,当该资源包内的资源被引用时,该引用计数加1,当该资源包内的资源被引用结束时,该引用计数减1,当该引用计数为0时,该资源包被卸载。
通过上述应用安装包生成过程可以看出,相对于相关技术中的应用安装包生成方案,本发明实施例提供的方案,通过先基于依赖关系来进行分组,从而再基于所分组得到的各个资源组以及各个资源组的类型,来应用不同的资源包构建方式创建资源包,以实现应用安装包的生成,由于考虑到依赖关系和资源类型,也就平衡了资源包的冗余和粒度,使得在计算机设备加载这些资源包时,可以避免对内存占用过大以及资源的重复,且可以大大减少耗能和发热,从而达到优化内存和提高运行效率的目的,避免对终端的正常运行造成影响。
需要说明的是:上述实施例提供的应用安装包生成装置在应用安装包生成时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用安装包生成装置与应用安装包生成方法实施例属于同一构思,其具体实现过程详见应用安装包生成方法实施例,这里不再赘述。
图10是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)1001和一个或一个以上的存储器1002,其中,该存储器1002中存储有至少一条指令,该至少一条指令由该处理器1001加载并执行以实现上述各个方法实施例提供的应用安装包生成方法。当然,该计算机设备还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中的应用安装包生成方法。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种应用安装包生成方法,其特征在于,所述方法包括:
获取待生成安装包的多个资源;
基于所述多个资源之间的依赖关系,对所述多个资源进行分组,得到多个资源组,每个资源组包括至少一个资源;
针对不同类型的资源组,按照不同的构建方式,构建多个资源包;
将所述多个资源包存储至目标目录,基于所述多个资源包和目标目录,生成一个应用安装包。
2.根据权利要求1所述的方法,其特征在于,所述针对不同类型的资源组,按照不同的构建方式,构建多个资源包包括:
识别各个资源组的资源类型,根据目标对应关系,获取与所述各个资源组的资源类型对应的资源包构建方式,其中,目标对应关系包括各个资源包构建策略以及其对应的资源类型;
基于所述各个资源组的资源类型对应的资源包构建方式,来构建资源包。
3.根据权利要求2所述的方法,其特征在于,所述基于所述各个资源组的资源类型对应的资源包构建方式,来构建资源包包括下述至少一个步骤:
对于着色器类型的资源组,将属于着色器类型的至少一个资源组构建成一个资源包;
对于公用动画基类型的资源组,将属于公用动画基类型的至少一个资源组构建成一个资源包;
对于特效类型的资源组,将多个多层次细节层的至少一个资源组构建成一个资源包;
对于角色卡牌类型的资源组,将在资源目录中属于同一个目录的资源组构建成一个资源包;
对于默认类型的资源组,将按照依赖分析的结果构建资源包,即,若多个资源都依赖某个资源,被依赖的资源只构建一个资源包,依赖它的资源共同引用这个资源包。
4.根据权利要求1所述的方法,其特征在于,所述获取待生成安装包的多个资源包括:
根据资源配置表格,从所述资源配置表格所指示的资源目录中,获取多个资源,所述资源配置表格用于提供待进行安装包生成的资源信息。
5.根据权利要求1所述的方法,其特征在于,所述基于所述多个资源之间的依赖关系,对所述多个资源进行分组包括:
基于所述多个资源之间的依赖关系,构建基于所述依赖关系的树形结构;
基于所述树形结构,对所述多个资源进行分组,得到多个资源组,每个资源组包括至少一个资源。
6.根据权利要求5所述的方法,其特征在于,所述基于所述多个资源之间的依赖关系,构建基于所述依赖关系的树形结构之后,所述方法还包括:
记录所述树形结构中各个节点之间的连接关系;
基于所述连接关系执行所述基于所述树形结构,对所述多个资源进行分组,得到多个资源组的步骤。
7.根据权利要求1所述的方法,其特征在于,不同使用需求对应的资源包对应于不同的卸载方式。
8.根据权利要求7所述的方法,其特征在于,当任一资源包的使用需求为反复加载时,对应于所述资源包添加引用计数,当所述资源包内的资源被引用时,所述引用计数加1,当所述资源包内的资源被引用结束时,所述引用计数减1,当所述引用计数为0时,所述资源包被卸载。
9.一种应用安装包生成装置,其特征在于,所述装置包括:
获取模块,用于获取待生成安装包的多个资源;
分组模块,用于基于所述多个资源之间的依赖关系,对所述多个资源进行分组,得到多个资源组,每个资源组包括至少一个资源;
构建模块,用于针对不同类型的资源组,按照不同的构建方式,构建多个资源包;
生成模块,用于将所述多个资源包存储至目标目录,基于所述多个资源包和所述目标目录,生成一个应用安装包。
10.一种计算机设备,其特征在于,所述计算机设备包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储有至少一条指令,所述指令由所述至少一个处理器加载并执行以实现如权利要求1至8任一项所述的应用安装包生成所执行的操作。
CN201910345392.8A 2019-04-26 2019-04-26 应用安装包生成方法及装置 Active CN110109687B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910345392.8A CN110109687B (zh) 2019-04-26 2019-04-26 应用安装包生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910345392.8A CN110109687B (zh) 2019-04-26 2019-04-26 应用安装包生成方法及装置

Publications (2)

Publication Number Publication Date
CN110109687A true CN110109687A (zh) 2019-08-09
CN110109687B CN110109687B (zh) 2023-06-30

Family

ID=67486965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910345392.8A Active CN110109687B (zh) 2019-04-26 2019-04-26 应用安装包生成方法及装置

Country Status (1)

Country Link
CN (1) CN110109687B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112882746A (zh) * 2021-02-03 2021-06-01 网易(杭州)网络有限公司 应用程序的更新方法、装置、存储介质及计算机设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070031378A (ko) * 2004-06-08 2007-03-19 다트디바이시스 코포레이션 디바이스 팀 모집을 위한 아키텍쳐 장치 및 방법 그리고보편적 디바이스 상호운용성 플랫폼 관련 애플리케이션들을위한 콘텐트 렌디셔닝
CN102103518A (zh) * 2011-02-23 2011-06-22 运软网络科技(上海)有限公司 一种在虚拟化环境中管理资源的系统及其实现方法
CN102263805A (zh) * 2010-05-25 2011-11-30 腾讯科技(北京)有限公司 一种动态资源下载的方法和装置
CN105354049A (zh) * 2015-09-29 2016-02-24 北京畅游天下网络技术有限公司 一种三维动画引擎的资源加载方法、装置及系统
CN105635264A (zh) * 2016-03-28 2016-06-01 庄铭宇 一种基于网络游戏应用的文件系统
CN106155651A (zh) * 2015-03-31 2016-11-23 广州四三九九信息科技有限公司 应用程序版本的自动化发布及更新的方法和系统
CN108287791A (zh) * 2018-01-17 2018-07-17 福建天晴数码有限公司 虚拟现实软件的纹理资源配置的检测方法及存储介质
CN108536463A (zh) * 2018-04-09 2018-09-14 深圳市腾讯网络信息技术有限公司 获取资源包的方法、装置、设备及计算机可读存储介质
CN108888951A (zh) * 2018-06-25 2018-11-27 网易(杭州)网络有限公司 游戏资源处理方法和装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070031378A (ko) * 2004-06-08 2007-03-19 다트디바이시스 코포레이션 디바이스 팀 모집을 위한 아키텍쳐 장치 및 방법 그리고보편적 디바이스 상호운용성 플랫폼 관련 애플리케이션들을위한 콘텐트 렌디셔닝
CN102263805A (zh) * 2010-05-25 2011-11-30 腾讯科技(北京)有限公司 一种动态资源下载的方法和装置
CN102103518A (zh) * 2011-02-23 2011-06-22 运软网络科技(上海)有限公司 一种在虚拟化环境中管理资源的系统及其实现方法
CN106155651A (zh) * 2015-03-31 2016-11-23 广州四三九九信息科技有限公司 应用程序版本的自动化发布及更新的方法和系统
CN105354049A (zh) * 2015-09-29 2016-02-24 北京畅游天下网络技术有限公司 一种三维动画引擎的资源加载方法、装置及系统
CN105635264A (zh) * 2016-03-28 2016-06-01 庄铭宇 一种基于网络游戏应用的文件系统
CN108287791A (zh) * 2018-01-17 2018-07-17 福建天晴数码有限公司 虚拟现实软件的纹理资源配置的检测方法及存储介质
CN108536463A (zh) * 2018-04-09 2018-09-14 深圳市腾讯网络信息技术有限公司 获取资源包的方法、装置、设备及计算机可读存储介质
CN108888951A (zh) * 2018-06-25 2018-11-27 网易(杭州)网络有限公司 游戏资源处理方法和装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
GREAMBWANG: "Unity AssetBundle资源打包", 《HTTPS://BLOG.CSDN.NET/WEIXIN_38211198/ARTICLE/DETAILS/88753795》 *
GREAMBWANG: "Unity AssetBundle资源打包", 《HTTPS://BLOG.CSDN.NET/WEIXIN_38211198/ARTICLE/DETAILS/88753795》, 22 March 2019 (2019-03-22), pages 1 - 3 *
邹慕蓉;胡勇;: "基于多类特征的Android应用重打包检测方法", 现代计算机(专业版), no. 07, pages 52 - 56 *
马瑞: "三维虚拟数字校园系统的资源封包设计", 《长江大学学报(自科版)》 *
马瑞: "三维虚拟数字校园系统的资源封包设计", 《长江大学学报(自科版)》, no. 34, 5 December 2014 (2014-12-05), pages 54 - 56 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112882746A (zh) * 2021-02-03 2021-06-01 网易(杭州)网络有限公司 应用程序的更新方法、装置、存储介质及计算机设备
CN112882746B (zh) * 2021-02-03 2023-07-07 网易(杭州)网络有限公司 应用程序的更新方法、装置、存储介质及计算机设备

Also Published As

Publication number Publication date
CN110109687B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
CN109144731A (zh) 数据处理方法、装置、计算机设备及存储介质
CN108200203B (zh) 基于双层网络的区块链系统
WO2018149345A1 (zh) 一种数据处理方法及装置
CN108846659A (zh) 基于区块链的转账方法、装置及存储介质
CN109194584A (zh) 一种流量监控方法、装置、计算机设备及存储介质
CN108132830A (zh) 一种任务调度方法、装置及系统
CN109769028A (zh) Redis集群管理方法、装置、设备及可读存储介质
CN108667867A (zh) 数据存储方法及装置
CN103607424B (zh) 一种服务器连接方法及服务器系统
CN107894920A (zh) 资源配置方法及相关产品
CN107784105A (zh) 基于海量问题的知识库构建方法、电子装置及存储介质
Li et al. Amoeba: Qos-awareness and reduced resource usage of microservices with serverless computing
CN108900626A (zh) 一种云环境下数据存储方法、装置及系统
CN109936606A (zh) 任务分配方法和装置
CN109542512A (zh) 一种数据处理方法、装置和存储介质
CN108650334A (zh) 一种会话失效的设置方法及装置
CN107102896A (zh) 一种多级缓存的操作方法、装置及电子设备
CN106357791A (zh) 业务处理方法、装置及系统
CN106294198B (zh) 一种Linux操作系统的内存分配方法及释放方法
CN111585798B (zh) 一种网络资源参数配置方法、装置和计算机可读存储介质
CN109947568A (zh) 定时任务处理方法、系统、计算机设备及存储介质
CN116700920A (zh) 云原生混合部署集群资源调度方法及装置
CN110109687A (zh) 应用安装包生成方法及装置
CN107395708A (zh) 一种处理下载请求的方法和装置
Chen et al. Dosas: Mitigating the resource contention in active storage systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant