一种基于Hook技术的AndroidApp热更新的方法及系统的制作方法

文档序号:10511977阅读:225来源:国知局
一种基于Hook技术的Android App热更新的方法及系统的制作方法
【专利摘要】本发明公开了一种基于Hook技术的Android App热更新的方法,包括:服务器端生成更新集群和推送信息;客户端App接收所述推送信息,根据当前版本在所述更新集群中下载与所述版本对应的更新包,在安装所述更新包过程中,当遇到所述更新包中的Hook标记时,根据所述Hook标记的指示将方法栈内的标记方法替换为所述更新包。在本方法中,更新包的更新是根据插入的Hook标记来实现的,能够有针对性的更新,使得更新过程持续时间较短。此外,本发明还提供一种基于Hook技术的Android App热更新的系统,效果如上所述。
【专利说明】
一种基于Hook技术的Android App热更新的方法及系统
技术领域
[0001 ]本发明涉及计算机技术领域,特别是涉及一种基于Hook技术的Android App热更新的方法及系统。
【背景技术】
[0002]Android应用已经非常普及,在使用过程中一个重要的问题就是版本的更新。大部分Android应用在内容更新和版本发布上总是要花费很大的功夫去进行产品迭代。在新版本发布过程中,难免会出现一些未发现的问题急需解决,以免影响用户的产品体验。
[0003]现有技术中,当有更新需求时,需要将新的版本完全替换旧的版本,用户在更新过程中,无法对特定的场景进行修改和更新,导致更新过程持续时间较长。
[0004]由此可见,如何提高版本更新的速度以降低更新时间是本领域技术人员亟待解决地问题。

【发明内容】

[0005]本发明的目的是提供一种基于Hook技术的AndroidApp热更新的方法及系统,用于提高版本更新的速度以降低更新时间。
[0006]为解决上述技术问题,本发明提供一种基于Hook技术的AndroidApp热更新的方法,包括:
[0007]服务器端生成更新集群和推送信息;
[0008]客户端App接收所述推送信息,根据当前版本在所述更新集群中下载与所述版本对应的更新包,在安装所述更新包过程中,当遇到所述更新包中的Hook标记时,根据所述Hook标记的指示将方法栈内的标记方法替换为所述更新包。
[0009]优选地,所述生成更新集群具体包括:
[0010]当有应用源码更新时对所述应用源码进行编译生成所述更新集群。
[0011]优选地,所述根据当前版本在所述更新集群中下载与所述版本对应的更新包之后还包括:将所述更新包解压,并将所述更新包存储至数据库中以实现所述数据库的更新。
[0012]优选地,所述根据所述Hook标记的指示将方法栈内的标记方法替换为所述更新包具体为:根据所述Hook标记的在所述数据库中查找到所述更新包,并将方法栈内的标记方法替换为所述更新包。
[0013]一种基于Hook技术的Android App热更新的系统,包括:
[0014]服务器端,用于生成更新集群和推送信息;
[0015]客户端App,用于接收所述推送信息,根据当前版本在所述更新集群中下载与所述版本对应的更新包,在安装所述更新包过程中,当遇到所述更新包中的Hook标记时,根据所述Hook标记的指示将方法栈内的标记方法替换为所述更新包。
[0016]优选地,所述服务器端具体用于当有应用源码更新时对所述应用源码进行编译生成所述更新集群。
[0017]优选地,所述客户端App还用于将所述更新包解压,并将所述更新包存储至数据库中以实现所述数据库的更新。
[0018]优选地,所述客户端App具体用于根据所述Hook标记的在所述数据库中查找到所述更新包,并将方法栈内的标记方法替换为所述更新包。
[0019]本发明所提供的基于Hook技术的AndroidApp热更新的方法及系统,利用Hook技术,在安装更新包过程中,当遇到更新包中的Hook标记时根据Hook标记的指示将方法桟内的标记方法替换为更新包,从而实现更新。在本方法中,更新包的更新是根据插入的Hook标记来实现的,能够有针对性的更新,使得更新过程持续时间较短。
【附图说明】
[0020]为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1为本发明提供的一种基于Hook技术的AndroidApp热更新的方法的流程图;
[0022]图2为本发明提供的一种基于Hook技术的Android App热更新的系统的结构图。
【具体实施方式】
[0023]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
[0024]本发明的核心是提供一种基于Hook技术的AndroidApp热更新的方法及系统。
[0025]为了使本技术领域的人员更好地理解本发明方案,下面结合附图和【具体实施方式】对本发明作进一步的详细说明。
[0026]图1为本发明提供的一种基于Hook技术的AndroidApp热更新的方法的流程图。如图1所示,基于Hook技术的Android App热更新的方法包括:
[0027]SlO:服务器端生成更新集群和推送信息。
[0028]Sll:客户端App接收推送信息,根据当前版本在更新集群中下载与版本对应的更新包,在安装更新包过程中,当遇到更新包中的Hook标记时,根据Hook标记的指示将方法桟内的标记方法替换为更新包。
[0029]在具体实施中,如果业务场景发生改变,则服务器端会根据业务场景的改变生成更新集群。需要说明地是,这里的更新集群包含了各种版本的更新包,需要用户根据自身的版本选择对应的更新包。当生成更新集群后,生成推送信息,并向各个客户端发送推送信息。这里的推送信息就是提示用户有新版本更新。
[0030]作为一种优选地实施方式,生成更新集群具体包括:当有应用源码更新时对应用源码进行编译生成更新集群。服务器端作为更新的发起者,当有应用源码需要更新时对源码进行编译以生成更新集群。可以理解地是,服务器端需要对所有的版本进行考虑,因此,更新集群中包含有多种版本对应的更新包供客户端App选择。
[0031]客户端APP接收到服务器端发送的推送信息后,如果想要更新当前的版本则根据当前版本在更新集群中下载对应的更新包,之后就根据提示开始安装更新包。在安装过程中,如果遇到有更新包的Hook标记时,则根据Hook标记的指示将方法栈内的标记方法替换为更新包。需要说明地是,服务器端在生成更新集群时,需要在更新包中插入Hook标记,换句话说,更新包中包含有与现有技术不同的程序,如果是相同的程序,则不需要替换,只有在于现有技术不同的程序时,才需要用更新包替换。因此,通过更新包中的Hook标记能够将下一步的安装对象指出,从而将对应的更新包替换方法栈内的标记方法。
[0032]作为一种优选地实施方式,根据当前版本在更新集群中下载与版本对应的更新包之后还包括:将更新包解压,并将更新包存储至数据库中以实现数据库的更新。
[0033]作为一种优选地实施方式,根据Hook标记的指示将方法栈内的标记方法替换为更新包具体为:根据Hook标记的在数据库中查找到更新包,并将方法栈内的标记方法替换为更新包。
[0034]当客户端App下载到需要的更新包后,首先将更新包解压,然后将更新包存储至数据库中以实现数据库的更新。在本步骤中,相当于先把各个更新包存储起来,当用到的时,再调用即可。而何时调用是根据程序运行至有Hook标记时,在数据库中查找到对应的更新包。
[0035]本实施例提供的基于Hook技术的AndroidApp热更新的方法,利用Hook技术,在安装更新包过程中,当遇到更新包中的Hook标记时根据Hook标记的指示将方法桟内的标记方法替换为更新包,从而实现更新。在本方法中,更新包的更新是根据插入的Hook标记来实现的,能够有针对性的更新,使得更新过程持续时间较短。
[0036]图2为本发明提供的一种基于Hook技术的AndroidApp热更新的系统的结构图。如图2所示,基于Hook技术的Android App热更新的系统,包括:
[0037]服务器端10,用于生成更新集群和推送信息;
[0038]客户端Appll,用于接收推送信息,根据当前版本在更新集群中下载与版本对应的更新包,在安装更新包过程中,当遇到更新包中的Hook标记时,根据Hook标记的指示将方法栈内的标记方法替换为更新包。
[0039]在具体实施中,如果业务场景发生改变,则服务器端10会根据业务场景的改变生成更新集群。需要说明地是,这里的更新集群包含了各种版本的更新包,需要用户根据自身的版本选择对应的更新包。当生成更新集群后,生成推送信息,并向各个客户端发送推送信息。这里的推送信息就是提示用户有新版本更新。
[0040]客户端Appll接收到服务器端10发送的推送信息后,如果想要更新当前的版本则根据当前版本在更新集群中下载对应的更新包,之后就根据提示开始安装更新包。在安装过程中,如果遇到有更新包的Hook标记时,则根据Hook标记的指示将方法栈内的标记方法替换为更新包。需要说明地是,服务器端10在生成更新集群时,需要在更新包中插入Hook标记,换句话说,更新包中包含有与现有技术不同的程序,如果是相同的程序,则不需要替换,只有在于现有技术不同的程序时,才需要用更新包替换。因此,通过更新包中的Hook标记能够将下一步的安装对象指出,从而将对应的更新包替换方法栈内的标记方法。
[0041 ]本实施例提供的基于Hook技术的Android App热更新的系统,利用Hook技术,在安装更新包过程中,当遇到更新包中的Hook标记时根据Hook标记的指示将方法桟内的标记方法替换为更新包,从而实现更新。在本方法中,更新包的更新是根据插入的Hook标记来实现的,能够有针对性的更新,使得更新过程持续时间较短。
[0042]作为一种优选地实施方式,服务器端具体用于当有应用源码更新时对应用源码进行编译生成更新集群。
[0043]作为一种优选地实施方式,客户端App还用于将更新包解压,并将更新包存储至数据库中以实现数据库的更新。
[0044]作为一种优选地实施方式,客户端App具体用于根据Hook标记的在数据库中查找到更新包,并将方法栈内的标记方法替换为更新包。
[0045]由于系统部分的实施例与方法部分的实施例是对应的,因此,系统部分的实施例参见上文的描述,这里暂不赘述。
[0046]以上对本发明所提供的基于Hook技术的AndroidApp热更新的方法及系统进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
[0047]专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0048]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(R0M)、电可编程R0M、电可擦除可编程R0M、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
【主权项】
1.一种基于Hook技术的Android App热更新的方法,其特征在于,包括: 服务器端生成更新集群和推送信息; 客户端App接收所述推送信息,根据当前版本在所述更新集群中下载与所述版本对应的更新包,在安装所述更新包过程中,当遇到所述更新包中的Hook标记时,根据所述Hook标记的指示将方法栈内的标记方法替换为所述更新包。2.根据权利要求1所述的基于Hook技术的Android App热更新的方法,其特征在于,所述生成更新集群具体包括: 当有应用源码更新时对所述应用源码进行编译生成所述更新集群。3.根据权利要求1所述的基于Hook技术的Android App热更新的方法,其特征在于,所述根据当前版本在所述更新集群中下载与所述版本对应的更新包之后还包括:将所述更新包解压,并将所述更新包存储至数据库中以实现所述数据库的更新。4.根据权利要求1所述的基于Hook技术的Android App热更新的方法,其特征在于,所述根据所述Hook标记的指示将方法栈内的标记方法替换为所述更新包具体为:根据所述Hook标记的在所述数据库中查找到所述更新包,并将方法栈内的标记方法替换为所述更新包。5.一种基于Hook技术的Android App热更新的系统,其特征在于,包括: 服务器端,用于生成更新集群和推送信息; 客户端App,用于接收所述推送信息,根据当前版本在所述更新集群中下载与所述版本对应的更新包,在安装所述更新包过程中,当遇到所述更新包中的Hook标记时,根据所述Hook标记的指示将方法栈内的标记方法替换为所述更新包。6.根据权利要求5所述的基于Hook技术的AndroidApp热更新的系统,其特征在于,所述服务器端具体用于当有应用源码更新时对所述应用源码进行编译生成所述更新集群。7.根据权利要求5所述的基于Hook技术的AndroidApp热更新的系统,其特征在于,所述客户端App还用于将所述更新包解压,并将所述更新包存储至数据库中以实现所述数据库的更新。8.根据权利要求5所述的基于Hook技术的AndroidApp热更新的系统,其特征在于,所述客户端App具体用于根据所述Hook标记的在所述数据库中查找到所述更新包,并将方法栈内的标记方法替换为所述更新包。
【文档编号】G06F9/445GK105867988SQ201610473694
【公开日】2016年8月17日
【申请日】2016年6月24日
【发明人】林进森, 陈志强
【申请人】深圳云之家网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1