CN111221559B - 应用更新方法、装置、存储介质、终端及服务器 - Google Patents

应用更新方法、装置、存储介质、终端及服务器 Download PDF

Info

Publication number
CN111221559B
CN111221559B CN201911072445.XA CN201911072445A CN111221559B CN 111221559 B CN111221559 B CN 111221559B CN 201911072445 A CN201911072445 A CN 201911072445A CN 111221559 B CN111221559 B CN 111221559B
Authority
CN
China
Prior art keywords
package
installation package
resource
file
application
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
CN201911072445.XA
Other languages
English (en)
Other versions
CN111221559A (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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology 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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN201911072445.XA priority Critical patent/CN111221559B/zh
Publication of CN111221559A publication Critical patent/CN111221559A/zh
Application granted granted Critical
Publication of CN111221559B publication Critical patent/CN111221559B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供一种应用更新方法、装置、存储介质、终端及服务器,用以提升热更新的成功率。该应用更新方法包括:获取所述应用的包含资源文件和资源索引文件的更新安装包,所述资源索引文件包含所述资源文件对应的资源索引数值;由所述更新安装包中的资源索引文件,获取各个资源文件分别对应的资源索引数值,将所述更新安装包中所有的资源文件的资源索引替换为相应的资源索引数值,并删除所述资源索引文件,得到新版本安装包;将所述新版本安装包与旧版本安装包进行比对,生成补丁包,所述补丁包包括所述新版本安装包与旧版本安装包之间的差异文件;向应用客户端发送所述补丁包,以使得所述应用客户端根据所述补丁包更新所述应用客户端的应用。

Description

应用更新方法、装置、存储介质、终端及服务器
技术领域
本公开涉及计算机技术领域,尤其涉及一种应用更新方法、装置、存储介质、终端及服务器。
背景技术
近年来应用(APP)得到了迅速的发展,当APP中出现漏洞(bug)时,一般有两种方式修复bug,重新发布APP的方式和热更新的方式。如果采用重新发布APP的方式修复bug,需要APP开发商对APP软件进行修改、重新打包、测试、向各个应用市场和渠道换安装包、提示用户升级,用户需要重新下载新安装包、覆盖安装,这一系列的动作将给APP开发商带来比较大的工作量,且给用户带来一定的干扰。如果采用热更新的方式修复bug,更新时只需下载安装更新部分的代码。为了使用户有更好的体验,当应用软件中出现紧急漏洞(bug)时,一般采取在线热更新的方式修复bug。
目前,Tinker是一项重要的安卓应用(Android APP)热更新技术,其工作原理为:应用服务端将应用的更新安装包与旧版本安装包做差分,生成补丁包并发送给应用客户端,应用客户端接收到补丁包后,将该补丁包与应用客户端的应用的原有安装包进行合并,以生成合并安装包,根据合并安装包更新应用。然而,相关技术中APP热更新的补丁合成阶段的合成时间过长,使得用户在使用APP期间未完成补丁合成就关闭APP,从而导致热更新失败。
发明内容
本公开提供一种应用更新方法、装置、存储介质、终端及服务器,用以提升热更新的成功率。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种应用更新方法,所述方法用于应用服务端,所述方法包括:
获取所述应用的包含资源文件和资源索引文件的更新安装包,所述资源索引文件包含所述资源文件对应的资源索引数值;
由所述更新安装包中的资源索引文件,获取各个资源文件分别对应的资源索引数值,将所述更新安装包中所有的资源文件的资源索引替换为相应的资源索引数值,并删除所述资源索引文件,得到新版本安装包;
将所述新版本安装包与旧版本安装包进行比对,生成补丁包,所述补丁包包括所述新版本安装包与旧版本安装包之间的差异文件;
向应用客户端发送所述补丁包,以使得所述应用客户端根据所述补丁包更新所述应用客户端的应用。
在一可能的实现方式中,所述向应用客户端发送所述补丁包,包括:
接收应用客户端发送的热更新请求;
根据所述热更新请求,向所述应用客户端发送所述补丁包。
在一可能的实现方式中,所述热更新请求携带所述应用的版本号;
所述根据所述热更新请求,向所述应用客户端发送所述补丁包,包括:
根据所述版本号查找对应的补丁包;
向所述应用客户端发送与所述版本号对应的补丁包。
在一可能的实现方式中,在得到新版本安装包之前,该方法还包括:
获取所述更新安装包的包名;
在检测到所述更新安装包的包名为指定包名时,更改所述更新安装包的包名,并将更新后的包名作为所述新版本安装包的包名。
根据本公开实施例的第二方面,提供一种应用更新方法,所述方法用于应用客户端,所述方法包括:
接收应用服务端发送的补丁包,所述补丁包中包含资源文件及资源文件对应的资源索引数值;
将所述补丁包与所述应用客户端的所述应用的原有安装包进行合并,以生成合并安装包;
根据所述合并安装包中的资源索引数值,获取所述合并安装包中与所述资源索引数值对应的资源文件;
加载所述资源文件,以更新所述应用。
在一可能的实现方式中,在接收到所述应用服务器发送的补丁包之后,该方法还包括:
将所述补丁包对应的补丁合成进程的优先级设置为与所述应用的主进程的优先级一致,所述补丁合成进程用于将所述补丁包与所述原有安装包进行合并以生成所述合并安装包。
在一可能的实现方式中,所述根据所述合并安装包中的资源索引数值,获取所述合并安装包中与所述资源索引数值对应的资源文件,包括:
将所述合并安装包中的Dex文件进行合并,并将合并后的Dex文件的标识位修改为oat格式的文件对应的标识位,以生成oat文件;
获取包含所述oat文件的优化安装包;
根据所述优化安装包中的资源索引数值,获取所述优化安装包中与所述资源索引数值对应的资源文件。
在一可能的实现方式中,在所述获取包含所述oat文件的优化安装包的步骤之前,该方法还包括:
对生成的所述oat文件进行验证;
若验证不通过,则将所述合并安装包中的Dex文件进行合并,将合并后的Dex文件的字节码进行转换,并将转换后的Dex文件的标识位修改为oat格式的文件对应的标识位,以重新生成oat文件;
若验证通过,则执行所述获取包含所述oat文件的优化安装包的步骤。
在一可能的实现方式中,所述对生成的所述oat文件进行验证,包括:
确定生成的所述oat文件的格式;
判断所述oat文件的格式是否与所述应用客户端支持的格式匹配,若匹配,则验证通过,若不匹配,则验证不通过。
根据本公开实施例的第三方面,提供一种应用更新装置,所述装置用于应用服务端,所述装置包括:
第一获取模块,被配置为获取所述应用的包含资源文件和资源索引文件的更新安装包,所述资源索引文件包含所述资源文件对应的资源索引数值;
处理模块,被配置为由所述更新安装包中的资源索引文件,获取各个资源文件分别对应的资源索引数值,将所述更新安装包中所有的资源文件的资源索引替换为相应的资源索引数值,并删除所述资源索引文件,得到新版本安装包;
补丁包生成模块,被配置为将所述新版本安装包与旧版本安装包进行比对,生成补丁包,所述补丁包包括所述新版本安装包与旧版本安装包之间的差异文件;
发送模块,被配置为向应用客户端发送所述补丁包,以使得所述应用客户端根据所述补丁包更新所述应用客户端的应用。
在一可能的实现方式中,所述装置还包括:接收模块;
所述接收模块,被配置为接收应用客户端发送的热更新请求;
所述发送模块,被配置为根据所述热更新请求,向所述应用客户端发送所述补丁包。
在一可能的实现方式中,所述热更新请求携带所述应用的版本号;
所述发送模块被配置为:
根据所述版本号查找对应的补丁包;
向所述应用客户端发送与所述版本号对应的补丁包。
在一可能的实现方式中,所述装置还包括:包名更改模块;
所述包名更改模块被配置为:
获取所述更新安装包的包名;
在检测到所述更新安装包的包名为指定包名时,更改所述更新安装包的包名,并将更新后的包名作为所述新版本安装包的包名。
根据本公开实施例的第四方面,提供一种应用更新装置,所述装置用于应用客户端,所述装置包括:
接收模块,被配置为接收应用服务端发送的补丁包,所述补丁包中包含资源文件及资源文件对应的资源索引数值;
合成模块,被配置为将所述补丁包与所述应用客户端的所述应用的原有安装包进行合并,以生成合并安装包;
资源文件获取模块,被配置为根据所述合并安装包中的资源索引数值,获取所述合并安装包中与所述资源索引数值对应的资源文件;
更新模块,被配置为加载所述资源文件,以更新所述应用。
在一可能的实现方式中,所述装置还包括:
设置模块,被配置为将所述补丁包对应的补丁合成进程的优先级设置为与所述应用的主进程的优先级一致,所述补丁合成进程用于将所述补丁包与所述原有安装包进行合并以生成所述合并安装包。
在一可能的实现方式中,所述资源文件获取模块包括:
oat文件生成子模块,被配置为将所述合并安装包中的Dex文件进行合并,并将合并后的Dex文件的标识位修改为oat格式的文件对应的标识位,以生成oat文件;
第一获取子模块,被配置为获取包含所述oat文件的优化安装包;
第二获取子模块,被配置为根据所述优化安装包中的资源索引数值,获取所述优化安装包中与所述资源索引数值对应的资源文件。
在一可能的实现方式中,所述资源文件获取模块还包括:校验子模块;
所述校验子模块被配置为:
对生成的所述oat文件进行验证;
若验证不通过,则将所述合并安装包中的Dex文件进行合并,将合并后的Dex文件的字节码进行转换,并将转换后的Dex文件的标识位修改为oat格式的文件对应的标识位,以重新生成oat文件;
若验证通过,则所述第一获取子模块执行所述获取包含所述oat文件的优化安装包的步骤。
在一可能的实现方式中,所述校验子模块被配置为:
确定生成的所述oat文件的格式;
判断所述oat文件的格式是否与所述应用客户端支持的格式匹配,若匹配,则验证通过,若不匹配,则验证不通过。
根据本公开实施例的第五方面,提供一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开任意可能的实现方式中的应用更新方法的步骤。
根据本公开实施例的第六方面,提供一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面或第一方面的任意可能的实现方式中的应用更新方法的步骤。
根据本公开实施例的第七方面,提供一种服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现第二方面或第二方面的任意可能的实现方式中的应用更新方法的步骤。
根据本公开实施例的第八方面,提供一种计算机程序产品,包括计算机程序,所述程序被处理器执行时实现本公开任意可能的实现方式中的应用更新方法的步骤。
本公开的实施例提供的技术方案至少带来以下有益效果:
应用服务端在获取应用的包含资源文件和资源索引文件的更新安装包后,由所述更新安装包中的资源索引文件,获取各个资源文件分别对应的资源索引数值,将所述更新安装包中所有的资源文件的资源索引替换为相应的资源索引数值,并删除所述资源索引文件,得到新版本安装包,再将所述新版本安装包与旧版本安装包进行比对,生成包括所述新版本安装包与旧版本安装包之间的差异文件的补丁包,然后向应用客户端发送所述补丁包,以使得所述应用客户端根据补丁包更新所述应用客户端的应用,由于新版本安装包中删除了资源索引文件,这样补丁包中就不包含资源索引文件,这会大大降低补丁包的大小,在APP热更新的补丁合成阶段,参与合成的Dex文件就会较少,于是合成时间就会较小,从而可以提升热更新的成功率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种应用更新系统的网络架构图;
图2是根据一示例性实施例示出的应用的安装包的原理示意图;
图3是根据一示例性实施例示出的应用服务端侧的应用更新方法的流程示意图;
图4是根据一示例性实施例示出的应用客户端侧的应用更新方法的流程示意图;
图5是根据一示例性实施例示出的应用更新方法的交互图;
图6是根据一示例性实施例示出的应用服务端侧的应用更新装置的第一种结构示意图;
图7是根据一示例性实施例示出的应用服务端侧的应用更新装置的第二种结构示意图;
图8是根据一示例性实施例示出的应用客户端侧的应用更新装置的第一种结构示意图;
图9是根据一示例性实施例示出的应用客户端侧的应用更新装置的第二种结构示意图;
图10是根据一示例性实施例示出的应用客户端侧的应用更新装置中的资源文件获取模块的第一种结构示意图;
图11是根据一示例性实施例示出的应用客户端侧的应用更新装置中的资源文件获取模块的第二种结构示意图;
图12是根据一示例性实施例示出的一种终端的结构示意图;
图13是根据一示例性实施例示出的一种服务器的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
首先,介绍一下本公开实施例中的技术名词。
Tinker:一项重要的Android APP热更新技术,在代码托管平台(github)上开源。
Dex文件:Android系统中可以直接执行的文件,一个Android安装包(APK)通常是由多个Dex文件组成。Dex文件包含的方法数最多为65536个。
oat文件:一种Android私有ELF文件格式,由Dex文件经过Dex2oat编译生成的一种可执行文件。
接下来介绍一下本公开实施例提供的技术方案的应用场景的网络架构。
图1是根据一示例性实施例示出的一种应用更新系统的网络架构图,如图1所示,该网络架构包括终端10和服务器20。
终端10可以是智能手机、平板电脑等,终端10是运行应用客户端的电子设备。
服务器20是运行应用服务端的电子设备,用于接收终端10发送的数据,或者用于向终端10发送数据。
如图2所示,应用(APP)的安装包包括一个入口文件(即主APP)和多个模块,该多个模块为入口文件的依赖文件,相关技术中,入口文件和每一个模块中各有一个资源索引文件,父节点的模块会复制所有子节点的模块对应的资源索引文件并进行合并,并将该父节点的模块中的资源添加到合并后的资源索引文件,以得到父节点的模块对应的资源索引文件。例如,模块5对应的资源索引文件包括模块7的对应的资源索引文件,以及根据模块5中的资源添加的资源索引文件,模块1对应的资源索引文件包括模块5的对应的资源索引文件,以及根据模块1中的资源添加的资源索引文件。其中,资源索引文件存有资源文件的资源索引与资源索引数值的对应关系,比如,资源索引文件包含yellow=11,其中,yellow为资源索引,11为资源索引数值,资源索引数值代表资源文件在安装包中的序号,安装包在运行时会根据这个序号查找到相应的资源文件的在安装包中的位置,就可以顺利加载资源文件。
从上述内容可看出,APP的安装包中包含多份资源索引文件,资源索引文件会占用比较多的空间,使得安装包中的Dex文件数量比较多,这样,在APP热更新的补丁合成阶段,就会有更多的Dex文件参与合成,造成合成时间过长,使得用户在使用APP期间未完成补丁合成就关闭APP,从而导致热更新失败。
基于此,本公开提供一种应用更新方法、装置、存储介质、终端及服务器。
图3是根据一示例性实施例示出的一种应用更新方法的流程图,如图3所示,该应用更新方法用于应用服务端,该方法包括以下步骤:
S101、获取所述应用的包含资源文件和资源索引文件的更新安装包,所述资源索引文件包含所述资源文件对应的资源索引数值;
其中,更新安装包可以是开发人员针对APP的bug修改服务器上的应用程序,得到更新安装包;更新安装包可以是开发人员针对APP的bug在本地修改应用程序,得到更新安装包,然后同步到服务器上。
S102、由所述更新安装包中的资源索引文件,获取各个资源文件分别对应的资源索引数值,将所述更新安装包中所有的资源文件的资源索引替换为相应的资源索引数值,并删除所述资源索引文件,得到新版本安装包;
其中,资源索引文件存有资源文件的资源索引与资源索引数值的对应关系,资源索引数值代表资源文件在安装包中的序号,安装包在运行时会根据这个序号查找到相应的资源文件的在安装包中的位置,就可以顺利加载资源文件。
例如,资源索引文件包含blue=10,其中,blue为资源索引,10为资源索引数值,本公开实施例中,将更新安装包中所有的blue替换成10,并删除资源索引文件,得到新版本安装包。
需要指出的是,对于应用的原始安装包也做了上述的处理,也就算是说处理后的原始安装包中不包含资源索引文件。
S103、将所述新版本安装包与旧版本安装包进行比对,生成补丁包,所述补丁包包括所述新版本安装包与旧版本安装包之间的差异文件;
S104、向应用客户端发送所述补丁包,以使得所述应用客户端根据所述补丁包更新所述应用客户端的应用。
本公开实施例中,向应用客户端发送所述补丁包可以是服务端主动推送,也可以是应用客户端发送热更新请求给服务端,然后服务器根据接收到的热更新请求向应用客户端发送补丁包,本公开实施例对此并不进行限定。
对于不同的应用版本,一般对应不同的补丁包,为了找到准确的补丁包,在一些实施例中,上述热更新请求携带所述应用的版本号;
所述根据所述热更新请求,向所述应用客户端发送所述补丁包,包括:
根据所述版本号查找对应的补丁包;
向所述应用客户端发送与所述版本号对应的补丁包。
对于一些终端,在APP热更新过程中发起补丁合成进程时,当检测到安装包中包含特定的包名,就会杀死该补丁合成进程,从而导致更新失败。
例如,VIVO和OPPO在APP热更新过程中发起补丁合成进程时,当检测到安装包中包含“Tinker”的包名,该补丁合成进程就会被杀死,从而导致更新失败。
在一些实施例中,为了避免补丁合成进程被杀死而导致更新失败,在得到新版本安装包之前,该方法还包括:
获取所述更新安装包的包名;
在检测到所述更新安装包的包名为指定包名时,更改所述更新安装包的包名,并将更新后的包名作为所述新版本安装包的包名。
其中,指定包名是指会导致补丁合成进程被杀死的包名,即上述特定的包名。
图4是根据一示例性实施例示出的一种应用更新方法的流程图,如图4所示,该应用更新方法用于应用客户端,该方法包括以下步骤:
S201、接收应用服务端发送的补丁包,所述补丁包中包含资源文件及资源文件对应的资源索引数值;
S202、将所述补丁包与所述应用客户端的所述应用的原有安装包进行合并,以生成合并安装包;
S203、根据所述合并安装包中的资源索引数值,获取所述合并安装包中与所述资源索引数值对应的资源文件;
S204、加载所述资源文件,以更新所述应用。
本公开实施例中,由于补丁包中包含资源文件及资源文件对应的资源索引数值,也就是说补丁包中不包含资源索引文件,这会大大降低补丁包的大小,在APP热更新的补丁合成阶段,参与合成的Dex文件就会较少,于是合成时间就会较小,从而提升热更新的成功率。
并且由于合并安装包中不包含资源索引文件,因此可以直接根据合并安装包中的资源索引数值,获取合并安装包中的资源文件,而不需要由合并安装包中的资源索引文件,获取各个资源索引分别对应的资源索引数值,然后根据资源索引数值获取相应的资源文件,因此,可以提升更新速度。
相关技术中,由于补丁合成进程没有前台服务和前台页面,被系统判定为后台(background)进程,导致进程无法获取足够的CPU完成合成操作,通常一个几十kb的补丁包合成平均需要120~150秒左右的时间,用户在实际使用过程中可能无法等待如此长的时间就关闭了应用,从而导致热更新失败,上述问题归根究底是因为补丁合成进程的优先级低,导致合成时间长,从而导致热更新失败。
为了进一步减少合成时间,提升热更新的成功率,在一些实施例中,在接收到所述应用服务器发送的补丁包之后,该方法还可以包括:
将所述补丁包对应的补丁合成进程的优先级设置为与所述应用的主进程的优先级一致,所述补丁合成进程用于将所述补丁包与所述原有安装包进行合并以生成所述合并安装包。
相关技术中,在加载安装包中的Dex文件之前,通常会采用Dex2oat将Dex文件编译成oat文件,以对安装包进行优化。Dex2oat的工作原理为:将安装包中的Dex文件进行合并,将合并后的Dex文件的字节码进行转换,并将转换后的Dex文件的标识位修改为oat格式的文件对应的标识位,以生成oat文件。而将合并后的Dex文件的字节码进行转换的耗时比较长,导致加载的时间较长,从而导致热更新失败。
为了解决加载时间长的问题,在一些实施例中,步骤S203中根据所述合并安装包中的资源索引数值,获取所述合并安装包中与所述资源索引数值对应的资源文件,可以包括:
将所述合并安装包中的Dex文件进行合并,并将合并后的Dex文件的标识位修改为oat格式的文件对应的标识位,以生成oat文件;
获取包含所述oat文件的优化安装包;
根据所述优化安装包中的资源索引数值,获取所述优化安装包中与所述资源索引数值对应的资源文件。
在一些实施例中,在获取包含所述oat文件的优化安装包之前,该方法还可以包括:
对生成的所述oat文件进行验证;
若验证不通过,则将所述合并安装包中的Dex文件进行合并,将合并后的Dex文件的字节码进行转换,并将转换后的Dex文件的标识位修改为oat格式的文件对应的标识位,以重新生成oat文件(例如可以采用Dex2oat新生成oat文件);
若验证通过,则执行所述获取包含所述oat文件的优化安装包的步骤。
在一些实施例中,上述对生成的所述oat文件进行验证,可以包括:
确定生成的所述oat文件的格式;
判断所述oat文件的格式是否与所述应用客户端支持的格式匹配,若匹配,则验证通过,若不匹配,则验证不通过。
例如,可以使用Classloader读取oat文件指定位置的内容,从而得到oat文件的格式信息,根据oat文件的格式信息确定oat文件的格式,然后应用客户端判断oat文件的格式是否与应用客户端支持的格式匹配,若匹配,则验证通过,若不匹配,则验证不通过。
参见图5,下面结合交互图说明本公开实施例提供的应用更新的总体流程。
S301、应用服务端获取所述应用的包含资源文件和资源索引文件的更新安装包,所述资源索引文件包含所述资源文件对应的资源索引数值;
S302、应用服务端获取所述更新安装包的包名,在检测到所述更新安装包的包名为指定包名时,更改所述更新安装包的包名;
S303、由所述更新安装包中的资源索引文件,获取各个资源文件分别对应的资源索引数值,将所述更新安装包中所有的资源文件的资源索引替换为相应的资源索引数值,并删除所述资源索引文件,得到新版本安装包,并将更新后的包名作为所述新版本安装包的包名;
S304、将所述新版本安装包与旧版本安装包进行比对,生成补丁包,所述补丁包包括所述新版本安装包与旧版本安装包之间的差异文件;
S305、应用服务端接收应用客户端发送的热更新请求;
其中,热更新请求携带所述应用的版本号。
S306、应用服务端根据所述版本号查找对应的补丁包;
S307、应用服务端向所述应用客户端发送与所述版本号对应的补丁包,所述补丁包中包含资源文件及资源文件对应的资源索引数值;
S308、应用客户端将所述补丁包对应的补丁合成进程的优先级设置为与所述应用的主进程的优先级一致;
其中,补丁合成进程用于将所述补丁包与所述原有安装包进行合并以生成所述合并安装包。
S309、应用客户端将所述补丁包与所述应用客户端的所述应用的原有安装包进行合并,以生成合并安装包;
S310、应用客户端将所述合并安装包中的Dex文件进行合并,并将合并后的Dex文件的标识位修改为oat格式的文件对应的标识位,以生成oat文件;
S311、应用客户端对生成的所述oat文件进行验证,若验证不通过,则执行步骤S312和S313,若验证通过,则执行S313;
S312、应用客户端将所述合并安装包中的Dex文件进行合并,将合并后的Dex文件的字节码进行转换,并将转换后的Dex文件的标识位修改为oat格式的文件对应的标识位,以重新生成oat文件;
S313、应用客户端获取包含oat文件的优化安装包;
S314、应用客户端根据所述优化安装包中的资源索引数值,获取所述优化安装包中与所述资源索引数值对应的资源文件;
S315、应用客户端加载所述资源文件,以更新所述应用。
基于同一发明构思,本公开实施例还提供了一种应用更新装置,图6是根据一示例性实施例示出的一种应用更新装置框图。参照图6,该应用更新装置用于应用服务端,该应用更新装置包括:第一获取模块11、处理模块12、补丁包生成模块13和发送模块14。
第一获取模块11,被配置为获取所述应用的包含资源文件和资源索引文件的更新安装包,所述资源索引文件包含所述资源文件对应的资源索引数值;
处理模块12,被配置为由所述更新安装包中的资源索引文件,获取各个资源文件分别对应的资源索引数值,将所述更新安装包中所有的资源文件的资源索引替换为相应的资源索引数值,并删除所述资源索引文件,得到新版本安装包;
补丁包生成模块13,被配置为将所述新版本安装包与旧版本安装包进行比对,生成补丁包,所述补丁包包括所述新版本安装包与旧版本安装包之间的差异文件;
发送模块14,被配置为向应用客户端发送所述补丁包,以使得所述应用客户端根据所述补丁包更新所述应用客户端的应用。
在一可能的实现方式中,如图7所示,上述装置还包括:接收模块15;
接收模块15,被配置为接收应用客户端发送的热更新请求;
发送模块14,被配置为根据所述热更新请求,向所述应用客户端发送所述补丁包。
在一可能的实现方式中,所述热更新请求携带所述应用的版本号;
发送模块14被配置为:
根据所述版本号查找对应的补丁包;
向所述应用客户端发送与所述版本号对应的补丁包。
在一可能的实现方式中,如图7所示,上述装置还包括:包名更改模块16;
包名更改模块16被配置为:
获取所述更新安装包的包名;
在检测到所述更新安装包的包名为指定包名时,更改所述更新安装包的包名,并将更新后的包名作为所述新版本安装包的包名。
基于同一发明构思,本公开实施例还提供了一种应用更新装置,图8是根据一示例性实施例示出的一种应用更新装置框图。参照图8,该应用更新装置用于应用客户端,该应用更新装置包括:接收模块21、合成模块22、资源文件获取模块23和更新模块24。
接收模块21,被配置为接收应用服务端发送的补丁包,所述补丁包中包含资源文件及资源文件对应的资源索引数值;
合成模块22,被配置为将所述补丁包与所述应用客户端的所述应用的原有安装包进行合并,以生成合并安装包;
资源文件获取模块23,被配置为根据所述合并安装包中的资源索引数值,获取所述合并安装包中与所述资源索引数值对应的资源文件;
更新模块24,被配置为加载所述资源文件,以更新所述应用。
在一可能的实现方式中,如图9所示,上述装置还包括:
设置模块25,被配置为将所述补丁包对应的补丁合成进程的优先级设置为与所述应用的主进程的优先级一致,所述补丁合成进程用于将所述补丁包与所述原有安装包进行合并以生成所述合并安装包。
在一可能的实现方式中,如图10所示,上述资源文件获取模块23包括:
oat文件生成子模块231,被配置为将所述合并安装包中的Dex文件进行合并,并将合并后的Dex文件的标识位修改为oat格式的文件对应的标识位,以生成oat文件;
第一获取子模块232,被配置为获取包含所述oat文件的优化安装包;
第二获取子模块233,被配置为根据所述优化安装包中的资源索引数值,获取所述优化安装包中与所述资源索引数值对应的资源文件。
在一可能的实现方式中,如图11所示,上述资源文件获取模块23还包括:校验子模块234;
校验子模块234被配置为:
对生成的所述oat文件进行验证;
若验证不通过,则将所述合并安装包中的Dex文件进行合并,将合并后的Dex文件的字节码进行转换,并将转换后的Dex文件的标识位修改为oat格式的文件对应的标识位,以重新生成oat文件;
若验证通过,则所述第一获取子模块232执行所述获取包含所述oat文件的优化安装包的步骤。
在一可能的实现方式中,校验子模块234被配置为:
确定生成的所述oat文件的格式;
判断所述oat文件的格式是否与所述应用客户端支持的格式匹配,若匹配,则验证通过,若不匹配,则验证不通过。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
基于同一发明构思,本公开实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意可能的实现方式中的应用更新方法的步骤。
可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
基于同一发明构思,本公开实施例还提供了一种计算机程序产品,包括计算机程序,所述程序被处理器执行时实现上述任意可能的实现方式中的应用更新方法的步骤。
基于同一发明构思,本公开实施例还提供了一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;
其中,所述处理器用于:
接收应用服务端发送的补丁包,所述补丁包中包含资源文件及资源文件对应的资源索引数值;
将所述补丁包与应用的原有安装包进行合并,以生成合并安装包;
根据所述合并安装包中的资源索引数值,获取所述合并安装包中与所述资源索引数值对应的资源文件;
加载所述资源文件,以更新所述应用。
如图12所示,图12是本公开根据一示例性实施例示出的一种终端1700的一结构示意图。例如,终端1700可以是具有路由功能的移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图12,终端1700可以包括以下一个或多个组件:处理组件1702,存储器1704,电源组件1706,多媒体组件1708,音频组件1710,输入/输出(I/O)的接口1712,传感器组件1714,以及通信组件1716。
处理组件1702通常控制终端1700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1702可以包括一个或多个处理器1720来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1702可以包括一个或多个模块,便于处理组件1702和其他组件之间的交互。例如,处理组件1702可以包括多媒体模块,以方便多媒体组件1708和处理组件1702之间的交互。
存储器1704被配置为存储各种类型的数据以支持在终端1700的操作。这些数据的示例包括用于在终端1700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1706为终端1700的各种组件提供电力。电源组件1706可以包括电源管理系统,一个或多个电源,及其他与为终端1700生成、管理和分配电力相关联的组件。
多媒体组件1708包括在所述终端1700和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1708包括一个前置摄像头和/或后置摄像头。当终端1700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1710被配置为输出和/或输入音频信号。例如,音频组件1710包括一个麦克风(MIC),当终端1700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1704或经由通信组件1716发送。在一些实施例中,音频组件1710还包括一个扬声器,用于输出音频信号。
I/O接口1712为处理组件1702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1714包括一个或多个传感器,用于为终端1700提供各个方面的状态评估。例如,传感器组件1714可以检测到终端1700的打开/关闭状态,组件的相对定位,例如所述组件为终端1700的显示器和小键盘,传感器组件1714还可以检测终端1700或终端1700一个组件的位置改变,用户与终端1700接触的存在或不存在,终端1700方位或加速/减速和终端1700的温度变化。传感器组件1714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1714还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1714还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器,微波传感器或温度传感器。
通信组件1716被配置为便于终端1700和其他设备之间有线或无线方式的通信。终端1700可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1716还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,终端1700可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行如图4所示的应用更新方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1704,上述指令可由终端1700的处理器1720执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
基于同一发明构思,本公开实施例还提供了一种服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;
其中,所述处理器用于:
获取应用的包含资源文件和资源索引文件的更新安装包,所述资源索引文件包含所述资源文件对应的资源索引数值;
由所述更新安装包中的资源索引文件,获取各个资源文件分别对应的资源索引数值,将所述更新安装包中所有的资源文件的资源索引替换为相应的资源索引数值,并删除所述资源索引文件,得到新版本安装包;
将所述新版本安装包与旧版本安装包进行比对,生成补丁包,所述补丁包包括所述新版本安装包与旧版本安装包之间的差异文件;
向应用客户端发送所述补丁包,以使得所述应用客户端根据所述补丁包更新所述应用客户端的应用。
如图13所示,图13是根据一示例性实施例示出的一种服务器1800的一结构示意图。参照图13,服务器1800包括处理组件1802,其进一步包括一个或多个处理器,以及由存储器1804所代表的存储器资源,用于存储可由处理组件1802的执行的指令,例如应用程序。存储器1804中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1802被配置为执行指令,以执行如图3所示的应用更新方法。
服务器1800还可以包括一个电源组件1806,被配置为执行服务器1800的电源管理,一个有线或无线网络接口1808,被配置为将服务器1800连接到网络,和一个输入输出(I/O)接口1810。服务器1800可以操作基于存储在存储器1804的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (21)

1.一种应用更新方法,其特征在于,所述方法用于应用服务端,所述方法包括:
获取所述应用的包含资源文件和资源索引文件的更新安装包,所述资源索引文件包含所述资源文件对应的资源索引数值;所述资源索引数值代表对应资源文件在安装包中的序号,用于确定对应资源文件的在安装包中的位置;
由所述更新安装包中的资源索引文件,获取各个资源文件分别对应的资源索引数值,将所述更新安装包中所有的资源文件的资源索引替换为相应的资源索引数值,并删除所述资源索引文件,得到新版本安装包;
将所述新版本安装包与旧版本安装包进行比对,生成补丁包,所述补丁包包括所述新版本安装包与旧版本安装包之间的差异文件;
向应用客户端发送所述补丁包,以使得所述应用客户端根据所述补丁包更新所述应用客户端的应用;所述根据所述补丁包更新所述应用客户端的应用,包括:将所述补丁包与所述应用客户端的所述应用的原有安装包进行合并,生成合并安装包;根据所述合并安装包中的资源索引数值,获取所述合并安装包中与所述资源索引数值对应的资源文件;加载所述资源文件,更新所述应用。
2.根据权利要求1所述的方法,其特征在于,所述向应用客户端发送所述补丁包,包括:
接收应用客户端发送的热更新请求;
根据所述热更新请求,向所述应用客户端发送所述补丁包。
3.根据权利要求2所述的方法,其特征在于,所述热更新请求携带所述应用的版本号;
所述根据所述热更新请求,向所述应用客户端发送所述补丁包,包括:
根据所述版本号查找对应的补丁包;
向所述应用客户端发送与所述版本号对应的补丁包。
4.根据权利要求1所述的方法,其特征在于,在得到新版本安装包之前,该方法还包括:
获取所述更新安装包的包名;
在检测到所述更新安装包的包名为指定包名时,更改所述更新安装包的包名,并将更新后的包名作为所述新版本安装包的包名。
5.一种应用更新方法,其特征在于,所述方法用于应用客户端,所述方法包括:
接收应用服务端发送的补丁包,所述补丁包是应用服务端通过执行以下步骤得到的:由更新安装包中的资源索引文件,获取各个资源文件分别对应的资源索引数值,将所述更新安装包中所有的资源文件的资源索引替换为相应的资源索引数值,并删除所述资源索引文件,得到新版本安装包,并将所述新版本安装包与旧版本安装包进行比对,生成补丁包;将所述补丁包与所述应用客户端的所述应用的原有安装包进行合并,以生成合并安装包;所述资源索引数值代表对应资源文件在安装包中的序号,用于确定对应资源文件的在安装包中的位置;
根据所述合并安装包中的资源索引数值,获取所述合并安装包中与所述资源索引数值对应的资源文件;
加载所述资源文件,以更新所述应用。
6.根据权利要求5所述的方法,其特征在于,在接收到所述应用服务端发送的补丁包之后,该方法还包括:
将所述补丁包对应的补丁合成进程的优先级设置为与所述应用的主进程的优先级一致,所述补丁合成进程用于将所述补丁包与所述原有安装包进行合并以生成所述合并安装包。
7.根据权利要求5所述的方法,其特征在于,所述根据所述合并安装包中的资源索引数值,获取所述合并安装包中与所述资源索引数值对应的资源文件,包括:
将所述合并安装包中的Dex文件进行合并,并将合并后的Dex文件的标识位修改为oat格式的文件对应的标识位,以生成oat文件;
获取包含所述oat文件的优化安装包;
根据所述优化安装包中的资源索引数值,获取所述优化安装包中与所述资源索引数值对应的资源文件。
8.根据权利要求7所述的方法,其特征在于,在所述获取包含所述oat文件的优化安装包的步骤之前,该方法还包括:
对生成的所述oat文件进行验证;
若验证不通过,则将所述合并安装包中的Dex文件进行合并,将合并后的Dex文件的字节码进行转换,并将转换后的Dex文件的标识位修改为oat格式的文件对应的标识位,以重新生成oat文件;
若验证通过,则执行所述获取包含所述oat文件的优化安装包的步骤。
9.根据权利要求8所述的方法,其特征在于,所述对生成的所述oat文件进行验证,包括:
确定生成的所述oat文件的格式;
判断所述oat文件的格式是否与所述应用客户端支持的格式匹配,若匹配,则验证通过,若不匹配,则验证不通过。
10.一种应用更新装置,其特征在于,所述装置用于应用服务端,所述装置包括:
第一获取模块,被配置为获取所述应用的包含资源文件和资源索引文件的更新安装包,所述资源索引文件包含所述资源文件对应的资源索引数值;所述资源索引数值代表对应资源文件在安装包中的序号,用于确定对应资源文件的在安装包中的位置;
处理模块,被配置为由所述更新安装包中的资源索引文件,获取各个资源文件分别对应的资源索引数值,将所述更新安装包中所有的资源文件的资源索引替换为相应的资源索引数值,并删除所述资源索引文件,得到新版本安装包;
补丁包生成模块,被配置为将所述新版本安装包与旧版本安装包进行比对,生成补丁包,所述补丁包包括所述新版本安装包与旧版本安装包之间的差异文件;
发送模块,被配置为向应用客户端发送所述补丁包,以使得所述应用客户端根据所述补丁包更新所述应用客户端的应用;所述根据所述补丁包更新所述应用客户端的应用,包括:将所述补丁包与所述应用客户端的所述应用的原有安装包进行合并,生成合并安装包;根据所述合并安装包中的资源索引数值,获取所述合并安装包中与所述资源索引数值对应的资源文件;加载所述资源文件,更新所述应用。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:接收模块;
所述接收模块,被配置为接收应用客户端发送的热更新请求;
所述发送模块,被配置为根据所述热更新请求,向所述应用客户端发送所述补丁包。
12.根据权利要求11所述的装置,其特征在于,所述热更新请求携带所述应用的版本号;
所述发送模块被配置为:
根据所述版本号查找对应的补丁包;
向所述应用客户端发送与所述版本号对应的补丁包。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括:包名更改模块;
所述包名更改模块被配置为:
获取所述更新安装包的包名;
在检测到所述更新安装包的包名为指定包名时,更改所述更新安装包的包名,并将更新后的包名作为所述新版本安装包的包名。
14.一种应用更新装置,其特征在于,所述装置用于应用客户端,所述装置包括:
接收模块,被配置为接收应用服务端发送的补丁包,所述补丁包是应用服务端通过执行以下步骤得到的:由更新安装包中的资源索引文件,获取各个资源文件分别对应的资源索引数值,将所述更新安装包中所有的资源文件的资源索引替换为相应的资源索引数值,并删除所述资源索引文件,得到新版本安装包,并将所述新版本安装包与旧版本安装包进行比对,生成补丁包;所述资源索引数值代表对应资源文件在安装包中的序号,用于确定对应资源文件的在安装包中的位置;
合成模块,被配置为将所述补丁包与所述应用客户端的所述应用的原有安装包进行合并,以生成合并安装包;
资源文件获取模块,被配置为根据所述合并安装包中的资源索引数值,获取所述合并安装包中与所述资源索引数值对应的资源文件;
更新模块,被配置为加载所述资源文件,以更新所述应用。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
设置模块,被配置为将所述补丁包对应的补丁合成进程的优先级设置为与所述应用的主进程的优先级一致,所述补丁合成进程用于将所述补丁包与所述原有安装包进行合并以生成所述合并安装包。
16.根据权利要求14所述的装置,其特征在于,所述资源文件获取模块包括:
oat文件生成子模块,被配置为将所述合并安装包中的Dex文件进行合并,并将合并后的Dex文件的标识位修改为oat格式的文件对应的标识位,以生成oat文件;
第一获取子模块,被配置为获取包含所述oat文件的优化安装包;
第二获取子模块,被配置为根据所述优化安装包中的资源索引数值,获取所述优化安装包中与所述资源索引数值对应的资源文件。
17.根据权利要求16所述的装置,其特征在于,所述资源文件获取模块还包括:校验子模块;
所述校验子模块被配置为:
对生成的所述oat文件进行验证;
若验证不通过,则将所述合并安装包中的Dex文件进行合并,将合并后的Dex文件的字节码进行转换,并将转换后的Dex文件的标识位修改为oat格式的文件对应的标识位,以重新生成oat文件;
若验证通过,则所述第一获取子模块执行所述获取包含所述oat文件的优化安装包的步骤。
18.根据权利要求17所述的装置,其特征在于,所述校验子模块被配置为:
确定生成的所述oat文件的格式;
判断所述oat文件的格式是否与所述应用客户端支持的格式匹配,若匹配,则验证通过,若不匹配,则验证不通过。
19.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-9任一项所述方法的步骤。
20.一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求5-9任一项所述方法的步骤。
21.一种服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-4任一项所述方法的步骤。
CN201911072445.XA 2019-11-05 2019-11-05 应用更新方法、装置、存储介质、终端及服务器 Active CN111221559B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911072445.XA CN111221559B (zh) 2019-11-05 2019-11-05 应用更新方法、装置、存储介质、终端及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911072445.XA CN111221559B (zh) 2019-11-05 2019-11-05 应用更新方法、装置、存储介质、终端及服务器

Publications (2)

Publication Number Publication Date
CN111221559A CN111221559A (zh) 2020-06-02
CN111221559B true CN111221559B (zh) 2024-05-14

Family

ID=70827542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911072445.XA Active CN111221559B (zh) 2019-11-05 2019-11-05 应用更新方法、装置、存储介质、终端及服务器

Country Status (1)

Country Link
CN (1) CN111221559B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782263B (zh) * 2020-07-22 2024-01-23 网易(杭州)网络有限公司 游戏打包的处理方法及装置
CN112114849B (zh) * 2020-09-23 2022-03-08 腾讯科技(深圳)有限公司 一种资源更新方法和装置
CN112579126A (zh) * 2020-12-21 2021-03-30 杭州米络星科技(集团)有限公司 软件开发平台及软件开发方法
CN112612502A (zh) * 2020-12-23 2021-04-06 苏州三六零智能安全科技有限公司 补丁生成方法、装置、设备及存储介质
CN112764788B (zh) * 2021-01-19 2023-06-16 南京大学 基于程序源码切片重组的软件动态更新热补丁合成方法
CN112882733B (zh) * 2021-02-04 2023-09-08 网易(杭州)网络有限公司 应用更新方法及装置、电子设备、存储介质
CN113318452B (zh) * 2021-06-11 2022-12-20 腾讯科技(深圳)有限公司 资源更新方法、装置、计算机可读介质及电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020281A (zh) * 2012-12-27 2013-04-03 中国科学院计算机网络信息中心 一种基于空间数据数值索引的数据存储与检索方法
CN106775827A (zh) * 2016-11-25 2017-05-31 广东欧珀移动通信有限公司 一种应用程序更新方法及装置、计算机设备
CN106909427A (zh) * 2017-03-23 2017-06-30 北京奇虎科技有限公司 一种软件更新方法、装置和软件更新数据发布方法、系统
CN108089873A (zh) * 2017-12-21 2018-05-29 福建天泉教育科技有限公司 一种应用组件即时更新的方法及终端
CN108399080A (zh) * 2018-03-05 2018-08-14 深圳市华讯方舟软件信息有限公司 一种Android App热更新方法
CN108509209A (zh) * 2018-04-08 2018-09-07 平安普惠企业管理有限公司 一种资源包的生成方法、装置、计算机设备及存储介质
CN109582323A (zh) * 2018-11-23 2019-04-05 网易(杭州)网络有限公司 应用安装包的增量更新方法、装置、终端及服务器
CN109656614A (zh) * 2018-12-24 2019-04-19 中国银行股份有限公司 文件的处理方法、装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104714819B (zh) * 2013-12-16 2019-11-15 中兴通讯股份有限公司 文件系统升级包制作方法、升级方法及装置、终端

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020281A (zh) * 2012-12-27 2013-04-03 中国科学院计算机网络信息中心 一种基于空间数据数值索引的数据存储与检索方法
CN106775827A (zh) * 2016-11-25 2017-05-31 广东欧珀移动通信有限公司 一种应用程序更新方法及装置、计算机设备
CN106909427A (zh) * 2017-03-23 2017-06-30 北京奇虎科技有限公司 一种软件更新方法、装置和软件更新数据发布方法、系统
CN108089873A (zh) * 2017-12-21 2018-05-29 福建天泉教育科技有限公司 一种应用组件即时更新的方法及终端
CN108399080A (zh) * 2018-03-05 2018-08-14 深圳市华讯方舟软件信息有限公司 一种Android App热更新方法
CN108509209A (zh) * 2018-04-08 2018-09-07 平安普惠企业管理有限公司 一种资源包的生成方法、装置、计算机设备及存储介质
CN109582323A (zh) * 2018-11-23 2019-04-05 网易(杭州)网络有限公司 应用安装包的增量更新方法、装置、终端及服务器
CN109656614A (zh) * 2018-12-24 2019-04-19 中国银行股份有限公司 文件的处理方法、装置及系统

Also Published As

Publication number Publication date
CN111221559A (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
CN111221559B (zh) 应用更新方法、装置、存储介质、终端及服务器
CN109032606B (zh) 原生应用程序的编译处理方法、装置及终端
JP6189000B2 (ja) アプリケーションのインストールパッケージの処理方法、装置、プログラム及び記録媒体
US9870239B2 (en) Method and device for running application program
CN107862514B (zh) 公交卡管理方法、装置及系统、存储介质
CN107357613B (zh) 应用更新方法、装置及计算机可读存储介质
CN110781080B (zh) 程序调试方法及装置、存储介质
CN107423218B (zh) 应用测试方法、装置及终端
CN109117144B (zh) 页面处理方法、装置、终端及存储介质
CN107911482B (zh) 目标应用打开方法及装置
CN109684112B (zh) 程序文件运行方法、装置、终端及存储介质
CN109344051B (zh) 数据处理的方法、装置、电子设备及存储介质
CN108153540B (zh) 系统升级的方法、装置、终端及存储介质
CN110221813B (zh) 应用的数据连接建立方法、装置、存储介质和电子设备
CN112114814A (zh) 编译文件确定方法及装置、应用程序生成方法及装置
US20210182129A1 (en) Method and device for processing an application
CN107193622B (zh) 代码编译的处理方法、装置及终端
CN111597106A (zh) 一种埋点管理方法及装置
CN110311968B (zh) 流式加载文件的方法、装置及智能设备
CN112083981A (zh) 一种页面视图组件的创建方法和装置
CN111767063A (zh) 应用程序的资源更新方法、装置及设备
CN110990073B (zh) 一种验证应用程序的定制需求的方法及装置
CN114416218B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN110995767B (zh) 一种请求处理方法及装置
CN107992333B (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