CN112114849B - 一种资源更新方法和装置 - Google Patents
一种资源更新方法和装置 Download PDFInfo
- Publication number
- CN112114849B CN112114849B CN202011006876.9A CN202011006876A CN112114849B CN 112114849 B CN112114849 B CN 112114849B CN 202011006876 A CN202011006876 A CN 202011006876A CN 112114849 B CN112114849 B CN 112114849B
- Authority
- CN
- China
- Prior art keywords
- resource
- local
- information
- package
- updated
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种资源更新方法和装置;本发明实施例在接收应用程序的资源更新请求后,该资源更新请求携带至少一个待更新的单资源的资源标识和应用程序的本地资源信息,然后,根据资源更新请求,在云平台中获取应用程序的更新资源信息和本地资源包,该本地资源包包括至少一个单资源,然后,基于资源标识、本地资源信息和更新资源信息,对本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包,根据基础本地资源包和资源标识,对应用程序的资源进行更新;该方案可以大大提升应用程序资源更新的成功率。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种资源更新方法和装置。
背景技术
近年来,随着社交平台的飞速发展,越来越多的应用程序也可以在社交平台中进行使用,这些应用程序在使用过程中不可避免的要对资源进行增加、删除或修改等更新行为,而社交平台通过云平台为每个应用程序提供的存储空间也是有限的。现有的资源更新方法主要将应用程序的更新资源打包之后进行配置,将更新配置信息与本地配置信息进行的对比,生成资源增量包进行资源更新。
在对现有技术的研究和实践过程中,本发明的发明人发现对于现有的资源更新方法来说,将资源增量包直接解压到本地,相当于在本地资源的基础上直接叠加资源增量包,大大占用了社交平台为应用程序提供的存储空间,而且随着资源的不断更新,本地资源的内存会越来越大,从而导致资源更新失败。
发明内容
本发明实施例提供一种资源更新方法和装置,可以大大提高资源更新的成功率。
一种资源更新方法,包括:
接收应用程序的资源更新请求,所述资源更新请求携带至少一个待更新的单资源的资源标识和所述应用程序的本地资源信息;
根据所述资源更新请求,获取所述应用程序的更新资源信息和本地资源包,所述本地资源包包括至少一个单资源;
基于所述资源标识、本地资源信息和更新资源信息,对所述本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包;
根据所述基础本地资源包和资源标识,对所述应用程序的资源进行更新。
相应的,本发明实施例提供一种资源更新装置,包括:
接收单元,用于接收应用程序的资源更新请求,所述资源更新请求携带至少一个待更新的单资源的资源标识和所述应用程序的本地资源信息;
获取单元,用于根据所述资源更新请求,获取所述应用程序的更新资源信息和本地资源包,所述本地资源包包括至少一个单资源;
清理单元,用于基于所述资源标识、本地资源信息和更新资源信息,对所述本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包;
更新单元,用于根据所述基础本地资源包和资源标识,对所述应用程序的资源进行更新。
可选的,在一些实施例中,所述清理单元,具体可以用于根据所述本地资源信息和更新资源信息,对所述本地资源包的单资源中的文件进行清理,得到第一候选本地资源包;基于所述资源标识,对所述本地资源信息进行调整,得到第一本地目标资源信息;根据所述第一本地目标资源信息和更新资源信息,对所述第一候选本地资源包中的单资源进行清理,得到基础本地资源包。
可选的,在一些实施例中,所述清理单元,具体可以用于根据所述更新资源信息,确定所述应用程序的更新单资源和所述更新单资源对应的更新文件信息;在所述本地资源信息中提取出所述更新单资源对应的本地文件信息;在所述本地文件信息中筛选出所述更新文件信息中不存在的文件,得到垃圾文件信息;根据所述垃圾文件信息,在所述本地资源包中识别出垃圾文件,并删除所述垃圾文件,得到第一候选本地资源包。
可选的,在一些实施例中,所述清理单元,具体可以用于在所述本地资源信息中查询所述资源标识对应的本地单资源;当所述本地资源信息中存在所述本地单资源时,将所述本地单资源在所述本地资源信息中的更新时间进行调整,得到第一本地目标资源信息;当所述本地资源信息中不存在所述本地单资源时,在所述本地资源信息中添加所述资源标识对应的目标更新单资源的更新时间,得到第一本地目标资源信息。
可选的,在一些实施例中,所述清理单元,具体可以用于根据所述第一本地目标资源信息,确定所述应用程序的本地目标单资源信息;基于所述更新资源信息,确定所述应用程序的更新单资源信息;在所述本地目标单资源信息中筛选出所述更新单资源信息中不存在的单资源,得到垃圾单资源信息;根据所述垃圾单资源信息,在所述第一候选本地资源包中识别出垃圾单资源,并删除所述垃圾单资源,得到基础本地资源包。
可选的,在一些实施例中,所述更新单元,具体可以用于获取所述基础本地资源包的内存,并根据所述更新资源信息,确定所述资源标识对应的目标更新单资源的内存;当所述基础本地资源包和目标更新单资源的内存之和超过预设内存阈值时,在所述基础本地资源包中删除过期单资源,得到待更新本地资源包,并根据所述待更新本地资源包对所述应用程序的资源进行更新;当所述基础本地资源包和目标更新单资源的内存之和未超过预设内存阈值时,将所述基础本地资源包作为所述待更新本地资源包,并根据所述待更新本地资源包对所述应用程序的资源进行更新。
可选的,在一些实施例中,所述更新单元,具体可以用于根据所述本地目标资源信息中单资源的更新时间,确定所述基础本地资源包中每一单资源的更新时间与当前时间的时间差值;基于所述时间差值,在所述本地目标资源信息中筛选出过期单资源信息;根据所述过期单资源信息,在所述基础本地资源包中识别出过期单资源,并删除所述过期单资源,得到所述待更新本地资源包。
可选的,在一些实施例中,所述更新单元,具体可以用于根据所述更新资源信息,确定所述目标更新单资源的目标文件信息;对所述待更新本地资源包的文件进行读取,得到所述待更新本地资源包的基础文件信息;将所述目标文件信息与基础文件信息进行对比,得到增量更新文件信息,所述增量更新文件信息为基础文件中需要更新的文件信息;根据所述增量更新文件信息,在更新资源包中筛选出增量更新文件,并将所述增量更新文件添加至所述待更新本地资源包,以对所述应用程序的资源进行更新。
可选的,在一些实施例中,所述获取单元,具体可以用于获取所述应用程序的更新资源数据和所述更新资源数据对应的资源目录;根据所述资源目录,对所述更新资源数据进行分类,得到多个类型的更新单资源,并在所述更新资源数据中读取所述更新单资源的属性信息;对所述更新单资源进行压缩,得到更新资源包;所述根据所述资源更新请求,获取所述应用程序的更新资源信息和本地资源包,包括:根据所述更新资源包和所述更新单资源的属性信息,确定所述应用程序的更新资源信息,并根据资源更新请求,获取所述本地资源包。
可选的,在一些实施例中,所述清理单元,具体可以用于根据所述资源标识,对所述本地资源信息进行调整,得到第二本地目标资源信息;基于所述第二本地目标资源信息和更新资源信息,对所述本地资源包中的单资源进行清理,得到第二候选本地资源包;根据所述本地资源信息和更新资源信息,对所述第二候选本地资源包的单资源中的文件进行清理,得到基础本地资源包。
此外,本发明实施例还提供一种电子设备,包括处理器和存储器,所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序实现本发明实施例提供的资源更新方法。
此外,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明实施例所提供的任一种资源更新方法中的步骤。
本发明实施例在接收应用程序的资源更新请求后,该资源更新请求携带至少一个待更新的单资源的资源标识和应用程序的本地资源信息,然后,根据资源更新请求,获取应用程序的更新资源信息和本地资源包,该本地资源包包括至少一个单资源,然后,基于资源标识、本地资源信息和更新资源信息,对本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包,根据基础本地资源包和资源标识,对应用程序的资源进行更新;由于该方案在对应用程序的资源进行增量更新之前,还可以对本地资源包中的单资源和单资源中的文件进行清理,从而限制应用程序的本地资源包的内存大小,因此,可以大大提升应用程序资源更新的成功率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的资源更新方法的场景示意图;
图2是本发明实施例提供的资源更新方法的流程示意图;
图3是本发明实施例提供的更新提示页面的示意图;
图4是本发明实施例提供的资源配置文件的示意图;
图5是本发明实施例提供的更新资源包的示意图;
图6是本发明实施例提供的资源剥离前后的资源包内存示意图;
图7是本发明实施例提供的应用程序资源剥离的流程示意图;
图8是本发明实施例提供的清理垃圾文件的流程示意图;
图9是本发明实施例提供的清理垃圾单资源的流程示意图;
图10是本发明实施例提供的资源更新方法的另一流程示意图;
图11是本发明实施例提供的资源更新装置的结构示意图;
图12是本发明实施例提供的资源更新装置的另一结构示意图;
图13是本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种资源更新方法、装置和计算机可读存储介质。其中,该资源更新装置可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
例如,参见图1,以资源更新装置集成在电子设备中为例,电子设备在接收应用程序的资源更新请求后,该资源更新请求携带至少一个待更新的单资源的资源标识和应用程序的本地资源信息,然后,根据资源更新请求,获取应用程序的更新资源信息和本地资源包,该本地资源包包括至少一个单资源,然后,基于资源标识、本地资源信息和更新资源信息,对本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包,根据基础本地资源包和资源标识,对应用程序的资源进行更新。
其中,应用程序的资源可以包括应用场景下的多个单资源,所谓单资源可以为只存在一种类型的资源,比如,可以为图像资源、视频资源、音频资源、美术资源或文本资源等。
其中,更新资源信息和本地资源包可以存储至云平台,所谓云平台也称云计算平台,是指基于硬件资源和软件资源的服务,提供计算、网络和存储能力。云计算(cloudcomputing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
以下分别进行详细说明。需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从资源更新装置的角度进行描述,该资源更新装置具体可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备;其中,该终端可以包括平板电脑、笔记本电脑、以及个人计算机(PC,Personal Computer)、可穿戴设备、虚拟现实设备或其他可以资源更新的智能设备等设备。
一种资源更新方法,包括:
接收应用程序的资源更新请求,该资源更新请求携带至少一个待更新的单资源的资源标识和应用程序的本地资源信息,根据资源更新请求,获取应用程序的更新资源信息和本地资源包,该本地资源包包括至少一个单资源,基于资源标识、本地资源信息和更新资源信息,对本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包,根据基础本地资源包和资源标识,对应用程序的资源进行更新。
如图2所示,该资源更新方法的具体流程如下:
101、接收应用程序的资源更新请求。
其中,该资源更新请求携带至少一个待更新的单资源的资源标识和应用程序的本地资源信息。
例如,可以直接应用程序的资源更新请求,比如,用户在接收到应用程序的更新提示信息之后,通过选择待更新的单资源的资源标识之后,触发生成应用程序的资源更新请求,然后,在资源更新请求中添加应用程序的本地资源信息,将添加本地资源信息的资源更新请求发送至资源更新装置,资源更新装置就可以接收到资源更新请求。当应用程序的本地资源信息内存较大时,还可以间接接收到资源更新请求中的本地资源信息,比如,用户可以将应用程序的本地资源信息存储至第三方数据库,将存储地址添加至资源更新请求,然后,再将资源更新请求发送至资源更新装置,资源更新装置在资源更新请求中提取出存储地址,根据存储地址,在第三方数据库中筛选出应用程序的本地资源信息。
可选的,在接收应用程序的资源更新请求之前,还可以在用户对应的终端显示更新提示页面,该更新提示页面中可以包括更新提示信息,该更新提示信息可以包括应用程序的服务商关于应用程序的资源更新信息,比如,该资源更新信息可以包括一个或者多个待更新的单资源的资源标识,则更新提示页面可以如图3所示,当用户触发更新提示页面上的资源标识对应的选择控件时,此时就可以触发生成应用程序的资源更新请求。
102、根据资源更新请求,获取应用程序的更新资源信息和本地资源包。
其中,本地资源包包括至少一个单资源。
例如,可以根据更新资源包和更新单资源的属性信息,确定应用程序的更新资源信息,比如,可以根据更新资源包和更新资源包中的更新单资源的属性信息,对应用程序的更新资源进行配置,譬如,可以将更新资源包的信息和更新单资源的属性信息写入json配置文件中,得到资源配置文件,该资源配置文件可以包括更新资源包中每个单资源压缩包的包名列表、单资源压缩包中包含的资源文件列表(名称+大小),以应用程序为微信内的小游戏为例,资源配置文件的样式可以如图4所示,目录名为(res_key.json)的资源配置文件为更新资源信息中的配置文件,目录名可以为(hall_desc.josn)为更新单资源配置文件、将资源配置文件作为应用程序的更新资源信息,还可以将确定的更新资源信息移动到应用程序的目录下。根据资源更新请求,获取本地资源包,比如,可以对资源更新请求中的本地资源信息进行解析,得到本地资源的资源目录,根据资源目录就可以获取应用程序存储在本地或者云服务器中的本地资源包。
可选的,在获取应用程序的更新资源信息之前,还可以获取应用程序的更新资源包和更新资源包中单资源的属性信息,因此,资源更新方法,还以包括:
获取应用程序的更新资源数据和更新资源数据对应的资源目录,根据资源目录,对更新资源数据进行分类,得到多个类型的更新单资源,并在更新资源数据中读取更新单资源的属性信息,对更新单资源进行压缩,得到更新资源包。
例如,获取应用程序的服务商发布的关于应用程序的当前更新的安装数据或者更新数据,在安装数据和更新数据中查找到应用程序的资源目录并进行读取,根据资源目录获取到应用程序的更新资源数据,并读取完成后在应用程序的安装数据或更新数据中将该资源目录进行删除,然后,对资源目录下的资源进行分组,比如,可以按照资源目录下的文件夹进行划分,得到多个类型的单资源,这里的单资源可以理解为目录里的一个文件夹就可以对应为一个类型的单资源。在更新资源数据中读取到更新单资源的属性信息,比如,可以读取到更新单资源的路径、名称和大小等基础属性信息。对更新单资源进行压缩,比如,将资源目录里的文件夹进行压缩打包,并对压缩打包后的更新单资源进行命名,就可以得到应用程序的更新资源包,比如,命名规则可以为划分的类别+包内资源数+包大小+更新单资源的文件名采用MD5消息摘要算法(MD5Message-Digest Algorithm)进行加密的值。采用这样的命名规则用于标记同名资源的区分,以应用程序为微信内的小游戏为例,应用程序的更新资源包的样式可以如图5所示。将压缩打包得到的更新资源包可以上传至内容分发网络中进行存储,该内容分发网络可以为提供资源存储和下载的服务器。
其中,需要说明的是,当应用程序首次被用户下载下来进行安装时,也可以在应用程序的安装和运行数据中将资源剥离出来,以减少应用程序的安装和运行数据包的大小,因此,当用户首次安装该应用程序时,资源更新装置采用上文所述的方法将应用程序的资源单独剥离出来构建一个资源包,然后,将该资源包存储至用户终端的本地或者云服务器的本地,根据资源包的数据和属性信息进行配置,从而得到应用程序的资源配置信息,将该资源配置信息作为本地资源信息,以应用程序为微信中的小程序为例,资源剥离前和剥离后的程序包的大小可以如图6所示,其中资源剥离指的是将图片等程序包中非代码文件从应用中删除,并在发布或者安装后剔除,对于小程序的资源剥离也并不是将所有资源进行剥离,而是可以保留首场景时的资源,具体的资源剥离主要通过部署资源更新装置的客户端来进行资源剥离,具体的剥离过程可以如图7所示。
103、基于资源标识、本地资源信息和更新资源信息,对本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包。
例如,根据本地资源信息和更新资源信息,对本地资源包的单资源中的文件进行清理,得到第一候选本地资源包,基于资源标识,对本地资源信息进行调整,得到第一本地目标资源信息,根据第一本地目标资源信息和更新资源信息,对第一候选本地资源包中的单资源进行清理,得到基础本地资源包,具体可以如下:
S1、根据本地资源信息和更新资源信息,对本地资源包的单资源中的文件进行清理,得到第一候选本地资源包。
例如,根据更新资源信息,确定应用程序的更新单资源和更新单资源对应的更新文件信息,比如,在更新资源信息中查找每一个更新单资源对应的单资源配置文件,读取更新单资源配置文件,并将单读取到的资源配置文件的文件内容保存至内存中,对更新单资源配置文件的文件内容进行解析,提取出里面的资源配置,也就是配置中的fileMap(资源文件列表),将资源文件列表作为应用程序的更新单资源和更新单资源对应的更新文件信息。采用同样的方法,在本地资源信息中提取出更新单资源对应的本地文件信息。将更新文件信息与本地文件信息进行对比,从而可以在本地文件信息中筛选出更新文件信息中不存在的文件,得到垃圾文件信息,比如,更新单资源A中包含文件1-文件4,更新单资源A对应的本地单资源A在本地资源包中包括文件1-文件6,此时,就可以将更新单资源A中不存在的文件5-文件6可以为垃圾文件,此时,就可以得到垃圾文件信息。根据垃圾文件信息,在本地资源包中识别出垃圾文件,比如,根据垃圾文件信息,直接在本地资源包中识别出文件5-文件6为垃圾文件,然后,删除垃圾文件,得到第一候选本地资源包,清理垃圾文件可以通过资源更新装置在用户的客户端来执行,具体的清理的过程可以如图8所示。
S2、基于资源标识,对本地资源信息进行调整,得到第一本地目标资源信息。
例如,在本地资源信息中查询资源标识对应的本地单资源,当本地资源信息中存在本地单资源时,将本地单资源在本地资源信息中的更新时间进行调整,比如,以资源标识为单资源A对应的资源标识为例,当本地资源信息中包括本地单资源A时,将本地单资源A在应用程序的更新时间调整为当前时间,然后,将本地单资源A在本地资源信息中位置也进行调整,比如,可以按照更新时间对本地资源信息中的本地单资源进行排序,按照排序结果,将本地单资源A移动至本地资源信息中单资源列表的最前面的位置,就可以得到第一本地目标资源信息。当本地资源信息中不存在本地单资源时,在本地资源信息中添加资源标识对应的目标更新单资源的更新时间,得到第一本地目标资源信息,比如,还是以资源标识为单资源A对应的资源标识为例,本地资源信息不存在本地单资源A时,此时将单资源A作为目标更新单资源添加至本地资源信息中,并将当前时间作为目标更新单资源的更新时间添加至本地资源信息中,使得本地资源信息中的单资源列表中包括单资源A及单资源A的更新时间,就可以得到第一本地目标资源信息。
S3、根据第一本地目标资源信息和更新资源信息,对第一候选本地资源包中的单资源进行清理,得到基础本地资源包。
例如,根据第一本地目标资源信息,确定应用程序的本地目标单资源信息,比如,可以读取第一本地目标资源信息中的配置文件的内容,对配置文件的内容进行解析,就可以得到本地目标单资源目录名列表,该本地目标单资源目录名列表主要包括本地已经存在的单资源的目录名和即将要更新的单资源的目录名,将本地目标单资源目标名列表作为本地目标单资源信息。基于更新资源信息,确定应用程序的更新单资源信息,比如,可以读取更新资源信息中的配置文件的内容,对配置文件的内容进行解析,就可以得到应用程序更新后包括的更新单资源目录名列表,将更新单资源目录名列表作为更新单资源信息。在本地目标单资源信息中筛选出更新单资源信息不存在的单资源,得到垃圾单资源信息,比如,将本地目标单资源目录名列表和更新单资源目录名列表进行对比,然后,在本地目标单资源目录名列表中筛选出更新单资源目录名列表中不存在的单资源的目录名,就可以得到垃圾单资源信息。根据垃圾单资源信息,在第一候选本地资源包中识别出垃圾单资源,比如,根据筛选出的垃圾单资源的目录名,就可以直接在第一候选本地资源包中识别出垃圾单资源,在本地资源包中筛选出垃圾单资源对应的文件列表,然后,删除垃圾单资源对应的文件,得到基础本地资源包。
其中,对于第一候选本地资源包中的垃圾单资源进行清理的过程需要结合步骤S2和S3,具体的清理过程可以如图9所示。
可选的,对本地资源包中的单资源和单资源中的文件进行清理,单资源和单资源中的文件的清理顺序并不是固定的,因此,对于单资源和单资源中的文件进行清理顺序,还可以为清理单资源,接着再清理单资源中的文件。因此,资源更新方法,还可以包括:
根据资源标识,对本地资源信息进行调整,得到第二本地目标资源信息,基于第二本地目标资源信息和更新资源信息,对本地资源包中的单资源进行清理,得到第二候选本地资源包,根据本地资源信息和更新资源信息,对第二候选本地资源包的单资源中的文件进行清理,得到基础本地资源包,具体的清理过程与上文一样,在此就不一一赘述。
104、根据基础本地资源包和资源标识,对应用程序的资源进行更新。
例如,获取基础本地资源包的内存,并根据更新资源信息,确定资源标识对应的目标更新单资源的内存,比如,可以获取基础本地资源包的属性信息,在基础本地资源包的属性信息中提取出内存信息,根据内存信息,确定基础本地资源的内存。根据更新资源信息,确定资源标识对应的目标更新单资源的内存,比如,在更新资源信息中读取出资源标识对应的目标更新单资源的内存信息,根据该内存信息,从而确定目标更新单资源的内存。当基础本地资源包和目标更新单资源的内存之和超过预设内存阈值时,在基础本地资源包中删除过期单资源,得到待更新本地资源包,比如,可以根据本地目标资源信息中单资源的更新时间,确定基础本地资源包中每一单资源的更新时间与当前时间的差值,基于时间差值,在本地目标资源信息中筛选出过期单资源信息,譬如,可以基于时间差值,对本地目标资源信息中的每一单资源进行排序,时间越大的越往后排,最后,将本地目标资源信息中排在最后的单资源作为过期单资源,从而就可以得到过期单资源信息。根据过期单资源信息,在基础本地资源包中识别出过期单资源,并删除过期单资源,就可以得到待更新本地资源包。因此,可以根据应用程序在社交平台的存储空间的阈值,动态对本地资源包的资源进行清理,使得可以解决存储空间的限制,大大增加了应用程序的资源更新的成功率。
在一实施例中,在删除完过期单资源之后,就可以根据待更新本地资源包对应用程序的资源进行更新,比如,根据更新资源信息,确定目标更新单资源的目标文件信息,对待更新本地资源包的文件进行读取,得到待更新资源包的基础文件信息,将目标文件信息与基础文件信息进行对比,得到增量更新文件信息,譬如,在目标文件信息中筛选出基础文件信息中不存在的文件,得到需要下载的资源包的文件列表,将这些文件列表作为增量更新文件信息。根据增量更新文件信息,在更新资源包中筛选出增量更新文件,并将增量更新文件添加至待更新资源包中,得到应用程序更新后的本地资源包,将更新后的本地资源包配置到应用程序的本地,从而完成对应用程序的资源更新。在应用程序的资源更新中,能够快速的增量更新资源,同时还可以按需下载资源,有效减少网络数据传输量。
可选的,当基础本地资源包和目标更新单资源的内存之和未超过预设内存阈值时,就可以直接将基础本地资源包作为待更新本地资源包。然后,根据待更新本地资源包对应用程序的资源进行更新,具体的更新过程如上文所述,在此就不一一赘述。
其中,需要说明的是,本实施例中资源更新装置可以自动对应用程序的资源更新数据进行分包发布,同时保证资源增量更新,而且在资源更新过程中,只需要盖应用程序的最新版的资源更新数据即可,无需存储和维护多个版本的差量,极大的减少了运营维护成本。
由以上可知,本发明实施例在接收应用程序的资源更新请求后,该资源更新请求携带至少一个待更新的单资源的资源标识和应用程序的本地资源信息,然后,根据资源更新请求,获取应用程序的更新资源信息和本地资源包,该本地资源包包括至少一个单资源,然后,基于资源标识、本地资源信息和更新资源信息,对本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包,根据基础本地资源包和资源标识,对应用程序的资源进行更新;由于该方案在对应用程序的资源进行增量更新之前,还可以对本地资源包中的单资源和单资源中的文件进行清理,从而限制应用程序的本地资源包的内存大小,因此,可以大大提升应用程序资源更新的成功率。
根据上面实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该资源更新装置具体集成在电子设备,电子设备为终端,应用程序为微信平台的小游戏为例进行说明。
如图10所示,一种资源更新生成方法,具体流程如下:
201、终端显示更新提示页面。
例如,终端在获取到小游戏服务商关于小游戏的资源更新信息时,根据资源更新信息,确定小游戏中待更新的一个或多个单资源的资源标识,根据资源标识,生成更新提示信息,在更新提示页面显示该更新提示信息。当用户触发更新提示页面上的资源标识对应的选择控件时,此时就可以触发生成小游戏的资源更新请求。
202、终端接收小游戏的资源更新请求。
例如,用户在资源更新请求中添加应用程序的本地资源信息,将添加本地资源信息的资源更新请求发送至终端,终端就可以接收到资源更新请求。当小游戏的本地资源信息内存较大时,用户可以将小游戏的本地资源信息存储至第三方数据库,将存储地址添加至资源更新请求,然后,再将资源更新请求发送至终端,终端在资源更新请求中提取出存储地址,根据存储地址,在第三方数据库中筛选出小游戏的本地资源信息。
203、终端根据资源更新请求,获取小游戏的更新资源信息和本地资源包。
例如,终端可以将更新资源包的信息和更新单资源的属性信息写入json配置文件中,得到资源配置文件,该资源配置文件可以包括更新资源包中每个单资源压缩包的包名列表、单资源压缩包中包含的资源文件列表(名称+大小),将资源配置文件作为应用程序的更新资源信息。然后,对资源更新请求中的本地资源信息进行解析,得到本地资源的资源目录,根据资源目录就可以获取小游戏存储在本地或者云服务器中的本地资源包。
可选的,终端在获取小游戏的更新资源信息之前,还可以获取小游戏的更新资源包和更新资源包中单资源的属性信息,比如,终端获取应用程序的服务商发布的关于应用程序的当前更新的安装数据或者更新数据,在安装数据和更新数据中查找到应用程序的资源目录并进行读取,根据资源目录获取到应用程序的更新资源数据,并读取完成后在应用程序的安装数据或更新数据中将该资源目录进行删除。然后,按照资源目录下的文件夹进行划分,得到多个类型的单资源,同时读取到更新单资源的路径、名称和大小等基础属性信息。将资源目录里的文件夹进行压缩打包,并对压缩打包后的更新单资源进行命名,就可以得到应用程序的更新资源包,比如,命名规则可以为划分的类别+包内资源数+包大小+更新单资源的文件名的MD5值,将压缩打包得到的更新资源包可以上传至CDN进行存储。
其中,需要说明的是,当小游戏首次被用户下载下来进行安装时,也可以在小游戏的安装和运行数据中将资源剥离出来,以减少小游戏的安装和运行数据包的大小。因此,当用户首次安装该小游戏时,终端可以采用上文所述的方法将小游戏的资源单独剥离出来构建一个资源包,然后,将该资源包存储至用户终端的本地或者云服务器的本地,在剥离时,还可以根据首场景的需要,保留全部或部分首场景的资源。
204、终端根据本地资源信息和更新资源信息,对本地资源包的单资源中的文件进行清理,得到第一候选本地资源包。
例如,终端在更新资源信息中查找每一个更新单资源对应的单资源配置文件,比如,更新单资源配置文件的目录名可以为hall_desc.josn等。读取更新单资源配置文件的文件内容,并将更新单资源配置文件的文件内容保存至内存中,对内存中的更新单资源配置文件的文件内容进行解析,提取出里面的资源配置,也就是配置中的fileMap,就可以得到小游戏的更新单资源和更新单资源对应的更新文件信息。在本地资源信息中查找每一个更新单资源对应的本地单资源配置文件,比如,本地单资源配置文件的目录名可以为local_hall_desc.json等,读取这些本地单资源配置文件的文件内容,并将本地单资源配置文件的文件内容保存至内存中,对内存中的本地单资源配置文件的文件内容进行解析,提取出配置中的fileMap,就可以小游戏的更新单资源对应的本地文件信息。将更新文件信息与本地文件信息进行对比,从而可以在本地文件信息中筛选出更新文件信息中不存在的文件,得到垃圾文件信息,根据垃圾文件信息,在本地资源包中识别出垃圾文件,然后,删除垃圾文件,得到第一候选本地资源包。
205、终端基于资源标识,对本地资源信息进行调整,得到第一本地目标资源信息。
例如,终端在本地资源信息中查询资源标识对应的本地单资源,当本地资源信息中存在本地单资源时,将本地单资源的更新时间调整为当前时间,并在本地资源信息的配置文件(local_res_key.json)中的位置移动至最前面,就可以得到第一本地目标资源信息。当本地资源信息中不存在本地单资源时,将资源标识对应的目标更新单资源的目录名和更新时间记录至配置文件(local_res_key.json)中,目标更新单资源的更新时间为当前时间,就可以得到第一本地目标资源信息。
206、终端根据第一本地目标资源信息和更新资源信息,对第一候选本地资源包中的单资源进行清理,得到基础本地资源包。
例如,终端可以读取第一本地目标资源信息中的配置文件(local_res_key.json)的内容,对配置文件的内容进行解析,就可以得到本地目标单资源目录名列表,该本地目标单资源目录名列表主要包括本地已经存在的单资源的目录名和即将要更新的单资源的目录名,将本地目标单资源目标名列表作为本地目标单资源信息。终端还可以读取更新资源信息中的配置文件(res_key.json)的内容,对配置文件的内容进行解析,就可以得到应用程序更新后包括的更新单资源目录名列表,将更新单资源目录名列表作为更新单资源信息。将本地目标单资源目录名列表和更新单资源目录名列表进行对比,然后,在本地目标单资源目录名列表中筛选出更新单资源目录名列表中不存在的单资源的目录名,就可以得到垃圾单资源信息。根据筛选出的垃圾单资源的目录名,就可以直接在第一候选本地资源包中识别出垃圾单资源,然后,删除垃圾单资源,得到基础本地资源包。
其中,对本地资源包中的单资源和单资源中的文件进行清理,单资源和单资源中的文件的清理顺序并不是固定的,因此,对于单资源和单资源中的文件进行清理顺序,还可以为清理单资源,接着再清理单资源中的文件。因此,步骤204-206的顺序还可以为205-206-204,也就是说终端还可以根据资源标识,对本地资源信息进行调整,得到第二本地目标资源信息,基于第二本地目标资源信息和更新资源信息,对本地资源包中的单资源进行清理,得到第二候选本地资源包,根据本地资源信息和更新资源信息,对第二候选本地资源包的单资源中的文件进行清理,得到基础本地资源包,具体的清理过程与上文一样,在此就不一一赘述。
207、终端获取基础本地资源包的内存,并根据更新资源信息,确定资源标识对应的目标更新单资源的内存。
例如,终端在更新资源信息中读取出资源标识对应的目标更新单资源的内存信息,根据该内存信息,从而确定目标更新单资源的内存。终端还可以获取基础本地资源包的属性信息,在基础本地资源包的属性信息中提取出内存信息,根据内存信息,确定基础本地资源的内存。
208、当基础本地资源包和目标更新单资源的内存之和超过预设内存阈值时,终端在基础本地资源包中删除过期单资源,得到待更新本地资源包,并根据待更新本地资源包对应用程序的资源进行更新。
例如,当基础本地资源包和目标更新单资源的内存之和超过预设内存阈值时,终端可以采用最近最少使用(Least Recently Used,LRU)算法,根据本地目标资源信息中单资源的更新时间,确定基础本地资源包中每一单资源的更新时间与当前时间的差值,基于时间差值,在本地目标资源信息中筛选出过期单资源信息,比如,可以基于时间差值,对本地目标资源信息中的每一单资源进行排序,时间越大的越往后排,最后,将本地目标资源信息的配置文件(local_res_key.json)中排在最后的最近没使用的单资源作为过期单资源,进而读取对应的单资源配置文件,并将文件内容保存至内存中,对内存中的文件内容进行解析,就可以提取出fileMap,从而就可以得到过期单资源信息。根据过期单资源信息,在基础本地资源包中识别出过期单资源,并删除过期单资源,就可以得到待更新本地资源包。
在一实施例中,在删除完过期单资源之后,根据更新资源信息,确定目标更新单资源的目标文件信息,对待更新本地资源包的文件进行读取,得到待更新资源包的基础文件信息(配置中的packages),将目标文件信息与基础文件信息进行对比,在目标文件信息中筛选出基础文件信息中不存在的文件,得到需要下载的资源包的文件列表,将这些文件列表作为增量更新文件信息。根据增量更新文件信息,在CDN存储的更新资源包中筛选出增量更新文件,将增量更新文件从CDN中下载下来,再对下载的增量更新文件对应的压缩包进行解压,得到解压后的增量更新文件,将目标更新单资源对应的增量更新文件释放到待更新资源包的目标更新单资源的目录中,就可以得到小游戏更新后的本地资源包,然后,将更新后的本地资源包配置到小游戏的本地,从而完成小游戏的资源更新。
209、当基础本地资源包和目标更新单资源的内存之和未超过预设内存阈值时,将基础本地资源包作为待更新资源包,并根据待更新本地资源包对应用程序的资源进行更新。
例如,当基础本地资源包和目标更新单资源的内存之和未超过预设内存阈值时,就可以直接将基础本地资源包作为待更新本地资源包。然后,根据待更新本地资源包对应用程序的资源进行更新,具体的更新过程与步骤208中根据待更新本地资源包对应用程序的资源进行更新的方法相同,在此就不一一赘述。
由以上可知,本实施例终端在接收应用程序的资源更新请求后,该资源更新请求携带至少一个待更新的单资源的资源标识和应用程序的本地资源信息,然后,根据资源更新请求,获取应用程序的更新资源信息和本地资源包,该本地资源包包括至少一个单资源,然后,基于资源标识、本地资源信息和更新资源信息,对本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包,根据基础本地资源包和资源标识,对应用程序的资源进行更新;由于该方案在对应用程序的资源进行增量更新之前,还可以对本地资源包中的单资源和单资源中的文件进行清理,从而限制应用程序的本地资源包的内存大小,因此,可以大大提升应用程序资源更新的成功率。
为了更好地实施以上方法,本发明实施例还提供一种资源更新装置,该资源更新装置可以集成在电子设备,比如服务器或终端等设备中,该终端可以包括平板电脑、笔记本电脑和/或个人计算机等。
例如,如图11所示,该资源更新装置可以包括接收单元301、获取单元302、清理单元303和更新单元304,如下:
(1)接收单元301;
接收单元301,用于接收应用程序的资源更新请求,该资源更新请求携带至少一个待更新的单资源的资源标识和应用程序的本地资源信息。
例如,接收单元301,具体可以用于直接接收应用程序的资源更新请求,或者当应用程序的本地资源信息内存较大时,接收应用程序的资源更新请求,并在资源更新请求中提取出存储地址,根据存储地址,在第三方数据库中筛选出应用程序的本地资源信息。
(2)获取单元302;
获取单元302,用于根据资源更新请求,获取应用程序的更新资源信息和本地资源包,该本地资源包包括至少一个单资源。
例如,获取单元302,具体可以用于根据更新资源包和更新单资源的属性信息,确定应用程序的更新资源信息,对资源更新请求中的本地资源信息进行解析,得到本地资源的资源目录,根据资源目录就可以获取应用程序存储在本地或者云服务器中的本地资源包。
(3)清理单元303;
清理单元303,用于基于资源标识、本地资源信息和更新资源信息,对本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包。
例如,清理单元303,具体可以用于根据本地资源信息和更新资源信息,对本地资源包的单资源中的文件进行清理,得到第一候选本地资源包,基于资源标识,对本地资源信息进行调整,得到第一本地目标资源信息,根据第一本地目标资源信息和更新资源信息,对第一候选本地资源包中的单资源进行清理,得到基础本地资源包,或者,根据资源标识,对本地资源信息进行调整,得到第二本地目标资源信息,基于第二本地目标资源信息和更新资源信息,对本地资源包中的单资源进行清理,得到第二候选本地资源包,根据本地资源信息和更新资源信息,对第二候选本地资源包的单资源中的文件进行清理,得到基础本地资源包。
(4)更新单元304;
更新单元304,用于根据基础本地资源包和资源标识,对应用程序的资源进行更新。
例如,更新单元304,具体可以用于获取基础本地资源包的内存,并根据更新资源信息,确定资源标识对应的目标更新单资源的内存,当基础本地资源包和目标更新单资源的内存之和超过预设内存阈值时,在基础本地资源包中删除过期单资源,得到待更新本地资源包,并根据待更新本地资源包对应用程序的资源进行更新。当基础本地资源包和目标更新单资源的内存之和未超过预设内存阈值时,将基础本地资源包作为待更新本地资源包,并根据待更新本地资源包对应用程序的资源进行更新。
可选的,资源更新装置还可以包括压缩单元305,如图12所示,具体可以如下:
压缩单元305,用于获取应用程序的更新资源数据和更新资源数据对应的资源目录,根据资源目录,对更新资源数据进行分类,得到多个类型的更新单资源,并在更新资源数据中读取更新单资源的属性信息,对更新单资源进行压缩,得到更新资源包。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由以上可知,本实施例在接收单元301接收应用程序的资源更新请求后,该资源更新请求携带至少一个待更新的单资源的资源标识和应用程序的本地资源信息,然后,获取单元302根据资源更新请求,获取应用程序的更新资源信息和本地资源包,该本地资源包包括至少一个单资源,然后,清理单元303基于资源标识、本地资源信息和更新资源信息,对本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包,更新单元304根据基础本地资源包和资源标识,对应用程序的资源进行更新;由于该方案在对应用程序的资源进行增量更新之前,还可以对本地资源包中的单资源和单资源中的文件进行清理,从而限制应用程序的本地资源包的内存大小,因此,可以大大提升应用程序资源更新的成功率。
本发明实施例还提供一种电子设备,如图13所示,其示出了本发明实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图13中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
接收应用程序的资源更新请求,该资源更新请求携带至少一个待更新的单资源的资源标识和应用程序的本地资源信息,根据资源更新请求,获取应用程序的更新资源信息和本地资源包,该本地资源包包括至少一个单资源,基于资源标识、本地资源信息和更新资源信息,对本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包,根据基础本地资源包和资源标识,对应用程序的资源进行更新。
例如,电子设备直接接收应用程序的资源更新请求,或者当应用程序的本地资源信息内存较大时,接收应用程序的资源更新请求,并在资源更新请求中提取出存储地址,根据存储地址,在第三方数据库中筛选出应用程序的本地资源信息。根据更新资源包和更新单资源的属性信息,确定应用程序的更新资源信息,对资源更新请求中的本地资源信息进行解析,得到本地资源的资源目录,根据资源目录就可以获取应用程序存储在本地或者云服务器中的本地资源包。根据本地资源信息和更新资源信息,对本地资源包的单资源中的文件进行清理,得到第一候选本地资源包,基于资源标识,对本地资源信息进行调整,得到第一本地目标资源信息,根据第一本地目标资源信息和更新资源信息,对第一候选本地资源包中的单资源进行清理,得到基础本地资源包,或者,根据资源标识,对本地资源信息进行调整,得到第二本地目标资源信息,基于第二本地目标资源信息和更新资源信息,对本地资源包中的单资源进行清理,得到第二候选本地资源包,根据本地资源信息和更新资源信息,对第二候选本地资源包的单资源中的文件进行清理,得到基础本地资源包。获取基础本地资源包的内存,并根据更新资源信息,确定资源标识对应的目标更新单资源的内存,当基础本地资源包和目标更新单资源的内存之和超过预设内存阈值时,在基础本地资源包中删除过期单资源,得到待更新本地资源包,并根据待更新本地资源包对应用程序的资源进行更新。当基础本地资源包和目标更新单资源的内存之和未超过预设内存阈值时,将基础本地资源包作为待更新本地资源包,并根据待更新本地资源包对应用程序的资源进行更新。
以上各个操作的具体实施可参见前面的实施例,在此不作赘述。
由以上可知,本发明实施例在接收应用程序的资源更新请求后,该资源更新请求携带至少一个待更新的单资源的资源标识和应用程序的本地资源信息,然后,根据资源更新请求,获取应用程序的更新资源信息和本地资源包,该本地资源包包括至少一个单资源,然后,基于资源标识、本地资源信息和更新资源信息,对本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包,根据基础本地资源包和资源标识,对应用程序的资源进行更新;由于该方案在对应用程序的资源进行增量更新之前,还可以对本地资源包中的单资源和单资源中的文件进行清理,从而限制应用程序的本地资源包的内存大小,因此,可以大大提升应用程序资源更新的成功率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种资源更新方法中的步骤。例如,该指令可以执行如下步骤:
接收应用程序的资源更新请求,该资源更新请求携带至少一个待更新的单资源的资源标识和应用程序的本地资源信息,根据资源更新请求,获取应用程序的更新资源信息和本地资源包,该本地资源包包括至少一个单资源,基于资源标识、本地资源信息和更新资源信息,对本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包,根据基础本地资源包和资源标识,对应用程序的资源进行更新。
例如,电子设备直接接收应用程序的资源更新请求,或者当应用程序的本地资源信息内存较大时,接收应用程序的资源更新请求,并在资源更新请求中提取出存储地址,根据存储地址,在第三方数据库中筛选出应用程序的本地资源信息。根据更新资源包和更新单资源的属性信息,确定应用程序的更新资源信息,对资源更新请求中的本地资源信息进行解析,得到本地资源的资源目录,根据资源目录就可以获取应用程序存储在本地或者云服务器中的本地资源包。根据本地资源信息和更新资源信息,对本地资源包的单资源中的文件进行清理,得到第一候选本地资源包,基于资源标识,对本地资源信息进行调整,得到第一本地目标资源信息,根据第一本地目标资源信息和更新资源信息,对第一候选本地资源包中的单资源进行清理,得到基础本地资源包,或者,根据资源标识,对本地资源信息进行调整,得到第二本地目标资源信息,基于第二本地目标资源信息和更新资源信息,对本地资源包中的单资源进行清理,得到第二候选本地资源包,根据本地资源信息和更新资源信息,对第二候选本地资源包的单资源中的文件进行清理,得到基础本地资源包。获取基础本地资源包的内存,并根据更新资源信息,确定资源标识对应的目标更新单资源的内存,当基础本地资源包和目标更新单资源的内存之和超过预设内存阈值时,在基础本地资源包中删除过期单资源,得到待更新本地资源包,并根据待更新本地资源包对应用程序的资源进行更新。当基础本地资源包和目标更新单资源的内存之和未超过预设内存阈值时,将基础本地资源包作为待更新本地资源包,并根据待更新本地资源包对应用程序的资源进行更新。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本发明实施例所提供的任一种资源更新方法中的步骤,因此,可以实现本发明实施例所提供的任一种资源更新方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
其中,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述资源更新方面的各种可选实现方式中提供的方法。
以上对本发明实施例所提供的一种资源更新方法、装置和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种资源更新方法,其特征在于,包括:
接收应用程序的资源更新请求,所述资源更新请求携带至少一个待更新的单资源的资源标识和所述应用程序的本地资源信息;
根据所述资源更新请求,获取所述应用程序的更新资源信息和本地资源包,所述本地资源包包括至少一个单资源;
基于所述资源标识、本地资源信息和更新资源信息,对所述本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包;
根据所述基础本地资源包的内存和资源标识,对所述应用程序的资源进行更新。
2.根据权利要求1所述的资源更新方法,其特征在于,所述基于所述资源标识、本地资源信息和更新资源信息,对所述本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包,包括:
根据所述本地资源信息和更新资源信息,对所述本地资源包的单资源中的文件进行清理,得到第一候选本地资源包;
基于所述资源标识,对所述本地资源信息进行调整,得到第一本地目标资源信息;
根据所述第一本地目标资源信息和更新资源信息,对所述第一候选本地资源包中的单资源进行清理,得到基础本地资源包。
3.根据权利要求2所述的资源更新方法,其特征在于,所述根据所述本地资源信息和更新资源信息,对所述本地资源包的单资源中的文件进行清理,得到第一候选本地资源包,包括:
根据所述更新资源信息,确定所述应用程序的更新单资源和所述更新单资源对应的更新文件信息;
在所述本地资源信息中提取出所述更新单资源对应的本地文件信息;
在所述本地文件信息中筛选出所述更新文件信息中不存在的文件,得到垃圾文件信息;
根据所述垃圾文件信息,在所述本地资源包中识别出垃圾文件,并删除所述垃圾文件,得到第一候选本地资源包。
4.根据权利要求2所述的资源更新方法,其特征在于,所述基于所述资源标识,对所述本地资源信息进行调整,得到第一本地目标资源信息,包括:
在所述本地资源信息中查询所述资源标识对应的本地单资源;
当所述本地资源信息中存在所述本地单资源时,将所述本地单资源在所述本地资源信息中的更新时间进行调整,得到第一本地目标资源信息;
当所述本地资源信息中不存在所述本地单资源时,在所述本地资源信息中添加所述资源标识对应的目标更新单资源的更新时间,得到第一本地目标资源信息。
5.根据权利要求4所述的资源更新方法,其特征在于,所述根据所述第一本地目标资源信息和更新资源信息,对所述第一候选本地资源包中的单资源进行清理,得到基础本地资源包,包括:
根据所述第一本地目标资源信息,确定所述应用程序的本地目标单资源信息;
基于所述更新资源信息,确定所述应用程序的更新单资源信息;
在所述本地目标单资源信息中筛选出所述更新单资源信息中不存在的单资源,得到垃圾单资源信息;
根据所述垃圾单资源信息,在所述第一候选本地资源包中识别出垃圾单资源,并删除所述垃圾单资源,得到基础本地资源包。
6.根据权利要求4所述的资源更新方法,其特征在于,所述根据所述基础本地资源包的内存和资源标识,对所述应用程序的资源进行更新,包括:
获取所述基础本地资源包的内存,并根据所述更新资源信息,确定所述资源标识对应的目标更新单资源的内存;
当所述基础本地资源包和目标更新单资源的内存之和超过预设内存阈值时,在所述基础本地资源包中删除过期单资源,得到待更新本地资源包,并根据所述待更新本地资源包对所述应用程序的资源进行更新;
当所述基础本地资源包和目标更新单资源的内存之和未超过预设内存阈值时,将所述基础本地资源包作为所述待更新本地资源包,并根据所述待更新本地资源包对所述应用程序的资源进行更新。
7.根据权利要求6所述的资源更新方法,其特征在于,所述在所述基础本地资源包中删除过期单资源,得到待更新本地资源包,包括:
根据所述本地目标资源信息中单资源的更新时间,确定所述基础本地资源包中每一单资源的更新时间与当前时间的时间差值;
基于所述时间差值,在所述本地目标资源信息中筛选出过期单资源信息;
根据所述过期单资源信息,在所述基础本地资源包中识别出过期单资源,并删除所述过期单资源,得到所述待更新本地资源包。
8.根据权利要求6所述的资源更新方法,其特征在于,所述根据所述待更新本地资源包对所述应用程序的资源进行更新,包括:
根据所述更新资源信息,确定所述目标更新单资源的目标文件信息;
对所述待更新本地资源包的文件进行读取,得到所述待更新本地资源包的基础文件信息;
将所述目标文件信息与基础文件信息进行对比,得到增量更新文件信息;
根据所述增量更新文件信息,在更新资源包中筛选出增量更新文件,并将所述增量更新文件添加至所述待更新本地资源包,以对所述应用程序的资源进行更新。
9.根据权利要求1所述的资源更新方法,其特征在于,所述基于所述资源标识、本地资源信息和更新资源信息,对所述本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包,包括:
根据所述资源标识,对所述本地资源信息进行调整,得到第二本地目标资源信息;
基于所述第二本地目标资源信息和更新资源信息,对所述本地资源包中的单资源进行清理,得到第二候选本地资源包;
根据所述本地资源信息和更新资源信息,对所述第二候选本地资源包的单资源中的文件进行清理,得到基础本地资源包。
10.一种资源更新装置,其特征在于,包括:
接收单元,用于接收应用程序的资源更新请求,所述资源更新请求携带至少一个待更新的单资源的资源标识和所述应用程序的本地资源信息;
获取单元,用于根据所述资源更新请求,获取所述应用程序的更新资源信息和本地资源包,所述本地资源包包括至少一个单资源;
清理单元,用于基于所述资源标识、本地资源信息和更新资源信息,对所述本地资源包中的单资源和单资源中的文件进行清理,得到基础本地资源包;
更新单元,用于根据所述基础本地资源包的内存和资源标识,对所述应用程序的资源进行更新。
11.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求1至9任一项所述的资源更新方法中的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至9任一项所述的资源更新方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011006876.9A CN112114849B (zh) | 2020-09-23 | 2020-09-23 | 一种资源更新方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011006876.9A CN112114849B (zh) | 2020-09-23 | 2020-09-23 | 一种资源更新方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112114849A CN112114849A (zh) | 2020-12-22 |
CN112114849B true CN112114849B (zh) | 2022-03-08 |
Family
ID=73801683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011006876.9A Active CN112114849B (zh) | 2020-09-23 | 2020-09-23 | 一种资源更新方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112114849B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114866413A (zh) * | 2021-01-18 | 2022-08-05 | 网宿科技股份有限公司 | 一种动态配置变量的方法及系统 |
CN112866415B (zh) * | 2021-02-24 | 2023-07-28 | 上海泰宇信息技术股份有限公司 | 一种数据备份私有云存储与下载方法 |
CN113327639B (zh) * | 2021-05-26 | 2023-09-15 | 翱捷科技股份有限公司 | 一种基于lvgl的固件存储读取方法及装置 |
CN114422505B (zh) * | 2022-01-25 | 2024-07-05 | 中国农业银行股份有限公司 | 银行柜面交易程序更新传输方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739278A (zh) * | 2009-12-17 | 2010-06-16 | 中国电力科学研究院 | 一种企业级应用软件升级方法及系统 |
CN107185238A (zh) * | 2017-06-15 | 2017-09-22 | 苏州乐米信息科技股份有限公司 | 游戏资源更新方法及系统 |
CN107203395A (zh) * | 2017-05-19 | 2017-09-26 | 北京京东尚科信息技术有限公司 | 资源升级方法、装置及计算机可读存储介质和电子设备 |
CN111221559A (zh) * | 2019-11-05 | 2020-06-02 | 北京达佳互联信息技术有限公司 | 应用更新方法、装置、存储介质、终端及服务器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9398068B2 (en) * | 2014-02-20 | 2016-07-19 | International Business Machines Corporation | Bulk uploading of multiple self-referencing objects |
US10169368B2 (en) * | 2014-10-02 | 2019-01-01 | International Business Machines Corporation | Indexing of linked data |
CN106502688B (zh) * | 2016-11-01 | 2019-07-26 | 网易(杭州)网络有限公司 | 资源发布的处理方法及装置 |
CN108304207A (zh) * | 2018-03-01 | 2018-07-20 | 上海找钢网信息科技股份有限公司 | 混合app应用程序的资源更新方法及系统 |
CN109522041B (zh) * | 2018-10-15 | 2021-11-23 | 网易(杭州)网络有限公司 | 客户端资源更新方法、装置、处理器、服务器及终端 |
CN109999489A (zh) * | 2019-03-29 | 2019-07-12 | 北京金山安全软件有限公司 | 资源更新方法、装置和电子设备 |
-
2020
- 2020-09-23 CN CN202011006876.9A patent/CN112114849B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739278A (zh) * | 2009-12-17 | 2010-06-16 | 中国电力科学研究院 | 一种企业级应用软件升级方法及系统 |
CN107203395A (zh) * | 2017-05-19 | 2017-09-26 | 北京京东尚科信息技术有限公司 | 资源升级方法、装置及计算机可读存储介质和电子设备 |
CN107185238A (zh) * | 2017-06-15 | 2017-09-22 | 苏州乐米信息科技股份有限公司 | 游戏资源更新方法及系统 |
CN111221559A (zh) * | 2019-11-05 | 2020-06-02 | 北京达佳互联信息技术有限公司 | 应用更新方法、装置、存储介质、终端及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN112114849A (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112114849B (zh) | 一种资源更新方法和装置 | |
CN104461504B (zh) | 一种终端应用程序的管理方法 | |
CN105677250B (zh) | 对象存储系统中的对象数据的更新方法和更新装置 | |
CN109739815B (zh) | 文件处理方法、系统、装置、设备及存储介质 | |
US11296940B2 (en) | Centralized configuration data in a distributed file system | |
US8825817B1 (en) | Using a template to update a stack of resources | |
JP2019517042A (ja) | オフラインでのハイブリッドアプリケーションへのアクセスの提供 | |
JP5886447B2 (ja) | ロケーション非依存のファイル | |
CN111930473B (zh) | 在容器云上部署图像识别服务的方法与设备 | |
CN106970958B (zh) | 一种流文件的查询与存储方法和装置 | |
CN108363813A (zh) | 数据存储方法、装置和系统 | |
CN113209633A (zh) | 镜像的处理方法、装置、电子设备及可读存储介质 | |
CN110347651A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
US10909086B2 (en) | File lookup in a distributed file system | |
CN104461505B (zh) | 一种终端 | |
CN104216902A (zh) | 一种基于服务器分页的分页数据装载方法、装置和系统 | |
CN112363871A (zh) | 一种数据回档方法、装置及存储介质 | |
CN104899049A (zh) | 一种文件删除方法及其装置 | |
CN108960378B (zh) | 一种数据下载方法、系统、装置和存储介质 | |
US10956378B2 (en) | Hierarchical file transfer using KDE-optimized filesize probability densities | |
CN116954680A (zh) | 存储系统的插件更新方法、装置、设备、介质及程序产品 | |
CN108334374A (zh) | 组件动态加载与执行的方法和装置 | |
CN108008984A (zh) | 一种资源文件下载更新方法及装置 | |
CN103838873B (zh) | 一种应用匹配机主信息自动搜索的方法及系统 | |
CN116594834A (zh) | 一种用于多协议服务器的运维数据处理方法及装置 |
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 |