应用的动态更新方法、系统、电子设备和存储介质技术方案

技术编号:20483925 阅读:24 留言:0更新日期:2019-03-02 18:35
本申请提供一种应用的动态更新方法、系统、电子设备和存储介质,应用于终端应用领域,用于解决应用更新过程繁琐、更新速度慢而影响用户体验的问题。该动态更新方法包括:获取应用的标识信息,根据标识信息获得匹配的更新包;校验更新包,并获得更新包的脚本执行文件;解析脚本执行文件,获得更新包的执行对象,和执行对象的新属性和新方法;将执行对象的新属性和新方法替换其原属性和原方法,并将指向执行对象的原方法的指针指向其新方法;当执行对象被请求时,通过指针调用其新方法。本申请可以实现应用在使用过程中动态更新,提升用户体验。

【技术实现步骤摘要】
应用的动态更新方法、系统、电子设备和存储介质
本申请涉及终端应用
,具体地说,涉及一种应用的动态更新方法、系统、电子设备和存储介质。
技术介绍
应用(Application,简称APP)上线后,在使用过程中常会发生某些功能单元需要修复、升级的情况。此时需要退出应用,等待后台对需要更新的功能单元完成修复、升级等更新操作后,才能再次重启应用。退出等待再重启造成应用每次更新过程繁琐、速度慢、历时长,用户体验差。需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
有鉴于此,本申请提供一种应用的动态更新方法、系统、电子设备和存储介质,可以在不退出应用的情况下,对应用进行动态更新。根据本申请的一个方面,提供一种应用的动态更新方法,包括:获取应用的标识信息,根据所述标识信息获得匹配的更新包;校验所述更新包,并获得所述更新包的脚本执行文件;解析所述脚本执行文件,获得所述更新包的执行对象,和所述执行对象的新属性和新方法;将所述执行对象的新属性和新方法替换其原属性和原方法,并将指向所述执行对象的原方法的指针指向其新方法;以及当所述执行对象被请求时,通过指针调用其新方法。优选地,上述的动态更新方法中,将所述执行对象的新属性和新方法替换其原属性和原方法之前,还包括:遍历所述应用的功能单元,查找所述执行对象;以及获得所述执行对象的原属性和原方法。优选地,上述的动态更新方法中,当所述应用的功能单元中不存在所述执行对象时,将所述执行对象作为一新增执行对象,并为所述新增执行对象创建调用其新方法的指针。优选地,上述的动态更新方法中,校验所述更新包,并获得所述更新包的脚本执行文件的步骤包括:对所述更新包进行签名校验和密钥校验;当所述更新包通过签名校验和密钥校验后解密所述更新包,获得所述更新包的脚本执行文件;以及对所述脚本执行文件进行签名校验和内容校验。优选地,上述的动态更新方法中,根据所述标识信息获得匹配的更新包的步骤包括:在所述应用启动时获取所述应用的标识信息并上传;接收服务端根据所述标识信息下发的更新包。优选地,上述的动态更新方法中,根据所述标识信息获得匹配的更新包的步骤包括:发送携带所述标识信息的更新请求;以及下载服务端根据所述更新请求反馈的更新包。优选地,上述的动态更新方法还包括:判断所述更新包的标识信息与所述应用的标识信息是否匹配,若匹配则执行校验所述更新包的步骤。优选地,上述的动态更新方法中,所述标识信息包括:所述应用的版本号信息和用户ID。根据本申请的另一个方面,提供一种应用的动态更新系统,包括:获取模块,用于获取应用的标识信息,根据所述标识信息获得匹配的更新包;校验模块,用于校验所述更新包,并获得所述更新包的脚本执行文件;解析模块,用于解析所述脚本执行文件,获得所述更新包的执行对象,和所述执行对象的新属性和新方法;更新模块,用于将所述执行对象的新属性和新方法替换其原属性和原方法,并将指向所述执行对象的原方法的指针指向其新方法;以及执行模块,用于当所述执行对象被请求时,通过指针调用所述执行对象的新方法。根据本申请的另一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的应用的动态更新方法的步骤。根据本申请的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的应用的动态更新方法的步骤。本申请与现有技术相比的有益效果在于:本申请通过应用的标识信息获取匹配的更新包,并通过校验和解析获得需要更新的执行对象及其新属性和新方法;通过将新属性和新方法替换原属性和原方法,并将指向原方法的指针指向新方法,使得该执行对象被请求时,可以通过指针定位到新方法,并调用新方法,实现应用在使用过程中动态更新,提升用户体验;且对特定执行对象的属性和方法的替换不影响应用的其他执行对象,确保应用使用过程中的稳定性。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出本申请实施例中一种应用的动态更新方法的示意图;图2示出本申请实施例中客户端从服务端获取更新包的示意图;图3示出本申请实施例中另一种应用的动态更新方法的示意图;图4示出本申请实施例中一种应用的动态更新系统的示意图;图5示出本申请实施例中另一种应用的动态更新系统的示意图;图6示出本申请实施例中一种电子设备的示意图;图7示出本申请实施例中一种计算机可读存储介质的示意图。具体实施方式现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使得本申请将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。本申请的应用的动态更新方法应用于安装有一个或多个应用的客户端,每个应用用于执行一些服务,实现一些特定的功能,客户端可以是智能手机、平板电脑、笔记本电脑等智能终端。下文以动态更新IOS系统的应用为例说明本申请的应用的动态更新方法。IOS系统是一种移动操作系统,对IOS系统中的应用进行动态更新可以采用Objective-C语言和Swift语言作为脚本语法,实现不退出应用的情况下对应用进行动态更新。本领域的技术人员根据本申请公开的内容,也可以采用其他语言实现IOS系统中应用的动态更新,或者实现其他操作系统中应用的动态更新。图1示出实施例中应用的动态更新方法的示意图。参照图1所示,在一些实施例中,应用的动态更新方法包括:S10、获取应用的标识信息,根据标识信息获得匹配的更新包。其中,标识信息包括该应用的客户端版本号,该应用的用户ID等数据,通过标识信息,可以唯一匹配到该客户端正在使用的该应用。根据标识信息获得的更新包,也即对应该客户端正在使用的该应用。可以通过接收下发的更新包和主动请求更新包两种方式获得更新包。参照图2所示客户端从服务端获取更新包的示意图,在一些实施例中,如虚线框A圈示,客户端1在应用启动时获取应用的标识信息,上传至服务端2;服务端2根据标识信息获取与该应用相关的更新信息,生成更新包下发至客户端1。在一些实施例中,如虚线框B圈示,当应用在使用过程中发生特定功能模块需要紧急更新的情况,客户端1发送携带该应用的标识信息的更新请求至服务端2,服务端2响应更新请求,获取与该应用的特定功能模块相关的更新信息并反馈,客户端1即可从服务端2下载更新包。进一步的,客户端1接收服务端2下发的更新包,或者从服务端2下载更新包后,还包括步骤:判断更新包的标识信息与应用的标识信息是否匹配,若匹配则执行后续的校验步骤,以确保更新包与应用匹配,保证后续更新的准确性和稳定性。S20、校验更新包,并获得更新包的脚本执行文件。校验更新包是对更新本文档来自技高网...

【技术保护点】
1.一种应用的动态更新方法,其特征在于,包括:获取应用的标识信息,根据所述标识信息获得匹配的更新包;校验所述更新包,并获得所述更新包的脚本执行文件;解析所述脚本执行文件,获得所述更新包的执行对象,和所述执行对象的新属性和新方法;将所述执行对象的新属性和新方法替换其原属性和原方法,并将指向所述执行对象的原方法的指针指向其新方法;以及当所述执行对象被请求时,通过指针调用其新方法。

【技术特征摘要】
1.一种应用的动态更新方法,其特征在于,包括:获取应用的标识信息,根据所述标识信息获得匹配的更新包;校验所述更新包,并获得所述更新包的脚本执行文件;解析所述脚本执行文件,获得所述更新包的执行对象,和所述执行对象的新属性和新方法;将所述执行对象的新属性和新方法替换其原属性和原方法,并将指向所述执行对象的原方法的指针指向其新方法;以及当所述执行对象被请求时,通过指针调用其新方法。2.如权利要求1所述的动态更新方法,其特征在于,将所述执行对象的新属性和新方法替换其原属性和原方法之前,还包括:遍历所述应用的功能单元,查找所述执行对象;以及获得所述执行对象的原属性和原方法。3.如权利要求2所述的动态更新方法,其特征在于,当所述应用的功能单元中不存在所述执行对象时,将所述执行对象作为一新增执行对象,并为所述新增执行对象创建调用其新方法的指针。4.如权利要求1所述的动态更新方法,其特征在于,校验所述更新包,并获得所述更新包的脚本执行文件的步骤包括:对所述更新包进行签名校验和密钥校验;当所述更新包通过签名校验和密钥校验后解密所述更新包,获得所述更新包的脚本执行文件;以及对所述脚本执行文件进行签名校验和内容校验。5.如权利要求1所述的动态更新方法,其特征在于,根据所述标识信息获得匹配的更新包的步骤包括:在所述应用启动时获取所述应用的标识信息并上传;接收服务端根据所述标识信息下发的更新包。6.如...

【专利技术属性】
技术研发人员:马成轶沈哲俊周暄承任思豪
申请(专利权)人:江苏满运软件科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1