CN110032384B - 资源更新的方法、装置、设备及存储介质 - Google Patents

资源更新的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110032384B
CN110032384B CN201910314707.2A CN201910314707A CN110032384B CN 110032384 B CN110032384 B CN 110032384B CN 201910314707 A CN201910314707 A CN 201910314707A CN 110032384 B CN110032384 B CN 110032384B
Authority
CN
China
Prior art keywords
resource
updated
updating
update
package
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.)
Active
Application number
CN201910314707.2A
Other languages
English (en)
Other versions
CN110032384A (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 Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910314707.2A priority Critical patent/CN110032384B/zh
Publication of CN110032384A publication Critical patent/CN110032384A/zh
Application granted granted Critical
Publication of CN110032384B publication Critical patent/CN110032384B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种资源更新的方法、装置、设备及存储介质,属于计算机技术领域。方法包括:获取资源更新指令;基于所述资源更新指令,获取待更新的第一资源,确定所述第一资源所依赖的第二资源;对于每个第一资源,若所述第一资源所依赖的第二资源为非待更新的第一资源,则断开所述第一资源与所依赖的第二资源的依赖关系,更新所述第一资源;对更新后的第一资源进行打包,得到更新资源包。若第一资源所依赖的第二资源不是需要更新的资源,则断开第一资源与所依赖的第二资源的依赖关系,然后再更新第一资源。在对更新后的资源进行打包时,只打包更新后的第一资源,不打包第一资源所依赖的第二资源,节省时间,提高打包效率,还会节省存储空间。

Description

资源更新的方法、装置、设备及存储介质
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种资源更新的方法、装置、设备及存储介质。
背景技术
Unity是一个全面整合的专业游戏引擎,可以用于创建诸如三维视频游戏、建筑可视化、实时三维动画等类型的互动内容。在Unity引擎下,一般通过将资源打包成资源包的方式进行动态资源加载和更新。如何进行资源更新,是影响资源使用效果的关键。
相关技术中,在发布应用安装包时,把所有资源打包,在更新某一资源时,将该资源和与该资源存在依赖关系的资源对应的资源包解压,然后将更新后的资源和与该资源存在依赖关系的资源一起打包成更新的资源包。
在实现本申请的过程中,发明人发现相关技术至少存在以下问题:
相关技术中,在更新某一资源时,将更新后的资源和与该资源存在依赖关系的资源一起打包,不仅花费较多时间,打包效率低,而且还会占用额外的存储空间。
发明内容
本申请实施例提供了一种资源更新的方法、装置、设备及存储介质,可用于解决相关技术中的问题。所述技术方案如下:
一方面,本申请实施例提供了一种资源更新的方法,所述方法包括:
获取资源更新指令,所述资源更新指令用于指示待更新的第一资源的信息,所述待更新的第一资源为一个或者多个;
基于所述资源更新指令,获取待更新的第一资源,确定所述第一资源所依赖的第二资源;
对于每个第一资源,若所述第一资源所依赖的第二资源为非待更新的第一资源,则断开所述第一资源与所依赖的第二资源的依赖关系,更新所述第一资源;
对更新后的第一资源进行打包,得到更新资源包。
还提供了一种资源更新的方法,所述方法包括:
下载更新资源包,对所述更新资源包进行解包,得到更新后的资源,所述更新后的资源包含一个或多个更新后的第一资源;
基于所述更新后的第一资源的依赖资源信息,确定所述更新后的第一资源所依赖的第二资源;
还原所述更新后的第一资源及所述第二资源的依赖关系。
另一方面,提供了一种资源更新的装置,所述装置包括:
第一获取模块,用于获取资源更新指令,所述资源更新指令用于指示待更新的第一资源的信息,所述待更新的第一资源为一个或者多个;
第二获取模块,用于基于所述资源更新指令,获取待更新的第一资源;
确定模块,用于确定所述第一资源所依赖的第二资源;
断开模块,用于对于每个第一资源,若所述第一资源所依赖的第二资源为非待更新的第一资源,则断开所述第一资源与所依赖的第二资源的依赖关系;
更新模块,用于更新所述第一资源;
打包模块,用于对更新后的第一资源进行打包,得到更新资源包。
还提供了一种资源更新的装置,所述装置包括:
第一下载模块,用于下载更新资源包;
解包模块,用于对所述更新资源包进行解包,得到更新后的资源,所述更新后的资源包含一个或多个更新后的第一资源;
确定模块,用于基于所述更新后的第一资源的依赖资源信息,确定所述更新后的第一资源所依赖的第二资源;
还原模块,用于还原所述更新后的第一资源及所述第二资源的依赖关系。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令在被所述处理器执行时实现上述任一所述的资源更新的方法。
另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述至少一条指令在被执行时实现上述任一所述的资源更新的方法。
本申请实施例提供的技术方案至少带来如下有益效果:
在更新第一资源时,若第一资源所依赖的第二资源不是需要更新的资源,则断开第一资源与所依赖的第二资源的依赖关系,然后再更新第一资源。在对更新后的资源进行打包时,只打包更新后的第一资源,不打包第一资源所依赖的第二资源,不仅节省时间,提高打包效率,而且还会节省存储空间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的一种资源更新的方法流程图;
图3是本申请实施例提供的一种资源之间的依赖关系示意图;
图4是本申请实施例提供的一种资源更新的方法流程图;
图5是本申请实施例提供的一种资源在应用程序中的存储状态示意图;
图6是本申请实施例提供的一种还原第一资源及第二资源的依赖关系的过程示意图;
图7是本申请实施例提供的一种资源更新的装置示意图;
图8是本申请实施例提供的一种资源更新的装置示意图;
图9是本申请实施例提供的一种资源更新的装置示意图;
图10是本申请实施例提供的一种资源更新的装置示意图;
图11是本申请实施例提供的一种服务器的结构示意图;
图12是本申请实施例提供的一种终端的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
Unity是一个全面整合的专业游戏引擎,可以用于创建诸如三维视频游戏、建筑可视化、实时三维动画等类型的互动内容。在Unity引擎下,一般通过将资源打包成资源包的方式进行动态资源加载和更新。如何进行资源更新,是影响资源使用效果的关键。
对此,本申请实施例提供了一种资源更新的方法,请参考图1,其示出了本申请实施例提供的方法实施环境的示意图。该实施环境可以包括:至少一个第一终端11、至少一个第二终端12和服务器13。
其中,第一终端11可以用于开发和发布应用程序,第二终端12可以用于下载和使用应用程序。当该应用程序需要更新资源时,可应用本申请实施例提供的方法进行资源更新。第一终端11可以获取更新资源包,将该更新资源包上传至服务器13上进行保存。第一终端11上也可以对该更新资源包进行保存。第二终端12可以从服务器13上下载更新资源包,也可以对该更新资源包进行保存。
可选地,第一终端11和第二终端12可以是诸如手机、平板电脑、个人计算机等电子设备。服务器13可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。第一终端11与服务器13通过有线或无线网络建立通信连接,第二终端12与服务器13通过有线或无线网络建立通信连接。
本领域技术人员应能理解上述发布第一终端11、第二终端12和服务器13仅为举例,其他现有的或今后可能出现的终端或服务器如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
基于上述图1所示的实施环境,本申请实施例提供一种资源更新的方法,以该方法应用于第一终端为例,第一终端可以用于开发和发布应用程序。如图2所示,本申请实施例提供的方法可以包括如下几个步骤:
在步骤201中,获取资源更新指令,资源更新指令用于指示待更新的第一资源的信息,待更新的第一资源为一个或者多个。
应用程序的资源更新分为两种情况:安装包更新和资源的热更新。其中,安装包更新需要更新所有的资源;资源的热更新是指在不用更新安装包的情况下,更新需要更新的部分资源。无论是安装包更新还是资源的热更新,在需要更新资源时,均可以采用本申请实施例提供的资源更新的方法对资源进行更新。
资源更新指令用于指示待更新的第一资源的信息,待更新的第一资源的信息可以包括待更新的第一资源的存储路径、待更新的第一资源的资源名称等信息。在获取资源更新指令之后,才能确定哪些资源是待更新的第一资源。一般而言,待更新的第一资源是指在应用程序中,需要删减、更改或者添加的资源。待更新的第一资源可以为一个或多个。例如,以游戏类应用程序为例,待更新的第一资源可以为贴图、材质、模型、动画、网格、预制件、场景等常用资源中的一个或多个。
可选地,在获取资源更新指令之前,第一终端存储应用程序的所有资源,所有的资源的存储状态都可以为打包状态或者非打包状态。此外,获取资源更新指令的方式包括但不限于检测更新选项是否被触发,若检测到任一应用程序的更新选项被触发,则获取到针对该应用程序的资源更新指令。例如,针对每个应用程序可以提供对应的更新选项,还可以细化到提供对应每个资源的更新选项,则检测到哪个应用程序对应的更新选项被触发,则进一步检测哪个资源的更新选项被触发,则检测到该应用程序的资源更新指令,该资源更新指令用于指示待更新的第一资源的信息。
在步骤202中,基于资源更新指令,获取待更新的第一资源,确定第一资源所依赖的第二资源。
由于资源可以有打包状态和非打包状态,因而基于资源更新指令,获取待更新的第一资源,包括但不限于如下两种方式:
方式一:若应用程序的所有资源均为打包状态,则获取待更新的第一资源的方式为:根据资源更新指令指示的待更新的第一资源的信息,得到待更新的第一资源包,将该待更新的第一资源的资源包进行解包,得到待更新的第一资源。
方式二:若应用程序的所有资源均为非打包状态,则获取待更新的第一资源的方式为:根据资源更新指令指示的待更新的第一资源的信息,直接得到待更新的第一资源。
在获取待更新的第一资源之后,根据获取的待更新的第一资源,确定第一资源所依赖的第二资源。第二资源也可以为打包状态或者非打包状态。
第一资源所依赖的第二资源是指第一资源在使用时需要调用的相关资源。在使用某一资源之前,需要将额外的一个或多个资源预先加载,即构成了依赖关系,一个资源可以依赖于多个资源。例如,以游戏类应用程序为例,如图3所示,该应用程序中包含贴图1、贴图2、动画1、材质1、材质2、网格1、预制件1、预制件2、场景1和场景2这9个资源。其中,贴图1、贴图2、动画1不依赖于任何资源,材质1依赖于贴图2,材质2依赖于贴图1和动画1,网格1依赖于动画1,预制件1依赖于材质1和网格1,预制件2依赖于材质2,场景1依赖于预制件1和预制件2,场景2依赖于预制件2。
由于待更新的第一资源可能为一个或者多个,所以需要确定每个第一资源所依赖的第二资源。其中,每个第一资源所依赖的第二资源可能为一个或多个。例如,如图3所示,若某个第一资源为材质1,则该第一资源所依赖的第二资源为贴图2,第二资源为一个;若某个第一资源为材质2,则该第一资源所依赖的第二资源为贴图1和动画1,第二资源为两个。
根据待更新的第一资源和第一资源所依赖的第二资源,可以得到第一资源的依赖资源信息,该依赖资源信息可以与第一资源一起存储于应用程序的本地文件中,也可以单独上传至服务器,供客户端下载。可选地,第一资源的依赖资源信息可以包括每个第一资源的名称、每个第一资源的存储路径、每个第一资源所依赖的第二资源的个数、每个第一资源所依赖的每个第二资源的名称、每个第一资源所依赖的每个第二资源的存储路径等信息。
在步骤203中,对于每个第一资源,若第一资源所依赖的第二资源为非待更新的第一资源,则断开第一资源与所依赖的第二资源的依赖关系,更新第一资源。
对于每个第一资源,根据该第一资源,可以确定该第一资源所依赖的第二资源。识别该第一资源所依赖的第二资源,若该第一资源所依赖的第二资源不属于待更新的资源,即不在本次待更新的第一资源范围内,则断开该第一资源与所依赖的第二资源的依赖关系。如此可以在打包时不对第一资源所依赖的第二资源进行打包,避免打包冗余资源。若该第一资源所依赖的第二资源属于待更新的资源,即该第二资源在本次待更新的第一资源范围内,则需要与第一资源一起进行打包,并不会对打包产生额外的操作和空间冗余,该第二资源并不是冗余资源,因而可保留该第一资源与所依赖的第二资源的依赖关系。
例如,如图3所示,假设待更新的第一资源为框中的贴图1、贴图2、材质1和材质2。其中,贴图1和贴图2无依赖资源,材质1所依赖的第二资源为贴图2,材质2所依赖的第二资源为贴图1和动画1。由于贴图1和贴图2属于待更新的第一资源,动画1不属于待更新的第一资源,所以保留材质1与所依赖的贴图2的依赖关系,保留材质2与所依赖的贴图1的依赖关系,断开材质2与所依赖的动画1的依赖关系。
可选地,上述操作发生在离线构建时,离线是指应用程序未上线,此时应用程序可能处于开发阶段或者调试阶段。
可选地,断开第一资源与所依赖的第二资源的依赖关系的操作利用打包器进行,一类资源对应一个打包器。例如,图3中的材质1和材质2对应一个打包器,贴图1和贴图2对应另外一个打包器。
此处需要说明的是,上述断开第一资源与所依赖的第二资源的依赖关系的操作不影响第一资源的依赖资源信息,也就是第一资源的依赖资源信息的内容在断开第一资源与所依赖的第二资源的依赖关系的过程中不发生改变。
对待更新的第一资源中的每个第一资源,均完成上述若第一资源所依赖的第二资源不属于待更新的第一资源,则断开第一资源与所依赖的第二资源的依赖关系的操作后,更新第一资源。其中,更新第一资源可以包括对第一资源中的资源进行删减、修改或者添加等。
在更新第一资源之后,还包括:将更新后的第一资源进行存储。
在步骤204中,对更新后的第一资源进行打包,得到更新资源包。
对更新后的第一资源进行打包,由于对不属于第一资源的第二资源的依赖关系断开了,所以得到的更新资源包中只含有待更新的第一资源,无冗余资源,节省存储空间。根据更新资源包包含的资源数量和种类,可以将更新资源包分为:更新安装包和热更新资源包。其中,更新安装包包含所有资源,热更新资源包包含部分资源。
对更新后的第一资源进行打包,得到更新资源包之后,还包括:
将更新资源包上传至服务器,服务器用于为客户端提供下载更新资源包的服务。然后服务器将更新资源包分发至各个内容分发网络(Content Delivery Network,CDN)节点,以供客户端下载。其中,CDN作用是把上传的更新资源包分发到各个网络节点,让客户端可以通过网址下载对应的更新资源包。
若更新资源包为更新安装包,则接收服务器提供的下载更新资源包服务的客户端是应用程序的安装包需要进行更新的客户端。若更新资源包为热更新资源包,则针对的客户端是应用程序中的部分资源需要更新的客户端。
在本申请实施例中,在更新第一资源时,若第一资源所依赖的第二资源不是需要更新的资源,则断开第一资源与所依赖的第二资源的依赖关系,然后再更新第一资源。在对更新后的资源进行打包时,只打包更新后的第一资源,不打包第一资源所依赖的第二资源,不仅节省时间,提高打包效率,而且还会节省存储空间。
基于图1所示的实施环境,本申请实施例还提供一种资源更新的方法,以该方法应用于第二终端为例,第二终端可以用于下载和使用应用程序。如图4所示,本申请实施例提供的方法可以包括如下几个步骤:
在步骤401中,下载更新资源包,对更新资源包进行解包,得到更新后的资源,更新后的资源包含一个或多个更新后的第一资源。
在下载更新资源包之前,还包括:下载资源安装包,资源安装包中包括第一资源和第一资源依赖的第二资源;在沙盒内存储安装包的各个资源,资源可以为打包状态或者非打包状态。沙盒是一种隔离机制,可以限制其他应用程序或者设备系统访问沙盒内的资源和数据的权限,保护沙盒内的资源和数据不能通过第二终端进行操作。在应用程序的沙盒内,应用程序的所有资源均可以以两种状态存在:打包状态或者非打包状态。例如,如图5(1)所示,资源A和资源B均以打包状态存在于应用程序的沙盒内,也就是说资源A和资源B以资源包A和资源包B的形式存储于沙盒内。如图5(2)所示,资源A和资源B均以非打包状态存在于应用程序的沙盒内。
更新资源包可以分为更新安装包和热更新资源包,针对更新资源包是更新安装包还是热更新资源包的不同类型,第二终端下载更新资源包,分为以下几种情况:
情况一:更新资源包是更新安装包,当第二终端启动应用程序时,若检测到该应用程序的安装包需要更新,则从CDN上下载更新安装包。基于更新安装包,重新安装应用程序。此时,更新安装包的所有资源存储于重新安装的应用程序的沙盒内。
情况二:更新资源包是热更新资源包,当第二终端启动该应用程序时,若检测到该应用程序中的部分资源需要更新,则从CDN上下载热更新资源包。此时,热更新资源包存储于应用程序的沙盒外。如图5(1)和(2)所示,假设资源包A为热更新资源包,在下载热更新资源包后,资源包A以打包状态存储于应用程序的沙盒外。
对得到的更新资源包进行解包,得到更新后的资源,更新后的资源包含一个或多个更新后的第一资源。
在步骤402中,基于更新后的第一资源的依赖资源信息,确定更新后的第一资源所依赖的第二资源。
第一资源的依赖资源信息是在应用程序开发过程中就确定的,不发生改变。更新后的第一资源的依赖资源信息与更新前的第一资源的依赖信息相同。得到更新后的第一资源的依赖资源信息的方式有两种:
方式一:若更新前的第一资源的依赖资源信息存储于安装包内,在第二终端下载该安装包后,更新前的第一资源的依赖资源信息与更新前的第一资源一起存储于应用程序的沙盒内。这种情况下,可以从沙盒内获得更新前的第一资源的依赖资源信息,将该更新前的第一资源的依赖资源信息作为更新后的第一资源的依赖资源信息。
方式二:若更新前的第一资源的依赖资源信息单独存储于服务器上,则从服务器上下载更新前的第一资源的依赖资源信息,将该更新前的第一资源的依赖资源信息作为更新后的第一资源的依赖资源信息。
可选地,更新后的第一资源的依赖资源信息可以包括每个第一资源的名称、每个第一资源的存储路径、每个第一资源所依赖的第二资源的个数、每个第一资源所依赖的每个第二资源的名称、每个第一资源所依赖的每个第二资源的存储路径等信息。
根据更新后的第一资源的依赖资源信息,就可以确定更新后的第一资源所依赖的第二资源。由于更新后的第一资源可能为一个或者多个,所以需要确定每个更新后的第一资源所依赖的第二资源。其中,每个更新后的第一资源所依赖的第二资源可能为一个或多个。
在步骤403中,还原更新后的第一资源及第二资源的依赖关系。
根据更新后的第一资源的依赖资源信息,确定更新后的第一资源所依赖的第二资源。识别更新后的第一资源与第一资源所依赖的第二资源之间是否存在依赖关系,若更新后的第一资源与第一资源所依赖的第二资源之间不存在依赖关系,则还原更新后的第一资源与第一资源所依赖的第二资源之间的依赖关系。
例如,以游戏类应用程序为例,如图6的框中所示,更新后的第一资源包括贴图1、贴图2、材质1和材质2。从更新后的第一资源的依赖资源信息中,可以得知贴图1和贴图2不依赖于任何资源,材质1依赖于贴图2,材质2依赖于贴图1和动画1。在更新后的第一资源中,如图6(1)所示,材质1和贴图2之间的依赖关系存在,材质2和贴图1之间的依赖关系存在,但是材质2和动画1之间的依赖关系不存在。然后还原材质2和动画1之间的依赖关系,如图6(2)所示。
还原更新后的第一资源及第二资源的依赖关系之后,还包括:
若更新资源包是更新安装包,则在运行重新安装后的应用程序时,加载更新后的安装包内的所有资源;
若更新资源包是热更新资源包,则在需要使用更新后的第一资源时,加载更新后的第一资源和第一资源所依赖的第二资源。
针对更新资源包是热更新资源包的情况,该更新后的第一资源默认是存储于应用程序的沙盒外的。在该应用程序的安装包更新后,更新后的第一资源包含在更新后的安装包内,第二终端下载更新后的安装包,重新安装应用程序。此时,更新后的安装包内的所有资源都存储至重新安装的应用程序的沙盒内。相应的,更新后的第一资源也存储至应用程序的沙盒内。
在本申请实施例中,在更新第一资源时,若第一资源所依赖的第二资源不是第一资源,则断开第一资源与所依赖的第二资源的依赖关系,然后再更新第一资源。在对更新后的资源进行打包时,只打包更新后的第一资源,不打包第一资源所依赖的第二资源,不仅节省时间,提高打包效率,而且还会节省存储空间。
基于相同技术构思,参见图7,本申请实施例提供了一种资源更新的装置,该装置包括:
第一获取模块701,用于获取资源更新指令,资源更新指令用于指示待更新的第一资源的信息,待更新的第一资源为一个或者多个;
第二获取模块702,用于基于资源更新指令,获取待更新的第一资源;
确定模块703,用于确定第一资源所依赖的第二资源;
断开模块704,用于对于每个第一资源,若第一资源所依赖的第二资源为非待更新的第一资源,则断开第一资源与所依赖的第二资源的依赖关系;
更新模块705,用于更新第一资源;
打包模块706,用于对更新后的第一资源进行打包,得到更新资源包。
可选地,参见图8,该装置还包括:
存储模块707,用于存储第一资源和第一资源所依赖的第二资源,第一资源和第二资源为非打包状态;
第二获取模块702,用于基于资源更新指令所指示的第一资源的信息,获取待更新的第一资源。
可选地,存储模块707,还用于将更新后的第一资源进行存储。
可选地,参见图8,该装置还包括:
上传模块708,用于将更新资源包上传至服务器,服务器用于为客户端提供下载更新资源包服务。
在本申请实施例中,在更新第一资源时,若第一资源所依赖的第二资源不是第一资源,则断开第一资源与所依赖的第二资源的依赖关系,然后再更新第一资源。在对更新后的资源进行打包时,只打包更新后的第一资源,不打包第一资源所依赖的第二资源,不仅节省时间,提高打包效率,而且还会节省存储空间。
参见图9,本申请实施例还提供了一种资源更新的装置,该装置包括:
第一下载模块901,用于下载更新资源包;
解包模块902,用于对更新资源包进行解包,得到更新后的资源,更新后的资源包含一个或多个更新后的第一资源;
确定模块903,用于基于更新后的第一资源的依赖资源信息,确定更新后的第一资源所依赖的第二资源;
还原模块904,用于还原更新后的第一资源及第二资源的依赖关系。
可选地,参见图10,该装置还包括:
第二下载模块905,用于下载资源安装包,资源安装包中包括第一资源和第一资源依赖的第二资源;
存储模块906,用于在沙盒内存储安装包的各个资源,资源为非打包状态。
在本申请实施例中,在更新第一资源时,若第一资源所依赖的第二资源不是第一资源,则断开第一资源与所依赖的第二资源的依赖关系,然后再更新第一资源。在对更新后的资源进行打包时,只打包更新后的第一资源,不打包第一资源所依赖的第二资源,不仅节省时间,提高打包效率,而且还会节省存储空间。
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图11是本申请实施例提供的一种资源更新的设备结构示意图,该设备可以为服务器,服务器可以是单独的服务器或集群服务器。具体来讲:
服务器包括中央处理单元(CPU)1101、随机存取存储器(RAM)1102和只读存储器(ROM)1103的系统存储器1104,以及连接系统存储器1104和中央处理单元1101的系统总线1105。服务器还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1106,和用于存储操作系统1113、应用程序1114和其他程序模块1115的大容量存储设备1107。
基本输入/输出系统1106包括有用于显示信息的显示器1108和用于用户输入信息的诸如鼠标、键盘之类的输入设备1109。其中显示器1108和输入设备1109都通过连接到系统总线1105的输入/输出控制器1110连接到中央处理单元1101。基本输入/输出系统1106还可以包括输入/输出控制器1110以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入/输出控制器1110还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备1107通过连接到系统总线1105的大容量存储控制器(未示出)连接到中央处理单元1101。大容量存储设备1107及其相关联的计算机可读介质为服务器提供非易失性存储。也就是说,大容量存储设备1107可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1104和大容量存储设备1107可以统称为存储器。
根据本申请的各种实施例,服务器还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器可以通过连接在系统总线1105上的网络接口单元1111连接到网络1112,或者说,也可以使用网络接口单元1111来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。一个或者一个以上程序包含用于进行本申请实施例提供的资源更新的方法的指令。
图12是本申请实施例提供的一种资源更新的设备的结构示意图。该设备可以为终端,例如可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group AudioLayer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts GroupAudio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端包括有:处理器1201和存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1201所执行以实现本申请中方法实施例提供的资源更新的方法。
在一些实施例中,终端还可选包括有:外围设备接口1203和至少一个外围设备。处理器1201、存储器1202和外围设备接口1203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1203相连。具体地,外围设备包括:射频电路1204、触摸显示屏1205、摄像头组件1206、音频电路1207、定位组件1208和电源1209中的至少一种。
外围设备接口1203可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1201和存储器1202。在一些实施例中,处理器1201、存储器1202和外围设备接口1203被集成在同一芯片或电路板上;在一些其他实施例中,处理器1201、存储器1202和外围设备接口1203中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1204用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1204通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1204将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1204包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1204可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1204还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1205用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1205是触摸显示屏时,显示屏1205还具有采集在显示屏1205的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1201进行处理。此时,显示屏1205还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1205可以为一个,设置在终端的前面板;在另一些实施例中,显示屏1205可以为至少两个,分别设置在终端的不同表面或呈折叠设计;在再一些实施例中,显示屏1205可以是柔性显示屏,设置在终端的弯曲表面上或折叠面上。甚至,显示屏1205还可以设置成非矩形的不规则图形,也即异形屏。显示屏1205可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1206用于采集图像或视频。可选地,摄像头组件1206包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1206还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1207可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1201进行处理,或者输入至射频电路1204以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1201或射频电路1204的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1207还可以包括耳机插孔。
定位组件1208用于定位终端的当前地理位置,以实现导航或LBS(Location BasedService,基于位置的服务)。定位组件1208可以是基于美国的GPS(Global PositioningSystem,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源1209用于为终端中的各个组件进行供电。电源1209可以是交流电、直流电、一次性电池或可充电电池。当电源1209包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端还包括有一个或多个传感器1210。该一个或多个传感器1210包括但不限于:加速度传感器1211、陀螺仪传感器1212、压力传感器1213、指纹传感器1214、光学传感器1215以及接近传感器1216。
加速度传感器1211可以检测以终端建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1211可以用于检测重力加速度在三个坐标轴上的分量。处理器1201可以根据加速度传感器1211采集的重力加速度信号,控制触摸显示屏1205以横向视图或纵向视图进行用户界面的显示。加速度传感器1211还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1212可以检测终端的机体方向及转动角度,陀螺仪传感器1212可以与加速度传感器1211协同采集用户对终端的3D动作。处理器1201根据陀螺仪传感器1212采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1213可以设置在终端的侧边框和/或触摸显示屏1205的下层。当压力传感器1213设置在终端的侧边框时,可以检测用户对终端的握持信号,由处理器1201根据压力传感器1213采集的握持信号进行左右手识别或快捷操作。当压力传感器1213设置在触摸显示屏1205的下层时,由处理器1201根据用户对触摸显示屏1205的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1214用于采集用户的指纹,由处理器1201根据指纹传感器1214采集到的指纹识别用户的身份,或者,由指纹传感器1214根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1201授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1214可以被设置在终端的正面、背面或侧面。当终端上设置有物理按键或厂商Logo时,指纹传感器1214可以与物理按键或厂商Logo集成在一起。
光学传感器1215用于采集环境光强度。在一个实施例中,处理器1201可以根据光学传感器1215采集的环境光强度,控制触摸显示屏1205的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1205的显示亮度;当环境光强度较低时,调低触摸显示屏1205的显示亮度。在另一个实施例中,处理器1201还可以根据光学传感器1215采集的环境光强度,动态调整摄像头组件1206的拍摄参数。
接近传感器1216,也称距离传感器,通常设置在终端的前面板。接近传感器1216用于采集用户与终端的正面之间的距离。在一个实施例中,当接近传感器1216检测到用户与终端的正面之间的距离逐渐变小时,由处理器1201控制触摸显示屏1205从亮屏状态切换为息屏状态;当接近传感器1216检测到用户与终端的正面之间的距离逐渐变大时,由处理器1201控制触摸显示屏1205从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图12中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集。所述至少一条指令、至少一段程序、代码集或指令集经配置以由一个或者一个以上处理器执行,以实现上述任一种资源更新的方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被计算机设备的处理器执行时实现上述任一种资源更新的方法。
可选地,上述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种资源更新的方法,其特征在于,所述方法包括:
获取资源更新指令,所述资源更新指令用于指示待更新的第一资源的信息,所述待更新的第一资源为一个或者多个;
基于所述资源更新指令,获取待更新的第一资源,确定所述第一资源所依赖的第二资源,所述第一资源和所述第二资源为非打包状态;
对于每个第一资源,若所述第一资源所依赖的第二资源不属于所述待更新的第一资源,则断开所述第一资源与所依赖的第二资源的依赖关系,更新所述第一资源;
对更新后的第一资源进行打包,得到更新资源包。
2.根据权利要求1所述的方法,其特征在于,所述获取资源更新指令之前,还包括:
存储所述第一资源和所述第一资源所依赖的第二资源;
所述基于所述资源更新指令,获取待更新的第一资源,包括:
基于所述资源更新指令所指示的第一资源的信息,获取待更新的第一资源。
3.根据权利要求2所述的方法,其特征在于,所述更新所述第一资源之后,还包括:
将更新后的第一资源进行存储。
4.根据权利要求1-3任一所述的方法,其特征在于,所述对更新后的第一资源进行打包,得到更新资源包之后,还包括:
将所述更新资源包上传至服务器,所述服务器用于为客户端提供下载所述更新资源包服务。
5.一种资源更新的方法,其特征在于,所述方法包括:
下载更新资源包,对所述更新资源包进行解包,得到更新后的资源,所述更新后的资源包含一个或多个更新后的第一资源;
基于所述更新后的第一资源的依赖资源信息,确定所述更新后的第一资源所依赖的第二资源,所述更新后的第一资源和所述第二资源为非打包状态;
若所述更新后的第一资源与所述第二资源的依赖关系被断开,则还原所述更新后的第一资源及所述第二资源的依赖关系。
6.根据权利要求5所述的方法,其特征在于,所述下载更新资源包之前,还包括:
下载资源安装包,所述资源安装包中包括第一资源和所述第一资源依赖的第二资源;
在沙盒内存储所述安装包的各个资源,所述资源为非打包状态。
7.一种资源更新的装置,其特征在于,所述装置包括:
第一获取模块,用于获取资源更新指令,所述资源更新指令用于指示待更新的第一资源的信息,所述待更新的第一资源为一个或者多个;
第二获取模块,用于基于所述资源更新指令,获取待更新的第一资源;
确定模块,用于确定所述第一资源所依赖的第二资源,所述第一资源和所述第二资源为非打包状态;
断开模块,用于对于每个第一资源,若所述第一资源所依赖的第二资源不属于所述待更新的第一资源,则断开所述第一资源与所依赖的第二资源的依赖关系;
更新模块,用于更新所述第一资源;
打包模块,用于对更新后的第一资源进行打包,得到更新资源包。
8.一种资源更新的装置,其特征在于,所述装置包括:
第一下载模块,用于下载更新资源包;
解包模块,用于对所述更新资源包进行解包,得到更新后的资源,所述更新后的资源包含一个或多个更新后的第一资源;
确定模块,用于基于所述更新后的第一资源的依赖资源信息,确定所述更新后的第一资源所依赖的第二资源,所述更新后的第一资源和所述第二资源为非打包状态;
还原模块,用于若所述更新后的第一资源与所述第二资源的依赖关系被断开,则还原所述更新后的第一资源及所述第二资源的依赖关系。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令在被所述处理器执行时实现如权利要求1至4任一所述的资源更新的方法,或者权利要求5-6任一所述的资源更新的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述至少一条指令在被执行时实现如权利要求1至4任一所述的资源更新的方法,或者权利要求5-6任一所述的资源更新的方法。
CN201910314707.2A 2019-04-18 2019-04-18 资源更新的方法、装置、设备及存储介质 Active CN110032384B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910314707.2A CN110032384B (zh) 2019-04-18 2019-04-18 资源更新的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910314707.2A CN110032384B (zh) 2019-04-18 2019-04-18 资源更新的方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN110032384A CN110032384A (zh) 2019-07-19
CN110032384B true CN110032384B (zh) 2021-12-21

Family

ID=67239130

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910314707.2A Active CN110032384B (zh) 2019-04-18 2019-04-18 资源更新的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110032384B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908697B (zh) * 2019-11-28 2023-06-16 米哈游科技(上海)有限公司 一种资源打包方法、装置、服务器及存储介质
CN110908707B (zh) * 2019-11-28 2023-06-16 米哈游科技(上海)有限公司 一种资源打包方法、装置、服务器及存储介质
CN111790160B (zh) * 2019-12-06 2023-03-31 厦门雅基软件有限公司 资源管理的方法、装置、设备及计算机可读存储介质
CN111790146A (zh) * 2019-12-06 2020-10-20 厦门雅基软件有限公司 资源管理的方法、装置、设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103701930A (zh) * 2014-01-07 2014-04-02 浙江大学 一种移动应用程序的实时更新方法及系统
CN109558159A (zh) * 2018-12-11 2019-04-02 网易(杭州)网络有限公司 游戏中用户界面的更新方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140325535A1 (en) * 2013-04-24 2014-10-30 Tencent Technology (Shenzhen) Company Limited Method of switching desktop subjects of mobile terminal and its switching apparatus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103701930A (zh) * 2014-01-07 2014-04-02 浙江大学 一种移动应用程序的实时更新方法及系统
CN109558159A (zh) * 2018-12-11 2019-04-02 网易(杭州)网络有限公司 游戏中用户界面的更新方法和装置

Also Published As

Publication number Publication date
CN110032384A (zh) 2019-07-19

Similar Documents

Publication Publication Date Title
CN110674022B (zh) 行为数据获取方法、装置及存储介质
CN108536463B (zh) 获取资源包的方法、装置、设备及计算机可读存储介质
CN110032384B (zh) 资源更新的方法、装置、设备及存储介质
CN110841285B (zh) 界面元素的显示方法、装置、计算机设备及存储介质
CN108093307B (zh) 获取播放文件的方法和系统
CN110740340B (zh) 视频直播方法及装置、存储介质
CN110569220B (zh) 游戏资源文件的展示方法、装置、终端及存储介质
CN111399736B (zh) 进度条控制方法、装置、设备及可读存储介质
CN110147503B (zh) 信息发布方法、装置、计算机设备和存储介质
CN111159604A (zh) 图片资源加载方法及装置
CN108492339B (zh) 获取资源压缩包的方法、装置、电子设备及存储介质
CN112770177B (zh) 多媒体文件生成方法、多媒体文件发布方法及装置
CN110971840B (zh) 视频贴图方法及装置、计算机设备及存储介质
CN112181442B (zh) 卸载页面显示方法、装置、终端、服务器及存储介质
CN111241451A (zh) 网页处理方法、装置、计算机设备及存储介质
CN112597417B (zh) 页面更新方法、装置、电子设备及存储介质
CN114386066A (zh) 应用加固方法及装置
CN114140105A (zh) 资源转移方法、装置、设备及计算机可读存储介质
CN113076452A (zh) 应用分类的方法、装置、设备及计算机可读存储介质
CN111596936A (zh) 应用程序的更新方法及装置
CN111158780A (zh) 存储应用数据的方法、装置、电子设备及介质
CN113407741B (zh) 素材管理方法、装置、电子设备及存储介质
CN114071119B (zh) 资源的测试方法、装置、电子设备及存储介质
CN113301148B (zh) 页面显示方法、装置、服务器、终端及存储介质
CN110543305B (zh) 替换EasyUI组件的方法及装置

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