CN107346252A - 应用更新方法和装置 - Google Patents

应用更新方法和装置 Download PDF

Info

Publication number
CN107346252A
CN107346252A CN201610297069.4A CN201610297069A CN107346252A CN 107346252 A CN107346252 A CN 107346252A CN 201610297069 A CN201610297069 A CN 201610297069A CN 107346252 A CN107346252 A CN 107346252A
Authority
CN
China
Prior art keywords
file
applications client
patch
patch file
class
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
CN201610297069.4A
Other languages
English (en)
Other versions
CN107346252B (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 CN201610297069.4A priority Critical patent/CN107346252B/zh
Priority to PCT/CN2017/072269 priority patent/WO2017193640A1/zh
Publication of CN107346252A publication Critical patent/CN107346252A/zh
Priority to US16/046,735 priority patent/US10871953B2/en
Application granted granted Critical
Publication of CN107346252B publication Critical patent/CN107346252B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

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

Abstract

本发明公开了一种应用更新方法和装置。其中,该方法包括:应用服务器根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件生成补丁文件;应用服务器将生成的补丁文件发送至应用客户端;应用客户端在应用客户端被启动时检测是否存在补丁文件;以及应用客户端在检测到存在补丁文件时,在应用客户端运行的过程中加载补丁文件,以便对应用客户端进行更新。本发明解决了相关技术中应用更新时需要中断用户当前操作进入安装界面导致降低应用更新效率的技术问题。

Description

应用更新方法和装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种应用更新方法和装置。
背景技术
目前,随着用户需求的不断增加,应用需要依据用户需求进行版本更新。现有技术中应用版本更新通常包括以下两种方式:
完整更新方式,通过应用市场或者应用内建的自更新功能下载新版本的完整安装包。
增量更新方式,应用市场通过收集客户端需要更新的应用的安装包信息,在应用市场的服务器端进行差分对比,向客户端提供增量更新包下载,并在客户端上将增量更新包与本地旧版本安装包融合成新版本安装包进行安装。
上述两种应用更新方式均需要一个新版本的安装包覆盖安装旧版本安装包以达到更新版本更新的目的。但是,上述两种应用更新方式存在以下缺点:
1、完整更新方式需要重新下载完整的安装包,对于体积较大的安装包需要耗费较长的下载时间和流量。而且,应用更新时需要中断用户当前操作,降低了应用更新效率,严重影响了用户的使用体验。
2、增量更新方式虽然通过差分对比可以减少需要下载的更新包的体积,但是,增量更新方式需要在客户端将增量更新包与本地旧版本安装包进行融合,会占用较多的客户端资源,其占用资源的多少由本地旧版本安装包大小、增量更新包大小和客户端性能决定。而且,增量更新方式也需要中断用户当前操作,进入安装界面进行应用的安装,严重降低了应用更新效率。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种应用更新方法和装置,以至少解决相关技术中应用更新时需要中断用户当前操作进入安装界面导致降低应用更新效率的技术问题。
根据本发明实施例的一个方面,提供了一种应用更新方法,包括:应用服务器根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件生成补丁文件;所述应用服务器将生成的所述补丁文件发送至应用客户端;所述应用客户端在被启动时检测是否存在所述应用的补丁文件;以及所述应用客户端在检测到存在所述补丁文件时,在所述应用客户端运行的过程中加载所述补丁文件,以便对所述应用客户端进行更新。
根据本发明实施例的一个方面,还提供了一种应用更新方法,包括:在应用客户端被启动时检测是否存在应用的补丁文件,其中,补丁文件为根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件而生成的文件;以及在检测到存在补丁文件时,在应用客户端运行的过程中加载补丁文件,以便对应用客户端进行更新。
根据本发明实施例的另一方面,还提供了一种应用更新装置,包括:生成单元,用于应用服务器根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件生成补丁文件;发送单元,用于应用服务器将生成的补丁文件发送至应用客户端;检测单元,用于应用客户端在被启动时检测是否存在补丁文件;以及第一加载单元,用于应用客户端在检测到存在补丁文件时,在应用客户端运行的过程中加载补丁文件,以便对应用客户端进行更新。
根据本发明实施例的另一方面,还提供了一种应用更新装置,包括:检测单元,用于在应用客户端被启动时检测是否存在应用的补丁文件,其中,补丁文件为根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件而生成的文件;以及第一加载单元,用于在检测到存在补丁文件时,在应用客户端运行的过程中加载补丁文件,以便对应用客户端进行更新。
在本发明实施例中,通过在应用客户端被启动时检测是否存在根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件而生成的补丁文件,并在检测到存在上述补丁文件时,通过在应用客户端运行的过程中加载补丁文件实现对应用客户端进行更新,达到了无需中断用户当前操作亦可以实现应用客户端更新的目的,从而实现了提高应用客户端更新效率的技术效果,进而解决了相关技术中应用更新时需要中断用户当前操作进入安装界面导致降低应用更新效率的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的应用更新方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的应用更新方法的流程图;
图3是根据本发明实施例的补丁文件的生成过程的示意图;
图4是根据本发明实施例的补丁文件的加载过程的示意图;
图5是根据本发明实施例的对补丁文件进行安全校验的示意图;
图6是根据本发明实施例的一种优选的应用更新方法的流程图;
图7是根据本发明实施例的另一种可选的应用更新方法的流程图;
图8是根据本发明实施例的一种可选的应用更新装置的示意图;
图9是根据本发明实施例的另一种可选的应用更新装置的示意图;
图10是根据本发明实施例的另一种可选的应用更新装置的示意图;
图11是根据本发明实施例的另一种可选的应用更新装置的示意图;
图12是根据本发明实施例的另一种可选的应用更新装置的示意图;
图13是根据本发明实施例的另一种可选的应用更新装置的示意图;
图14是根据本发明实施例的另一种可选的应用更新装置的示意图;
图15是根据本发明实施例的一种可选的应用更新装置的示意图;
图16是根据本发明实施例的另一种可选的应用更新装置的示意图;
图17是根据本发明实施例的另一种可选的应用更新装置的示意图;
图18是根据本发明实施例的另一种可选的应用更新装置的示意图;
图19是根据本发明实施例的另一种可选的应用更新装置的示意图;
图20是根据本发明实施例的另一种可选的应用更新装置的示意图;以及
图21是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种应用更新方法的方法实施例。
可选地,在本实施例中,上述应用更新方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的应用更新方法可以由服务器102和终端104共同执行。
图2是根据本发明实施例的一种可选的应用更新方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S102,应用服务器根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件生成补丁文件;
步骤S104,应用服务器将生成的补丁文件发送至应用客户端;
步骤S106,应用客户端在被启动时检测是否存在补丁文件;
步骤S108,应用客户端在检测到存在补丁文件时,在应用客户端运行的过程中加载补丁文件,以便对应用客户端进行更新。
通过上述步骤S102至步骤S108,通过应用服务器根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件生成补丁文件并发送至应用客户端,应用客户端在应用客户端被启动时检测是否存在补丁文件,并在检测到存在上述补丁文件时,通过在应用客户端运行的过程中加载补丁文件实现对应用客户端进行更新,达到了无需中断用户当前操作亦可以实现应用客户端更新的目的,进而解决了相关技术中应用更新时需要中断用户当前操作进入安装界面导致降低应用更新效率的技术问题,实现了提高应用更新效率的技术效果。
需要说明的是,由应用服务器和应用客户端可以组成应用更新系统,在该系统中应用服务器与应用客户端之间通信连接,包括有线连接和无线连接。应用服务器可以对应用提供数据支持和维护,应用客户端可以安装在任意形式的终端设备上,终端设备可以是手机终端、也可以是电脑终端等。本发明实施例对应用客户端的类型不做具体限定,比如,即时通信类应用等。
在步骤S102提供的技术方案中,当应用客户端存在更新版本文件时,应用服务器可以根据应用客户端的更新版本文件与当前版本文件生成补丁文件,可选地,具体生成过程可以包括以下步骤:
步骤S1022,应用服务器获取应用客户端的更新版本文件和当前版本文件;
步骤S1024,比对应用客户端的更新版本文件和当前版本文件,获取应用客户端的更新版本文件和当前版本文件之间存在差异的类文件;
步骤S1026,将类文件打包成补丁文件。
需要说明的是,应用客户端的当前版本文件可以为该应用客户端启动并正在运行的版本文件,更新版本文件可以为该应用客户端运行的当前版本文件的版本升级文件。比如,应用客户端启动并运行的当前版本文件为V1.0,则该应用客户端的更新版本文件可以为V2.0。还需要说明的是,更新版本文件可以为对当前版本文件中的一个或者多个类文件进行更新后得到的版本文件,则相应地更新版本文件与当前版本文件之间可以存在一个或者多个差异的类文件,本发明实施例可以将这些差异的类文件打包成补丁文件,利用该补丁文件可以对应用客户端进行更新。
在实际应用场景中,根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件生成文件补丁文件的具体过程可以如图3所示,需要说明的是,图3所示中的Project v1.0为应用客户端的当前版本文件,其内包括有A.class、B.class、C.class、D.class等类文件。Project v2.0为应用客户端的更新版本文件,其内也包括有A.class、B.class、C.class、D.class等类文件,假设更新版本文件Project v2.0发生过修改的类文件为B.class、D.class,如图3所示虚线框所示。通过比对应用客户端的更新版本文件Project v2.0与当前版本文件Project v1.0之间存在差异的类文件,得到存在差异的类文件Path内包括有B.class、D.class,则可以将这些类文件单独生成dex文件,并将其打包成补丁文件patch.jar。
在步骤S104提供的技术方案中,应用服务器在生成补丁文件之后可以将生成的补丁文件发送至应用客户端,以供应用客户端在启动过程中利用补丁文件对应用客户端进行更新。可选地,应用服务器还可以对生成的补丁文件进行本地缓存,以便于节省应用客户端的存储空间,当应用客户端需要利用补丁文件进行更新时可以从应用服务器缓存中请求补丁文件。还需要说明的是,应用服务器可以利用应用服务器与应用客户端之间的通信连接将生成的补丁文件发送至应用客户端,其中,应用服务器与应用客户端之间的通信连接可以为有线连接,也可以为无线连接。应用服务器利用通信连接向应用客户端发送补丁文件可以采用实时发送方式,也可以采用定时发送方式,具体地,实时发送方式可以为当应用服务器生成补丁文件后立即将生成的补丁文件发送至客户端;定时发送方式可以为当应用服务器生成补丁文件后可以按照预定的时间阈值将生成的补丁文件发送至客户端。需要说明的是,定时发送方式中的预定时间阈值很小,以保证不会对应用客户端更新造成延迟。为了保证应用客户端更新的实时性,本发明实施例中应用服务器优选地采用实时发送方式将生成的补丁文件发送至应用客户端。
在步骤S106提供的技术方案中,应用客户端在启动并运行当前版本文件的过程中,可以实时检测是否存在补丁文件,其中,补丁文件可以为根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件而生成的文件,以便于在检测到存在补丁文件时利用该补丁文件对应用客户端进行更新。需要说明的是,应用客户端检测到的补丁文件可以是一个,也可以是多个,应用客户端可以利用这些补丁文件可以对应用客户端进行更新。还需要说明的是,应用客户端在被启动时可以检测应用客户端本地是否存在补丁文件,应用客户端本地可以是应用客户端内存空间或者缓存空间。
在步骤S108提供的技术方案中,如果在应用客户端被启动时应用客户端检测到存在一个或者多个补丁文件时,应用客户端可以在应用客户端运行过程中加载这些补丁文件,以实现对应用客户端进行更新的目的。需要说明的是,应用客户端在运行当前版本文件的过程中,通过加载用于更新应用客户端的补丁文件,可以实现在运行当前版本过程中即可以完成对该应用客户端的更新,从而达到了在应用客户端运行过程中无需中断用户当前操作亦可以实现应用客户端进行更新的目的,进而解决了相关技术中应用更新时需要中断用户当前操作进入安装界面导致降低应用更新效率的技术问题,实现了提高应用更新效率的技术效果。
作为一种可选的实施例,步骤S108应用客户端在应用客户端运行的过程中加载补丁文件可以包括:步骤S1081,应用客户端将补丁文件排列在当前版本文件中的相关文件的前面,以使得在补丁文件的第一类文件和相关文件的第二类文件具有相同名称时第一类文件被调用,而第二类文件不被调用。
需要说明的是,应用客户端的当前版本文件中的相关文件可以包括但并不限于应用客户端运行过程所需的类文件,相关文件的个数可以是一个,也可以是多个。该可选实施例中补丁文件的第一类文件与相关文件的第二类文件可以具有相同名称,如图4所示,补丁文件patch.dex的第一类文件名称为Foo.class,相关文件class.dex的第二类文件名称也为Foo.class,即补丁文件patch.dex的第一类文件与相关文件class.dex的第二类文件具有相同名称,则此时应用客户端可以将补丁文件patch.dex排列在当前版本文件中的相关文件class.dex的前面,如图4所示图左为前面。当补丁文件的第一类文件和相关文件的第二类文件具有相同名称时,应用客户端通过将补丁文件排列在相关文件的前面,可以使得应用客户端运行过程中加载补丁文件时补丁文件的第一类文件被调用,而相关文件的第二类文件不被调用。相关文件的第二类文件可以理解为应用客户端当前版本文件中的类文件,补丁文件的第一类文件可以理解为应用客户端的更新版本文件中相对于当前版本文件发生过修改的类文件,两者具有相同名称,应用客户端通过调用补丁文件的第一类文件,而不调用相关文件的第二类文件,可以达到在应用客户端以当前版本文件运行过程进行更新的目的,进而达到了提高应用更新效率的效果。
在实际应用场景中,在应用客户端被启动时,应用客户端如果检测到存在有效的补丁文件,则可以通过DexClassLoader的方式加载检测到的补丁文件。一个DexClassLoader可以包含多个dex文件,每个dex文件是一个Element,多个dex文件排列成一个有序的数组dexElements,当找类的时候,会按顺序遍历dex文件。如果在不同的dex中有相同的类存在,那么会优先选择排在前面的dex文件的类。因此只需要把需要更新的类打包到一个dex(例如图4所示的patch.dex)中去,然后把这个dex插入到Elements的最前面,则可实现类的动态更新升级。
作为一种可选的实施例,在步骤S108之后,也即应用客户端在应用客户端运行的过程中加载补丁文件之后,该可选实施例还可以包括:步骤S1101,应用客户端在接收到调用具有相同名称的类文件时,检测到补丁文件排列在相关文件的前面、且补丁文件的第一类文件和相关文件的第二类文件具有相同名称,调用第一类文件,而不调用第二类文件。
需要说明的是,应用客户端在应用客户端运行的过程中加载补丁文件之后,该应用客户端可以实时检测是否接收到调用具有相同名称的类文件的指令,在接收到调用具有相同名称的类文件的指令时,该应用客户端还可以检测具有相同名称的类文件的位置关系,当检测到补丁文件排列在相关文件的前面、且补丁文件的第一类文件和相关文件的第二类文件具有相同名称时,如图4所示的情况,该应用客户端可以调用第一类文件,而不调用第二类文件。
该可选实施例应用客户端通过在检测到补丁文件排列在相关文件的前面、且补丁文件的第一类文件和相关文件的第二类文件具有相同名称时,调用第一类文件,而不调用第二类文件。相关文件的第二类文件可以理解为应用客户端当前版本文件中的类文件,补丁文件的第一类文件可以理解为应用客户端的更新版本文件中相对于当前版本文件发生过修改的类文件,两者具有相同名称,该应用客户端通过调用补丁文件的第一类文件,而不调用相关文件的第二类文件,可以达到在应用客户端以当前版本文件运行过程进行更新的目的,进而解决了相关技术中应用更新时需要中断用户当前操作进入安装界面导致降低应用更新效率的技术问题,达到了提高应用更新效率的效果。
作为一种可选的实施例,应用客户端在未检测到补丁文件时,或者,应用客户端在应用客户端运行的过程中加载补丁文件之后,该可选实施例还可以包括以下步骤:
步骤S1102,应用客户端向应用服务器请求是否存在应用客户端最新的补丁文件;
步骤S1104,若存在最新的补丁文件,应用客户端则从应用服务器获取最新的补丁文件;
步骤S1106,应用客户端在被再次启动之后加载最新的补丁文件,以便对应用客户端进行更新。
需要说明的是,应用客户端在被启动时检测是否存在补丁文件可以为检测应用客户端的本地是否存在补丁文件,若本地不存在补丁文件,则该可选实施例可以向应用服务器请求该应用客户端的最新的补丁文件。或者,当应用客户端在被启动时检测到本地存在补丁文件,在应用客户端运行过程中加载检测到的补丁文件后,该应用客户端还可以向应用服务器请求该应用客户端的最新的版本文件,此处需要说明的是,应用客户端运行过程中加载的该应用客户端本地的补丁文件可能不是最新版本的,也即在加载补丁文件过程中应用服务器可能又向应用客户端发布了该应用客户端的更新版本文件,则该应用客户端也可以向应用服务器请求该最新的补丁文件,以达到对应用客户端进行更新的目的。当应用服务器中存在最新的补丁文件时,该应用客户端可以从应用服务器中获取该最新的补丁文件,并在该应用客户端被再次启动之后,在运行过程中应用客户端可以加载该最新的补丁文件,以便对该应用客户端进行更新。
该可选实施例应用客户端通过从应用服务器中请求最新的补丁文件,并在应用客户端运行过程中加载该最新的补丁文件,能够保证使得应用客户端在运行过程中更新至最新版本,进而达到提高应用更新效率的效果。
作为一种可选的实施例,应用客户端在检测到存在补丁文件之后,且在应用客户端运行的过程中加载补丁文件之前,该可选实施例还可以包括:步骤S1071,应用客户端对补丁文件进行安全校验;步骤S108在应用客户端运行的过程中加载补丁文件可以包括:步骤S1082,在安全校验通过时,应用客户端在应用客户端运行的过程中加载补丁文件。
需要说明的是,应用客户端在检测到存在补丁文件之后,该应用客户端可以对该检测到的补丁文件进行安全校验,以保证应用客户端运行过程中加载的补丁文件为安全可靠的文件,进而能够提高应用客户端的安全性和可靠性。需要说明的是,该应用客户端对补丁文件进行安全校验的具体内容不做具体限定,其可以是包括但并不限于校验补丁文件是否包含疑似病毒文件等,此处不再一一举例说明。应用客户端在检测到存在补丁文件,且对补丁文件进行安全校验通过时,该应用客户端可以在应用客户端运行过程中加载该补丁文件,以便于实现对应用客户端进行更新的目的。
在实际应用场景中,由于补丁文件是以jar文件的形式下载并存储在客户端本地或者服务器中,存在可能被篡改从而达到破坏补丁文件的目的。因此,当应用客户端在检测到存在补丁文件,并在下载完成以及每次加载时,可以通过RSA签名+SHA1校验的机制,来确保缓存的补丁文件中的数据不被篡改。图5是根据本发明实施例的对补丁文件进行安全校验的示意图,如图5所示,应用服务器发布补丁文件并申请对补丁文件进行安全校验,具体地,可以首先对补丁文件patch.jar中的所有文件class.dex、version.txt等做SHA1计算,生成verify.txt文件;然后使用私钥对verify.txt签名,生成verify.signature文件。应用客户端可以从应用服务器下载补丁文件patch.jar,并将其存储在客户端本地。在加载补丁文件patch.jar之前可以使用公钥校验verify.txt文件,并对补丁文件patch.jar中的所有文件做SHA1校验,在校验通过的情况下,应用客户端加载该补丁文件patch.jar以进行更新。需要说明的是,SHA1算法为现有技术中的成熟算法,本发明实施例对其不做具体限定,此处也不再赘述。
作为一种可选的实施例,应用客户端在检测到存在补丁文件之后,且在应用客户端运行的过程中加载补丁文件之前,该可选实施例还可以包括:步骤S1072,应用客户端判断补丁文件与当前版本文件是否匹配;步骤S108在应用客户端运行的过程中加载补丁文件包括:步骤S1083,在补丁文件与当前版本文件匹配时,应用客户端加载补丁文件。
需要说明的是,应用客户端在检测到存在补丁文件之后,该应用客户端可以判断检测到的补丁文件与当前版本文件是否匹配,需要说明的是,该应用客户端对检测补丁文件与当前版本文件是否匹配的内容不做具体限定,其可以为检测补丁文件是否为该应用当前版本文件的更新文件等,此处不再一一举例说明。该应用客户端通过判断补丁文件与当前版本文件是否匹配,能够保证应用客户端可以实现准确更新,避免应用客户端更新到错误版本。当补丁文件与当前版本文件匹配时,该应用客户端可以加载该补丁文件,以便于对应用客户端进行更新。该应用客户端通过在检测到存在补丁文件之后,判断该补丁文件是否与当前版本文件匹配,能够提高应用客户端更新的准确度,进而提高更新后的应用客户端的性能。
本发明还提供了一种优选实施例,图6是根据本发明实施例的一种优选的应用更新方法的流程图,如图6所示,该优选实施例可以包括以下步骤:
步骤S601,应用客户端被启动。
步骤S602,检测应用客户端本地是否存在补丁文件。其中,若存在,则执行步骤S603;若不存在,则执行步骤S607。
步骤S603,判断本地存在的补丁文件与该应用客户端当前版本文件是否匹配。其中,若匹配,则执行步骤S604;若不匹配,则执行步骤S607。
步骤S604,对本地补丁文件进行安全校验。
步骤S605,判断安全校验是否通过。其中,若通过,则执行步骤S606;若不通过,则执行步骤S607。
步骤S606,加载本地的补丁文件。
步骤S607,完成应用客户端的初始化。
步骤S608,拉取通信协议从应用服务器获取远程的补丁文件。
步骤S609,判断远程的补丁文件是否与该应用客户端当前版本文件是否匹配。其中,若匹配,则执行步骤S610;若不匹配,则结束。
步骤S610,下载远程的补丁文件。
步骤S611,判断是否需要强制重启该应用客户端。其中,若需要强制启动,则执行步骤S612;若不需要强制重启,则执行步骤S615。
步骤S612,对远程的补丁文件进行安全校验。
步骤S613,判断安全校验是否通过。其中,若通过,则执行步骤S614;若不通过,则结束。
步骤S614,重启应用客户端,跳转执行步骤S601。
步骤S615,等待下次重启应用客户端。
上述步骤可以概括为:应用客户端应用每次启动时,会检测本地是否存在有效的补丁文件(patch.jar),如果没有,则按正常的流程完成初始化,此时应用客户端的版本为初始版本。在完成启动后,通过与应用服务器的通信协议获取应用客户端的更新信息,如果存在新版本信息,则下载相应的补丁文件,并可通过后台设置是否需要打断用户操作强制重启升级,还是等待下次重启的机会静默升级。当应用客户端被再次启动时(此时应用客户端当前版本号依旧为旧版本号),会检测到本地存在新的补丁文件,在对补丁文件进行RSA+SHA1安全性校验后,加载该补丁文件,版本号升级到新版本号,完成应用客户端的版本升级。
本发明实施例中的应用客户端可以为能够在Android系统下运行的应用,也可以为在IOS系统下运行的应用。而且,本发明实施例不仅适用于Java类文件,还可以适用于xml资源文件、库文件等的升级。以Android系统为例,本发明实施例基于Android MultiDex分包方案,一般情况下Android应用客户端都包含一个有Java类编译而成的dex文件,MultiDex即将一个dex文件拆分成两个或者多个(例如classes.dex、classes1.dex...),在Android应用客户端启动的时候,会进行MultiDex的检查,并通过DexClassLoader依次加载各个dex文件。
在本发明实施例中,利用Android MultiDex分包原理,将需要动态更新的Java类编译到一个单独的dex中并生成更新包,在Android应用客户端启动的阶段,进行更新包的检测,如果存在更新包,则通过DexClassLoader加载,以达到动态更新的目的,减少了应用客户端更新时间和流量消耗,极大地极高了更新效率。
需要说明的是,由于Android虚拟机在应用客户端Apk被安装的时候,会为类加上校验标签,从而导致两个相关联的类在不同的dex文件中就会报错。为了防止类被加上校验标签,达到通过dex文件动态更新应用客户端的目的,本发明实施例可以在项目编译后的所有java class文件的构造方法中插入以下几行代码:
If(AntiVerifyConfig.DO_VERIFY_CLASSES){
AntiLazyLoad.foo();}
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,提供了一种应用更新方法的方法实施例。
可选地,在本实施例中,上述应用更新方法也可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。本发明实施例的应用更新方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的应用更新方法也可以是由安装在其上的应用客户端来执行。
图7是根据本发明实施例的另一种可选的应用更新方法的流程图,如图7所示,该方法可以包括以下步骤:
步骤S202,在应用客户端被启动时检测是否存在应用客户端的补丁文件,其中,补丁文件为根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件而生成的文件;
步骤S204,在检测到存在补丁文件时,在应用客户端运行的过程中加载补丁文件,以便对应用客户端进行更新。
通过上述步骤S202至步骤S204,通过在应用客户端被启动时检测是否存在根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件而生成的补丁文件,并在检测到存在上述补丁文件时,通过在应用客户端运行的过程中加载补丁文件实现对应用客户端进行更新,达到了无需中断用户当前操作亦可以实现应用客户端更新的目的,进而解决了相关技术中应用更新时需要中断用户当前操作进入安装界面导致降低应用更新效率的技术问题,实现了提高应用更新效率的技术效果。
在步骤S202提供的技术方案中,本发明实施例对应用客户端的类型不做具体限定,其可以是安装在客户端或者服务器中的任意类型的应用客户端,比如,即时通信类应用客户端等。本发明实施例中应用客户端在被启动时运行的版本文件为当前版本文件,在应用客户端启动并运行当前版本文件的过程中,可以实时检测是否存在该应用客户端的补丁文件,其中,补丁文件可以为根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件而生成的文件,需要说明的是,应用客户端的当前版本文件可以为该应用客户端启动并正在运行的版本文件,更新版本文件可以为该应用客户端运行的当前版本文件的版本升级文件。比如,应用客户端启动并运行的当前版本文件为V1.0,则该应用客户端的更新版本文件可以为V2.0。还需要说明的是,更新版本文件可以为对当前版本文件中的一个或者多个类文件进行更新后得到的版本文件,则相应地更新版本文件与当前版本文件之间可以存在一个或者多个差异的类文件,本发明实施例可以将这些差异的类文件生成一个或者多个补丁文件,利用这些补丁文件可以对应用客户端进行更新。需要说明的是,在应用客户端被启动时检测到的应用客户端的补丁文件可以是一个,也可以是多个。
在实际应用客户端场景中,根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件生成文件补丁文件的具体过程可以如图3所示,需要说明的是,图3所示中的Project v1.0为应用客户端的当前版本文件,其内包括有A.class、B.class、C.class、D.class等类文件。Project v2.0为应用客户端的更新版本文件,其内也包括有A.class、B.class、C.class、D.class等类文件,假设更新版本文件Project v2.0发生过修改的类文件为B.class、D.class,如图3所示虚线框所示。通过比对应用客户端的更新版本文件Project v2.0与应用客户端的当前版本文件Project v1.0之间存在差异的类文件,得到存在差异的类文件Path内包括有B.class、D.class,则可以将这些类文件单独生成dex文件,并将其打包成补丁文件patch.jar。
在步骤S204提供的技术方案中,如果在应用客户端被启动时检测到存在一个或者多个补丁文件时,本发明实施例可以在应用客户端运行过程中加载这些补丁文件,以实现对其进行更新的目的。需要说明的是,本发明实施例在运行当前版本文件的过程中,通过加载用于更新应用客户端的补丁文件,可以实现在运行当前版本过程中即可以完成对该应用客户端的更新,从而达到了在应用客户端运行过程中无需中断用户当前操作亦可以实现应用客户端进行更新的目的,进而解决了相关技术中应用更新时需要中断用户当前操作进入安装界面导致降低应用更新效率的技术问题,实现了提高应用客户端更新效率的技术效果。
作为一种可选的实施例,步骤S204在应用客户端运行的过程中加载补丁文件可以包括:步骤S2041,将补丁文件排列在当前版本文件中的相关文件的前面,以使得在补丁文件的第一类文件和相关文件的第二类文件具有相同名称时第一类文件被调用,而第二类文件不被调用。
需要说明的是,应用客户端的当前版本文件中的相关文件可以包括但并不限于应用客户端运行过程所需的类文件,相关文件的个数可以是一个,也可以是多个。该可选实施例中补丁文件的第一类文件与相关文件的第二类文件可以具有相同名称,如图4所示,补丁文件patch.dex的第一类文件名称为Foo.class,相关文件class.dex的第二类文件名称也为Foo.class,即补丁文件patch.dex的第一类文件与相关文件class.dex的第二类文件具有相同名称,则此时该可选实施例可以将补丁文件patch.dex排列在当前版本文件中的相关文件class.dex的前面,如图4所示图左为前面。当补丁文件的第一类文件和相关文件的第二类文件具有相同名称时,该可选实施例通过将补丁文件排列在相关文件的前面,可以使得应用客户端运行过程中加载补丁文件时补丁文件的第一类文件被调用,而相关文件的第二类文件不被调用。相关文件的第二类文件可以理解为应用客户端当前版本文件中的类文件,补丁文件的第一类文件可以理解为应用客户端的更新版本文件中相对于当前版本文件发生过修改的类文件,两者具有相同名称,该可选实施例通过调用补丁文件的第一类文件,而不调用相关文件的第二类文件,可以达到在应用客户端以当前版本文件运行过程对应用客户端进行更新的目的,进而达到了提高应用更新效率的效果。
在实际应用场景中,在应用客户端被启动时,如果检测到存在有效的补丁文件,则可以通过DexClassLoader的方式加载检测到的补丁文件。一个DexClassLoader可以包含多个dex文件,每个dex文件是一个Element,多个dex文件排列成一个有序的数组dexElements,当找类的时候,会按顺序遍历dex文件。如果在不同的dex中有相同的类存在,那么会优先选择排在前面的dex文件的类。因此只需要把需要更新的类打包到一个dex(例如图4所示的patch.dex)中去,然后把这个dex插入到Elements的最前面,则可实现类的动态更新升级。
作为一种可选的实施例,在步骤S204之后,也即在应用客户端运行的过程中加载补丁文件之后,该可选实施例还可以包括:步骤S2061,在应用客户端接收到调用具有相同名称的类文件时,检测到补丁文件排列在相关文件的前面、且补丁文件的第一类文件和相关文件的第二类文件具有相同名称,调用第一类文件,而不调用第二类文件。
需要说明的是,在应用客户端运行的过程中加载补丁文件之后,该应用客户端可以实时检测是否接收到调用具有相同名称的类文件的指令,在接收到调用具有相同名称的类文件的指令时,该应用客户端还可以检测具有相同名称的类文件的位置关系,当检测到补丁文件排列在相关文件的前面、且补丁文件的第一类文件和相关文件的第二类文件具有相同名称时,如图4所示的情况,该可选实施例可以调用第一类文件,而不调用第二类文件。
该可选实施例通过在检测到补丁文件排列在相关文件的前面、且补丁文件的第一类文件和相关文件的第二类文件具有相同名称时,调用第一类文件,而不调用第二类文件。相关文件的第二类文件可以理解为应用客户端当前版本文件中的类文件,补丁文件的第一类文件可以理解为应用客户端的更新版本文件中相对于当前版本文件发生过修改的类文件,两者具有相同名称,该可选实施例通过调用补丁文件的第一类文件,而不调用相关文件的第二类文件,可以达到在应用客户端以当前版本文件运行过程对应用客户端进行更新的目的,进而解决了相关技术中应用更新时需要中断用户当前操作进入安装界面导致降低应用更新效率的技术问题,达到了提高应用更新效率的效果。
作为一种可选的实施例,在未检测到补丁文件时,或者,在应用客户端运行的过程中加载补丁文件之后,该可选实施例还可以包括以下步骤:
步骤S2062,向应用服务器请求是否存在应用客户端最新的补丁文件;
步骤S2064,若存在最新的补丁文件,则从应用服务器获取最新的补丁文件;
步骤S2066,在应用客户端被再次启动之后加载最新的补丁文件,以便对应用客户端进行更新。
需要说明的是,在应用客户端被启动时检测是否存在补丁文件可以为检测应用客户端本地是否补丁文件,若本地不存在补丁文件,则该可选实施例可以向应用服务器请求该应用客户端的最新的补丁文件,其中,应用服务器可以对该应用客户端进行支持和维护。或者,当应用客户端被启动时检测到本地存在补丁文件,在应用客户端过程中加载检测到的补丁文件后,该应用客户端还可以向应用服务器请求该应用客户端的最新的版本文件,此处需要说明的是,应用客户端运行过程中加载的本地补丁文件可能不是最新版本的,也即在加载补丁文件过程中应用服务器可能又向应用客户端发布了该应用客户端的更新版本文件,则该可选实施例也可以向服务器请求该应用客户端的最新的补丁文件,以达到对应用客户端进行更新的目的。当应用服务器中存在最新的补丁文件时,该应用客户端可以从应用服务器中获取该最新的补丁文件,并在该应用客户端被再次启动之后,在该应用客户端的运行的过程中可以加载该最新的补丁文件,以便对该应用客户端进行更新。
该可选实施例通过从应用服务器中请求应用客户端的最新的补丁文件,并在应用客户端运行过程中加载该最新的补丁文件,能够保证使得应用客户端在运行过程中更新至最新版本,进而达到提高应用更新效率的效果。
作为一种可选的实施例,在检测到存在补丁文件之后,且在应用客户端运行的过程中加载补丁文件之前,该可选实施例还可以包括:步骤S2031,应用客户端对补丁文件进行安全校验;步骤S204在应用客户端运行的过程中加载补丁文件可以包括:步骤S2042,在安全校验通过时,在应用客户端运行的过程中加载补丁文件。
需要说明的是,在检测到存在补丁文件之后,该应用客户端可以对该检测到的补丁文件进行安全校验,以保证应用客户端运行过程中加载的补丁文件为安全可靠的文件,进而能够提高应用客户端的安全性和可靠性。需要说明的是,该可选实施例对应用客户端对补丁文件进行安全校验的具体内容不做具体限定,其可以是包括但并不限于校验补丁文件是否包含疑似病毒文件等,此处不再一一举例说明。在检测到存在补丁文件,且对补丁文件进行安全校验通过时,该可选实施例可以在应用客户端运行过程中加载该补丁文件,以便于实现对应用客户端进行更新的目的。
在实际应用场景中,由于补丁文件是以jar文件的形式下载并存储在应用客户端本地或者应用服务器中,存在可能被篡改从而达到破坏补丁文件的目的。因此,当客户端在检测到存在补丁文件,并在下载完成以及每次加载时,可以通过RSA签名+SHA1校验的机制,来确保缓存的补丁文件中的数据不被篡改。如图5所示,应用服务器发布补丁文件并申请对补丁文件进行安全校验,具体地,可以首先对补丁文件patch.jar中的所有文件class.dex、version.txt等做SHA1计算,生成verify.txt文件;然后使用私钥对verify.txt签名,生成verify.signature文件。应用客户端可以从应用服务器下载补丁文件patch.jar,并将其存储在本地。在加载补丁文件patch.jar之前可以使用公钥校验verify.txt文件,并对补丁文件patch.jar中的所有文件做SHA1校验,在校验通过的情况下,应用客户端加载该补丁文件patch.jar,以实现对应用客户端进行更新。需要说明的是,SHA1算法为现有技术中的成熟算法,本发明实施例对其不做具体限定,此处也不再赘述。
作为一种可选的实施例,在检测到存在补丁文件之后,且在应用客户端运行的过程中加载补丁文件之前,该可选实施例还可以包括:步骤S2032,应用客户端判断补丁文件与当前版本文件是否匹配;步骤S204在应用客户端运行的过程中加载补丁文件包括:步骤S2043,在补丁文件与当前版本文件匹配时,加载补丁文件。
需要说明的是,在检测到存在补丁文件之后,该应用客户端可以判断检测到的补丁文件与当前版本文件是否匹配,需要说明的是,该可选实施例对应用客户端检测补丁文件与当前版本文件是否匹配的内容不做具体限定,其可以为检测补丁文件是否为该应用客户端当前版本文件的更新文件等,此处不再一一举例说明。该可选实施例通过判断补丁文件与当前版本文件是否匹配,能够保证应用客户端可以实现准确更新,避免应用客户端更新到错误版本。当补丁文件与当前版本文件匹配时,该可选实施例可以加载该补丁文件,以便于对应用客户端进行更新。该可选实施例通过在检测到存在补丁文件之后,判断该补丁文件是否与当前版本文件匹配,能够提高应用客户端更新的准确度,进而提高更新后的应用客户端的性能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例3
根据本发明实施例,还提供了一种用于实施本发明实施例1中的应用更新方法的应用更新装置。图8是根据本发明实施例的一种可选的应用更新装置的示意图,如图8所示,该装置可以包括:
生成单元12,用于应用服务器根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件生成补丁文件;发送单元14,用于应用服务器将生成的补丁文件发送至应用客户端;检测单元16,用于应用客户端在被启动时检测是否存在补丁文件;以及第一加载单元18,用于应用客户端在检测到存在补丁文件时,在应用客户端运行的过程中加载补丁文件,以便对应用客户端进行更新。
需要说明的是,该实施例中的生成单元12可以用于执行本申请实施例1中的步骤S102,该实施例中的发送单元14可以用于执行本申请实施例1中的步骤S104,该实施例中的检测单元16可以用于执行本申请实施例1中的步骤S106,该实施例中的第一加载单元18可以用于执行本申请实施例1中的步骤S108。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
作为一种可选的实施例,图9是根据本发明实施例的另一种可选的应用更新装置的示意图,如图9所示,生成单元12可以包括:获取模块122,用于应用服务器获取应用客户端的更新版本文件和当前版本文件;比对模块124,用于比对应用客户端的更新版本文件和当前版本文件,获取应用客户端的更新版本文件和当前版本文件之间存在差异的类文件;以及打包模块126,用于将类文件打包成补丁文件。
需要说明的是,该实施例中的获取模块122可以用于执行本申请实施例1中的步骤S1022,该实施例中的比对模块124可以用于执行本申请实施例1中的步骤S1024,该实施例中的打包模块126可以用于执行本申请实施例1中的步骤S1026。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
作为一种可选的实施例,图10是根据本发明实施例的另一种可选的应用更新装置的示意图,如图10所示,第一加载单元18可以包括:排列模块181,用于应用客户端将补丁文件排列在当前版本文件中的相关文件的前面,以使得在补丁文件的第一类文件和相关文件的第二类文件具有相同名称时第一类文件被调用,而第二类文件不被调用。
需要说明的是,该实施例中的排列模块181可以用于执行本申请实施例1中的步骤S1081。此处需要说明的是,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,该模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
作为一种可选的实施例,图11是根据本发明实施例的另一种可选的应用更新装置的示意图,如图11所示,该可选实施例还可以包括:调用单元1101,用于应用客户端在应用客户端运行的过程中加载补丁文件之后,应用客户端在接收到调用具有相同名称的类文件时,检测到补丁文件排列在相关文件的前面、且补丁文件的第一类文件和相关文件的第二类文件具有相同名称,调用第一类文件,而不调用第二类文件。
需要说明的是,该实施例中的调用单元1101可以用于执行本申请实施例1中的步骤S1101。此处需要说明的是,该模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,该模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
作为一种可选的实施例,图12是根据本发明实施例的另一种可选的应用更新装置的示意图,如图12所示,该可选实施例还可以包括:请求单元1102,用于应用客户端在未检测到补丁文件时或者在应用客户端运行的过程中加载补丁文件之后,应用客户端向应用服务器请求是否存在应用最新的补丁文件;获取单元1104,用于若存在最新的补丁文件,应用客户端则从应用服务器获取最新的补丁文件;第二加载单元1106,用于应用客户端在应用客户端被再次启动之后加载最新的补丁文件,以便对应用客户端进行更新。
需要说明的是,该实施例中的请求单元1102可以用于执行本申请实施例1中的步骤S1102,该实施例中的获取单元1104可以用于执行本申请实施例1中的步骤S1104,该实施例中的第二加载单元1106可以用于执行本申请实施例1中的步骤S1106。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
作为一种可选的实施例,图13是根据本发明实施例的另一种可选的应用更新装置的示意图,如图13所示,该可选实施例还可以包括:校验单元171,用于应用客户端在检测到存在补丁文件之后,且在应用客户端运行的过程中加载补丁文件之前,应用客户端对补丁文件进行安全校验;第一加载单元18包括:第一加载模块182,用于在安全校验通过时,应用客户端在应用客户端运行的过程中加载补丁文件。
需要说明的是,该实施例中的校验单元171可以用于执行本申请实施例1中的步骤S1071,该实施例中的第一加载模块182可以用于执行本申请实施例1中的步骤S1082。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
作为一种可选的实施例,图14是根据本发明实施例的另一种可选的应用更新装置的示意图,如图14所示,该可选实施例还可以包括:判断单元172,用于应用客户端在检测到存在补丁文件之后,且在应用客户端运行的过程中加载补丁文件之前,应用客户端判断补丁文件与当前版本文件是否匹配;第一加载单元18包括:第二加载模块183,用于在补丁文件与当前版本文件匹配时,应用客户端加载补丁文件。
需要说明的是,该实施例中的判断单元172可以用于执行本申请实施例1中的步骤S1072,该实施例中的第二加载模块183可以用于执行本申请实施例1中的步骤S1083。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
通过上述模块,可以解决了相关技术中应用更新时需要中断用户当前操作进入安装界面导致降低应用更新效率的技术问题,进而达到提高应用更新效率的技术效果。
实施例4
根据本发明实施例,还提供了一种用于实施本发明实施例2中的应用更新方法的应用更新装置。图15是根据本发明实施例的一种可选的应用更新装置的示意图,如图15所示,该装置可以包括:
检测单元22,用于在应用被启动时检测是否存在应用的补丁文件,其中,补丁文件为根据应用的更新版本文件与当前版本文件之间存在差异的类文件而生成的文件;以及第一加载单元24,用于在检测到存在补丁文件时,在应用运行的过程中加载补丁文件,以便对应用进行更新。
需要说明的是,该实施例中的检测单元22可以用于执行本申请实施例1中的步骤S202,该实施例中的第一加载单元24可以用于执行本申请实施例1中的步骤S204。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
作为一种可选的实施例,图16是根据本发明实施例的另一种可选的应用更新装置的示意图,如图16所示,第一加载单元24可以包括:排列模块241,用于将补丁文件排列在当前版本文件中的相关文件的前面,以使得在补丁文件的第一类文件和相关文件的第二类文件具有相同名称时第一类文件被调用,而第二类文件不被调用。
需要说明的是,该实施例中的排列模块241可以用于执行本申请实施例1中的步骤S2041。此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
作为一种可选的实施例,图17是根据本发明实施例的另一种可选的应用更新装置的示意图,如图17所示,该可选实施例还可以包括:调用单元261,用于在应用运行的过程中加载补丁文件之后,在应用接收到调用具有相同名称的类文件时,检测到补丁文件排列在相关文件的前面、且补丁文件的第一类文件和相关文件的第二类文件具有相同名称,调用第一类文件,而不调用第二类文件。
需要说明的是,该实施例中的调用单元261可以用于执行本申请实施例1中的步骤S2061。此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
作为一种可选的实施例,图18是根据本发明实施例的另一种可选的应用更新装置的示意图,如图18所示,该可选实施例还可以包括:请求单元262,用于在未检测到补丁文件时或者在应用运行的过程中加载补丁文件之后,向服务器请求是否存在应用最新的补丁文件;获取单元264,用于在存在最新的补丁文件,则从服务器获取最新的补丁文件;第二加载单元266,用于在应用被再次启动之后加载最新的补丁文件,以便对应用进行更新。
需要说明的是,该实施例中的请求单元262可以用于执行本申请实施例1中的步骤S2062,该实施例中的获取单元264可以用于执行本申请实施例1中的步骤S2064,该实施例中的第二加载单元266可以用于执行本申请实施例1中的步骤S2066。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
作为一种可选的实施例,图19是根据本发明实施例的另一种可选的应用更新装置的示意图,如图19所示,该可选实施例还可以包括:校验单元231,用于在检测到存在补丁文件之后,且在应用运行的过程中加载补丁文件之前,对补丁文件进行安全校验。其中,第一加载单元24可以包括:第一加载模块242,用于在安全校验通过时,在应用运行的过程中加载补丁文件。
需要说明的是,该实施例中的校验单元231可以用于执行本申请实施例1中的步骤S2031,该实施例中的第一加载模块242可以用于执行本申请实施例1中的步骤S2042。此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
作为一种可选的实施例,图20是根据本发明实施例的另一种可选的应用更新装置的示意图,如图20所示,该可选实施例还可以包括:判断单元232,用于在检测到存在补丁文件之后,且在应用运行的过程中加载补丁文件之前,判断补丁文件与当前版本文件是否匹配。其中,第一加载单元24可以包括:第二加载模块243,用于在补丁文件与当前版本文件匹配时,加载补丁文件。
需要说明的是,该实施例中的判断单元232可以用于执行本申请实施例1中的步骤S2032,该实施例中的第二加载模块243可以用于执行本申请实施例1中的步骤S2043。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
通过上述模块,可以解决了相关技术中应用更新时需要中断用户当前操作进入安装界面导致降低应用更新效率的技术问题,进而达到提高应用更新效率的技术效果。
实施例5
根据本发明实施例,还提供了一种用于实施上述应用更新方法的服务器或终端。
图21是根据本发明实施例的一种终端的结构框图,如图21所示,该终端可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205(如上述实施例中的发送装置),如图21所示,该终端还可以包括输入输出设备207。
其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的应用更新方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用更新方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器203用于存储应用程序。
处理器201可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:应用服务器根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件生成补丁文件;应用服务器将生成的补丁文件发送至应用客户端;应用客户端在应用客户端被启动时检测是否存在补丁文件;以及应用客户端在检测到存在补丁文件时,在应用客户端运行的过程中加载补丁文件,以便对应用客户端进行更新。
处理器201还用于执行下述步骤:应用服务器获取应用的更新版本文件和当前版本文件;比对应用的更新版本文件和当前版本文件,获取应用的更新版本文件和当前版本文件之间存在差异的类文件;以及将类文件打包成补丁文件。
处理器201还用于执行下述步骤:应用客户端将补丁文件排列在当前版本文件中的相关文件的前面,以使得在补丁文件的第一类文件和相关文件的第二类文件具有相同名称时第一类文件被调用,而第二类文件不被调用。
处理器201还用于执行下述步骤:应用客户端在应用运行的过程中加载补丁文件之后,应用客户端在应用接收到调用具有相同名称的类文件时,检测到补丁文件排列在相关文件的前面、且补丁文件的第一类文件和相关文件的第二类文件具有相同名称,调用第一类文件,而不调用第二类文件。
处理器201还用于执行下述步骤:应用客户端在未检测到补丁文件时或者在应用运行的过程中加载补丁文件之后,应用客户端向应用服务器请求是否存在应用最新的补丁文件;若存在最新的补丁文件,应用客户端则从应用服务器获取最新的补丁文件;应用客户端在应用被再次启动之后加载最新的补丁文件,以便对应用进行更新。
处理器201还用于执行下述步骤:应用客户端在检测到存在补丁文件之后,且在应用运行的过程中加载补丁文件之前,应用客户端对补丁文件进行安全校验;应用客户端在应用运行的过程中加载补丁文件包括:在安全校验通过时,应用客户端在应用运行的过程中加载补丁文件。
处理器201还用于执行下述步骤:应用客户端在检测到存在补丁文件之后,且在应用运行的过程中加载补丁文件之前,应用客户端判断补丁文件与当前版本文件是否匹配;应用客户端在应用运行的过程中加载补丁文件包括:在补丁文件与当前版本文件匹配时,应用客户端加载补丁文件。
采用本发明实施例,提供了一种应用更新的方案。通过在应用客户端被启动时检测是否存在根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件而生成的补丁文件,并在检测到存在上述补丁文件时,通过在应用客户端运行的过程中加载补丁文件实现对应用客户端进行更新,达到了无需中断用户当前操作亦可以实现应用客户端更新的目的,从而实现了提高应用客户端更新效率的技术效果,进而解决了相关技术中应用更新时需要中断用户当前操作进入安装界面导致降低应用更新效率的技术问题。
可选地,本实施例中的具体示例可以参考上述实施例1至实施例4中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图21所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图21其并不对上述电子装置的结构造成限定。例如,终端还可包括比图21中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图21所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
实施例6
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行应用更新方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,应用服务器根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件生成补丁文件;
S2,应用服务器将生成的补丁文件发送至应用客户端;
S3,应用客户端在应用客户端被启动时检测是否存在补丁文件;
S4,应用客户端在检测到存在补丁文件时,在应用客户端运行的过程中加载补丁文件,以便对应用客户端进行更新。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:应用服务器获取应用的更新版本文件和当前版本文件;比对应用的更新版本文件和当前版本文件,获取应用的更新版本文件和当前版本文件之间存在差异的类文件;以及将类文件打包成补丁文件。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:应用客户端将补丁文件排列在当前版本文件中的相关文件的前面,以使得在补丁文件的第一类文件和相关文件的第二类文件具有相同名称时第一类文件被调用,而第二类文件不被调用。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:应用客户端在应用运行的过程中加载补丁文件之后,应用客户端在应用接收到调用具有相同名称的类文件时,检测到补丁文件排列在相关文件的前面、且补丁文件的第一类文件和相关文件的第二类文件具有相同名称,调用第一类文件,而不调用第二类文件。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:应用客户端在未检测到补丁文件时或者在应用运行的过程中加载补丁文件之后,应用客户端向应用服务器请求是否存在应用最新的补丁文件;若存在最新的补丁文件,应用客户端则从应用服务器获取最新的补丁文件;应用客户端在应用被再次启动之后加载最新的补丁文件,以便对应用进行更新。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:应用客户端在检测到存在补丁文件之后,且在应用运行的过程中加载补丁文件之前,应用客户端对补丁文件进行安全校验;应用客户端在应用运行的过程中加载补丁文件包括:在安全校验通过时,应用客户端在应用运行的过程中加载补丁文件。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:应用客户端在检测到存在补丁文件之后,且在应用运行的过程中加载补丁文件之前,应用客户端判断补丁文件与当前版本文件是否匹配;应用客户端在应用运行的过程中加载补丁文件包括:在补丁文件与当前版本文件匹配时,应用客户端加载补丁文件。
可选地,本实施例中的具体示例可以参考上述实施例1至实施例4中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (26)

1.一种应用更新方法,其特征在于,包括:
应用服务器根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件生成补丁文件;
所述应用服务器将生成的所述补丁文件发送至所述应用客户端;
所述应用客户端在被启动时检测是否存在所述补丁文件;以及
所述应用客户端在检测到存在所述补丁文件时,在所述应用客户端运行的过程中加载所述补丁文件,以便对所述应用客户端进行更新。
2.根据权利要求1所述的方法,其特征在于,应用服务器根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件生成补丁文件包括:
所述应用服务器获取所述应用客户端的更新版本文件和当前版本文件;
比对所述应用客户端的更新版本文件和当前版本文件,获取所述应用客户端的更新版本文件和当前版本文件之间存在差异的类文件;以及
将所述类文件打包成所述补丁文件。
3.根据权利要求1所述的方法,其特征在于,所述应用客户端在所述应用客户端运行的过程中加载所述补丁文件包括:
所述应用客户端将所述补丁文件排列在所述当前版本文件中的相关文件的前面,以使得在所述补丁文件的第一类文件和所述相关文件的第二类文件具有相同名称时所述第一类文件被调用,而所述第二类文件不被调用。
4.根据权利要求3所述的方法,其特征在于,所述应用客户端在所述应用客户端运行的过程中加载所述补丁文件之后,还包括:
所述应用客户端在接收到调用具有所述相同名称的类文件时,检测到所述补丁文件排列在所述相关文件的前面、且所述补丁文件的所述第一类文件和所述相关文件的所述第二类文件具有所述相同名称,调用所述第一类文件,而不调用所述第二类文件。
5.根据权利要求1所述的方法,其特征在于,所述应用客户端在未检测到所述补丁文件时或者在所述应用客户端运行的过程中加载所述补丁文件之后,还包括:
所述应用客户端向所述应用服务器请求是否存在所述应用最新的补丁文件;
若存在所述最新的补丁文件,所述应用客户端则从所述应用服务器获取所述最新的补丁文件;
所述应用客户端在所述应用客户端被再次启动之后加载所述最新的补丁文件,以便对所述应用客户端进行更新。
6.根据权利要求1所述的方法,其特征在于,
所述应用客户端在检测到存在所述补丁文件之后,且在所述应用客户端运行的过程中加载所述补丁文件之前,还包括:所述应用客户端对所述补丁文件进行安全校验;
所述应用客户端在所述应用客户端运行的过程中加载所述补丁文件包括:在安全校验通过时,所述应用客户端在所述应用客户端运行的过程中加载所述补丁文件。
7.根据权利要求1所述的方法,其特征在于,
所述应用客户端在检测到存在所述补丁文件之后,且在所述应用客户端运行的过程中加载所述补丁文件之前,还包括:所述应用客户端判断所述补丁文件与所述当前版本文件是否匹配;
所述应用客户端在所述应用客户端运行的过程中加载所述补丁文件包括:在所述补丁文件与所述当前版本文件匹配时,所述应用客户端加载所述补丁文件。
8.一种应用更新方法,其特征在于,包括:
在应用客户端被启动时检测是否存在所述应用客户端的补丁文件,其中,所述补丁文件为根据所述应用客户端的更新版本文件与当前版本文件之间存在差异的类文件而生成的文件;以及
在检测到存在所述补丁文件时,在所述应用客户端运行的过程中加载所述补丁文件,以便对所述应用客户端进行更新。
9.根据权利要求8所述的方法,其特征在于,在所述应用客户端运行的过程中加载所述补丁文件包括:
将所述补丁文件排列在所述当前版本文件中的相关文件的前面,以使得在所述补丁文件的第一类文件和所述相关文件的第二类文件具有相同名称时所述第一类文件被调用,而所述第二类文件不被调用。
10.根据权利要求9所述的方法,其特征在于,在所述应用客户端运行的过程中加载所述补丁文件之后,还包括:
在所述应用客户端接收到调用具有所述相同名称的类文件时,检测到所述补丁文件排列在所述相关文件的前面、且所述补丁文件的所述第一类文件和所述相关文件的所述第二类文件具有所述相同名称,调用所述第一类文件,而不调用所述第二类文件。
11.根据权利要求8所述的方法,其特征在于,在未检测到所述补丁文件时或者在所述应用客户端运行的过程中加载所述补丁文件之后,还包括:
向应用服务器请求是否存在所述应用客户端最新的补丁文件;
若存在所述最新的补丁文件,则从所述应用服务器获取所述最新的补丁文件;
在所述应用客户端被再次启动之后加载所述最新的补丁文件,以便对所述应用客户端进行更新。
12.根据权利要求8所述的方法,其特征在于,
在检测到存在所述补丁文件之后,且在所述应用客户端运行的过程中加载所述补丁文件之前,还包括:对所述补丁文件进行安全校验;
在所述应用客户端运行的过程中加载所述补丁文件包括:在安全校验通过时,在所述应用客户端运行的过程中加载所述补丁文件。
13.根据权利要求8所述的方法,其特征在于,
在检测到存在所述补丁文件之后,且在所述应用客户端运行的过程中加载所述补丁文件之前,还包括:判断所述补丁文件与所述当前版本文件是否匹配;
在所述应用客户端运行的过程中加载所述补丁文件包括:在所述补丁文件与所述当前版本文件匹配时,在所述应用客户端运行的过程中加载所述补丁文件。
14.一种应用更新装置,其特征在于,包括:
生成单元,用于应用服务器根据应用客户端的更新版本文件与当前版本文件之间存在差异的类文件生成补丁文件;
发送单元,用于所述应用服务器将生成的所述补丁文件发送至所述应用客户端;
检测单元,用于所述应用客户端在被启动时检测是否存在所述补丁文件;以及
第一加载单元,用于所述应用客户端在检测到存在所述补丁文件时,在所述应用客户端运行的过程中加载所述补丁文件,以便对所述应用客户端进行更新。
15.根据权利要求14所述的装置,其特征在于,所述生成单元包括:
获取模块,用于所述应用服务器获取所述应用客户端的更新版本文件和当前版本文件;
比对模块,用于比对所述应用客户端的更新版本文件和当前版本文件,获取所述应用客户端的更新版本文件和当前版本文件之间存在差异的类文件;以及
打包模块,用于将所述类文件打包成所述补丁文件。
16.根据权利要求14所述的装置,其特征在于,所述第一加载单元包括:
排列模块,用于所述应用客户端将所述补丁文件排列在所述当前版本文件中的相关文件的前面,以使得在所述补丁文件的第一类文件和所述相关文件的第二类文件具有相同名称时所述第一类文件被调用,而所述第二类文件不被调用。
17.根据权利要求16所述的装置,其特征在于,还包括:
调用单元,用于所述应用客户端在所述应用客户端运行的过程中加载所述补丁文件之后,所述应用客户端在接收到调用具有所述相同名称的类文件时,检测到所述补丁文件排列在所述相关文件的前面、且所述补丁文件的所述第一类文件和所述相关文件的所述第二类文件具有所述相同名称,调用所述第一类文件,而不调用所述第二类文件。
18.根据权利要求14所述的装置,其特征在于,还包括:
请求单元,用于所述应用客户端在未检测到所述补丁文件时或者在所述应用客户端运行的过程中加载所述补丁文件之后,所述应用客户端向所述应用服务器请求是否存在所述应用最新的补丁文件;
获取单元,用于若存在所述最新的补丁文件,所述应用客户端则从所述应用服务器获取所述最新的补丁文件;
第二加载单元,用于所述应用客户端在所述应用客户端被再次启动之后加载所述最新的补丁文件,以便对所述应用客户端进行更新。
19.根据权利要求14所述的装置,其特征在于,
所述装置还包括:校验单元,用于所述应用客户端在检测到存在所述补丁文件之后,且在所述应用客户端运行的过程中加载所述补丁文件之前,所述应用客户端对所述补丁文件进行安全校验;
所述第一加载单元包括:第一加载模块,用于在安全校验通过时,所述应用客户端在所述应用客户端运行的过程中加载所述补丁文件。
20.根据权利要求14所述的装置,其特征在于,
所述装置还包括:判断单元,用于所述应用客户端在检测到存在所述补丁文件之后,且在所述应用客户端运行的过程中加载所述补丁文件之前,所述应用客户端判断所述补丁文件与所述当前版本文件是否匹配;
所述第一加载单元包括:第二加载模块,用于在所述补丁文件与所述当前版本文件匹配时,所述应用客户端加载所述补丁文件。
21.一种应用更新装置,其特征在于,包括:
检测单元,用于在应用客户端被启动时检测是否存在所述应用客户端的补丁文件,其中,所述补丁文件为根据所述应用客户端的更新版本文件与当前版本文件之间存在差异的类文件而生成的文件;以及第一加载单元,用于在检测到存在所述补丁文件时,在所述应用客户端运行的过程中加载所述补丁文件,以便对所述应用客户端进行更新。
22.根据权利要求21所述的装置,其特征在于,所述第一加载单元包括:
排列模块,用于将所述补丁文件排列在所述当前版本文件中的相关文件的前面,以使得在所述补丁文件的第一类文件和所述相关文件的第二类文件具有相同名称时所述第一类文件被调用,而所述第二类文件不被调用。
23.根据权利要求22所述的装置,其特征在于,还包括:
调用单元,用于在所述应用客户端运行的过程中加载所述补丁文件之后,在所述应用客户端接收到调用具有所述相同名称的类文件时,检测到所述补丁文件排列在所述相关文件的前面、且所述补丁文件的所述第一类文件和所述相关文件的所述第二类文件具有所述相同名称,调用所述第一类文件,而不调用所述第二类文件。
24.根据权利要求21所述的装置,其特征在于,还包括:
请求单元,用于在未检测到所述补丁文件时或者在所述应用客户端运行的过程中加载所述补丁文件之后,向应用服务器请求是否存在所述应用客户端最新的补丁文件;
获取单元,用于在存在所述最新的补丁文件,则从所述应用服务器获取所述最新的补丁文件;
第二加载单元,用于在所述应用客户端被再次启动之后加载所述最新的补丁文件,以便对所述应用客户端进行更新。
25.根据权利要求21所述的装置,其特征在于,还包括:
所述装置还包括:校验单元,用于在检测到存在所述补丁文件之后,且在所述应用客户端运行的过程中加载所述补丁文件之前,对所述补丁文件进行安全校验;
所述第一加载单元包括:第一加载模块,用于在安全校验通过时,在所述应用客户端运行的过程中加载所述补丁文件。
26.根据权利要求21所述的装置,其特征在于,
所述装置还包括:判断单元,用于在检测到存在所述补丁文件之后,且在所述应用客户端运行的过程中加载所述补丁文件之前,判断所述补丁文件与所述当前版本文件是否匹配;
所述第一加载单元包括:第二加载模块,用于在所述补丁文件与所述当前版本文件匹配时,在所述应用客户端运行的过程中加载所述补丁文件。
CN201610297069.4A 2016-05-07 2016-05-07 应用更新方法和装置 Active CN107346252B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201610297069.4A CN107346252B (zh) 2016-05-07 2016-05-07 应用更新方法和装置
PCT/CN2017/072269 WO2017193640A1 (zh) 2016-05-07 2017-01-23 应用更新方法和装置
US16/046,735 US10871953B2 (en) 2016-05-07 2018-07-26 Application update method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610297069.4A CN107346252B (zh) 2016-05-07 2016-05-07 应用更新方法和装置

Publications (2)

Publication Number Publication Date
CN107346252A true CN107346252A (zh) 2017-11-14
CN107346252B CN107346252B (zh) 2021-05-25

Family

ID=60252926

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610297069.4A Active CN107346252B (zh) 2016-05-07 2016-05-07 应用更新方法和装置

Country Status (3)

Country Link
US (1) US10871953B2 (zh)
CN (1) CN107346252B (zh)
WO (1) WO2017193640A1 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108039945A (zh) * 2017-12-11 2018-05-15 北京奇虎科技有限公司 一种补丁包的签名方法、校验方法及装置
CN108874437A (zh) * 2018-04-26 2018-11-23 深圳爱加密科技有限公司 一种android应用程序的在线云更新方法
CN110069729A (zh) * 2017-11-15 2019-07-30 百度在线网络技术(北京)有限公司 一种应用的离线缓存方法和系统
CN110297666A (zh) * 2019-06-21 2019-10-01 百度在线网络技术(北京)有限公司 热修复方法、装置、系统及存储介质
CN110333892A (zh) * 2019-06-28 2019-10-15 百度在线网络技术(北京)有限公司 应用程序的补丁的生成方法、装置、设备和存储介质
CN111897555A (zh) * 2019-05-06 2020-11-06 阿里巴巴集团控股有限公司 客户端的动态更新方法、装置、系统及终端设备
CN112394969A (zh) * 2019-08-14 2021-02-23 华为技术有限公司 一种补丁发布的方法、服务器及终端设备
CN113312066A (zh) * 2020-02-27 2021-08-27 福建省天奕网络科技有限公司 动态热更新方法、存储介质
CN113672248A (zh) * 2020-05-14 2021-11-19 武汉斗鱼鱼乐网络科技有限公司 一种补丁获取方法、装置、服务端及存储介质
CN113779939A (zh) * 2021-09-14 2021-12-10 成都海光核电技术服务有限公司 一种文档热补丁的生成方法、使用方法及文档热补丁装置
CN111897555B (zh) * 2019-05-06 2024-06-07 阿里巴巴集团控股有限公司 客户端的动态更新方法、装置、系统及终端设备

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6759169B2 (ja) * 2017-09-11 2020-09-23 株式会社東芝 情報処理装置、情報処理方法、および情報処理プログラム
CN107992749B (zh) * 2017-12-11 2021-05-25 北京时之砂科技有限公司 一种检测补丁包冲突的方法及装置
CN108399080A (zh) * 2018-03-05 2018-08-14 深圳市华讯方舟软件信息有限公司 一种Android App热更新方法
WO2020014926A1 (zh) 2018-07-19 2020-01-23 华为技术有限公司 一种补丁包生成方法及设备
KR20210029621A (ko) * 2019-09-06 2021-03-16 삼성전자주식회사 전자 장치에서 어플리케이션 업데이트 시 런타임 성능 개선 방법 및 장치
CN110874250B (zh) * 2019-11-20 2023-05-02 杭州天宽科技有限公司 工具厂商与app端的转换方法、系统、装置及存储介质
CN111488167B (zh) * 2020-05-07 2022-01-28 支付宝(杭州)信息技术有限公司 一种小程序的更新方法、装置、设备和计算机可读介质
CN111767539A (zh) * 2020-05-15 2020-10-13 上海趣蕴网络科技有限公司 一种apk安全系统及安全校验方法
CN111698297B (zh) * 2020-05-27 2022-04-05 重庆安捷诺科技有限公司 一种可升级的电子桌牌控制方法
CN112613915B (zh) * 2020-12-29 2022-11-22 上海触乐信息科技有限公司 用于支持双版本广告插件切换的方法、装置及电子设备
US11403093B1 (en) * 2021-04-28 2022-08-02 Oracle International Corporation Application modification with proxy service process
CN113553090B (zh) * 2021-07-26 2023-07-25 网易(杭州)网络有限公司 客户端应用程序的更新控制方法及装置
CN113741943B (zh) * 2021-11-08 2022-03-18 湘投云储科技有限公司 一种嵌入式设备程序升级系统及方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1267259A2 (en) * 2001-06-11 2002-12-18 Hewlett-Packard Company Runtime updating of virtual machine class files
CN1645326A (zh) * 2005-02-05 2005-07-27 西安大唐电信有限公司 一种软件功能更新的方法及系统
CN102141919A (zh) * 2010-01-28 2011-08-03 北京邮电大学 模块化java应用软件在线更新系统及方法
CN102402427A (zh) * 2010-09-09 2012-04-04 阿里巴巴集团控股有限公司 一种Java应用程序的更新方法及装置
CN103428188A (zh) * 2012-05-25 2013-12-04 北京小米科技有限责任公司 一种文件更新方法、装置及相关设备
CN103701930A (zh) * 2014-01-07 2014-04-02 浙江大学 一种移动应用程序的实时更新方法及系统
CN104156247A (zh) * 2014-08-14 2014-11-19 广州金山网络科技有限公司 一种应用升级方法及装置
CN104252364A (zh) * 2013-06-25 2014-12-31 腾讯科技(深圳)有限公司 增量更新的方法、设备及系统
US20150033215A1 (en) * 2013-07-23 2015-01-29 Red Hat, Inc. System and method for dynamic class management
CN105320554A (zh) * 2015-12-11 2016-02-10 网易(杭州)网络有限公司 程序更新的方法、用于程序更新的客户端及系统
CN105373396A (zh) * 2015-08-14 2016-03-02 腾讯科技(深圳)有限公司 插件平台中的插件更新方法和装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2371134B (en) * 1999-09-24 2003-12-17 Phoenix Tech Ltd Software development system for facilitating selection of components
US7409685B2 (en) * 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US8230415B1 (en) * 2007-03-13 2012-07-24 Juniper Networks, Inc. On-demand advertising of software packages
US20110321024A1 (en) * 2010-06-28 2011-12-29 Nokia Corporation Method and apparatus for updating an executing application
SG11201401480QA (en) * 2011-12-01 2014-07-30 Tencent Tech Shenzhen Co Ltd Method and system for upgrading software
US9223564B2 (en) * 2012-01-26 2015-12-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Update systems responsive to ongoing processing at a storage system
US9210211B2 (en) * 2012-05-10 2015-12-08 Hulu, LLC Remote automated updates for an application
US9690563B2 (en) * 2012-05-17 2017-06-27 International Business Machines Corporation Updating web resources
CN103677877B (zh) * 2012-09-12 2018-01-30 腾讯科技(深圳)有限公司 一种本地广告软件开发包升级的方法及装置
CN103442026B (zh) * 2013-02-05 2017-03-08 华为技术有限公司 一种应用程序处理方法、装置和系统
US20150128121A1 (en) * 2013-11-06 2015-05-07 Improvement Interactive, LLC Dynamic application version selection
US9329856B2 (en) * 2014-03-19 2016-05-03 International Business Machines Corporation Managing a code load
CN104077162B (zh) * 2014-06-30 2017-12-26 北京奇虎科技有限公司 移动终端应用模板的更新、发布方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1267259A2 (en) * 2001-06-11 2002-12-18 Hewlett-Packard Company Runtime updating of virtual machine class files
CN1645326A (zh) * 2005-02-05 2005-07-27 西安大唐电信有限公司 一种软件功能更新的方法及系统
CN102141919A (zh) * 2010-01-28 2011-08-03 北京邮电大学 模块化java应用软件在线更新系统及方法
CN102402427A (zh) * 2010-09-09 2012-04-04 阿里巴巴集团控股有限公司 一种Java应用程序的更新方法及装置
CN103428188A (zh) * 2012-05-25 2013-12-04 北京小米科技有限责任公司 一种文件更新方法、装置及相关设备
CN104252364A (zh) * 2013-06-25 2014-12-31 腾讯科技(深圳)有限公司 增量更新的方法、设备及系统
US20150033215A1 (en) * 2013-07-23 2015-01-29 Red Hat, Inc. System and method for dynamic class management
CN103701930A (zh) * 2014-01-07 2014-04-02 浙江大学 一种移动应用程序的实时更新方法及系统
CN104156247A (zh) * 2014-08-14 2014-11-19 广州金山网络科技有限公司 一种应用升级方法及装置
CN105373396A (zh) * 2015-08-14 2016-03-02 腾讯科技(深圳)有限公司 插件平台中的插件更新方法和装置
CN105320554A (zh) * 2015-12-11 2016-02-10 网易(杭州)网络有限公司 程序更新的方法、用于程序更新的客户端及系统

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110069729A (zh) * 2017-11-15 2019-07-30 百度在线网络技术(北京)有限公司 一种应用的离线缓存方法和系统
CN108039945A (zh) * 2017-12-11 2018-05-15 北京奇虎科技有限公司 一种补丁包的签名方法、校验方法及装置
CN108874437B (zh) * 2018-04-26 2022-01-21 深圳爱加密科技有限公司 一种android应用程序的在线云更新方法
CN108874437A (zh) * 2018-04-26 2018-11-23 深圳爱加密科技有限公司 一种android应用程序的在线云更新方法
CN111897555A (zh) * 2019-05-06 2020-11-06 阿里巴巴集团控股有限公司 客户端的动态更新方法、装置、系统及终端设备
CN111897555B (zh) * 2019-05-06 2024-06-07 阿里巴巴集团控股有限公司 客户端的动态更新方法、装置、系统及终端设备
CN110297666A (zh) * 2019-06-21 2019-10-01 百度在线网络技术(北京)有限公司 热修复方法、装置、系统及存储介质
CN110333892A (zh) * 2019-06-28 2019-10-15 百度在线网络技术(北京)有限公司 应用程序的补丁的生成方法、装置、设备和存储介质
CN110333892B (zh) * 2019-06-28 2022-12-13 百度在线网络技术(北京)有限公司 应用程序的补丁的生成方法、装置、设备和存储介质
CN112394969A (zh) * 2019-08-14 2021-02-23 华为技术有限公司 一种补丁发布的方法、服务器及终端设备
CN113312066B (zh) * 2020-02-27 2022-07-26 福建省天奕网络科技有限公司 动态热更新方法、存储介质
CN113312066A (zh) * 2020-02-27 2021-08-27 福建省天奕网络科技有限公司 动态热更新方法、存储介质
CN113672248A (zh) * 2020-05-14 2021-11-19 武汉斗鱼鱼乐网络科技有限公司 一种补丁获取方法、装置、服务端及存储介质
CN113779939A (zh) * 2021-09-14 2021-12-10 成都海光核电技术服务有限公司 一种文档热补丁的生成方法、使用方法及文档热补丁装置
CN113779939B (zh) * 2021-09-14 2024-02-27 成都海光核电技术服务有限公司 一种文档热补丁的生成方法、使用方法及文档热补丁装置

Also Published As

Publication number Publication date
US10871953B2 (en) 2020-12-22
US20180373523A1 (en) 2018-12-27
CN107346252B (zh) 2021-05-25
WO2017193640A1 (zh) 2017-11-16

Similar Documents

Publication Publication Date Title
CN107346252A (zh) 应用更新方法和装置
CN103841134B (zh) 基于api发送、接收信息的方法、装置及系统
CN100416500C (zh) 用于根据初始软件和软件升级包来生成升级软件的方法和设备
CN111831563A (zh) 接口自动测试方法、装置及存储介质
CN108520059A (zh) 客户端h5页面的加载方法、系统、计算机设备和存储介质
CN104391729B (zh) 基于Root权限的程序升级方法及装置
CN106708537A (zh) 应用更新方法和装置
CN103577202B (zh) 软件升级方法与系统
CN104685471B (zh) 软件平台到设备生态系统的自动配设
US20140129686A1 (en) Mobile computing device configured to filter and detect application profiles, a method of manufacturing the same and an external source for delivering hierarchical filtered application profiles to mobile computing devices
CN109783744A (zh) 页面启动方法、装置、终端及计算机可读存储介质
CN107832065A (zh) 固件升级方法、净水器、升级系统及可读存储介质
CN107528718A (zh) 获取资源的方法、装置和系统
CN109495870A (zh) 蓝牙测试的方法和装置
CN105791246B (zh) 验证信息的验证方法、装置及系统
CN110224854A (zh) 区块链节点的部署方法、装置及存储介质
CN107391168B (zh) 动画加载方法和装置以及请求处理方法和装置
CN110120970A (zh) 基于车联网的数据处理方法、装置及网关系统
CN107528855A (zh) 一种数据校验方法及服务器
CN106790252A (zh) 登录信息共享方法与装置
CN106843880A (zh) Android安装包APK的定制方法、装置及服务器
CN108958785A (zh) 一种应用程序升级方法及装置
CN107040427A (zh) 一种网卡配置的方法及装置
CN108137124A (zh) 控制设备、计算机和通信系统
CN108132832A (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