应用更新方法及其系统、存储介质、电子设备与流程

文档序号:14835366发布日期:2018-06-30 12:10阅读:154来源:国知局
应用更新方法及其系统、存储介质、电子设备与流程

本发明涉及一种应用更新方法及其系统、存储介质、电子设备。



背景技术:

随着互联网应用的空前繁荣,人们越来越多地通过各种终端获取资讯、进行相互交流、学习和工作,这都是通过终端上的应用哇完成的。由此将使得各种应用被争相发布,并通过不断的发布新版本、新特性来不断地满足用户的需求。

但是,随着应用的需求和功能的逐渐增多,应用中的逻辑也越来越复杂,因此,没出现BUG和运营需求的情况也越来越多。大部分的应用在一个版本发布周期内出现的BUG和运营需求只能通过进行下个版本的发布得到解决。目前,在IOS客户端的实现基本都是通过Objective-C实现的,每次需求版本更新都需要通过苹果审核后才能发布新的需求。这种方式存在审核周期长、审核不通过、迭代性的速度缓慢等风险和问题。若出现需要进行紧急更新的需求就更加地不适用。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种应用更新方法及其系统、存储介质、电子设备,无需发布新版本即可实现业务逻辑变更、需求迭代和BUG修复。

根据本发明的一个方面提供一种应用更新方法,所述应用更新方法包括如下步骤:S10:在应用程序启动时获取终端的当前脚本文件,其中,所述终端的当前脚本文件中至少包括多个预埋的用户界面模型;S20:将获取到的所述当前脚本文件置于一虚拟机中加载运行;S30:所述虚拟机判断是否出现更新应用程序的事件,若是,则执行步骤S40;S40:所述虚拟机根据获取的所述当前脚本文件中的多个预埋的用户界面模型对所述当前脚本文件进行数据处理后,形成用户界面模型更改指令;S50:所述虚拟机将所述用户界面模型更改指令发送至所述终端;S60:由所述终端根据所述用户界面模型更改指令在所述当前脚本文件中加载对应的一个所述预埋的用户界面模型,以完成所述应用程序的更新。

优选地,在应用程序启动时由一服务器获取终端的当前脚本文件,所述虚拟机设置于所述服务器中。

优选地,所述步骤S30还包括如下步骤:判断是否接收到更新应用程序的更新指令,若是,则判断出现更新应用程序的事件。

优选地,所述步骤S30还包括如下步骤:当所述终端运行当前脚本文件的过程中,触发第一事件时,将所述第一事件发送至所述虚拟机;所述虚拟机判断所述第一事件是否属于所述更新应用程序的事件;若是,则判断出现更新应用程序的事件。

优选地,所述当前脚本文件为javascript文件,所述虚拟机为JS虚拟机。

优选地,所述应用更新方法应用于使用IOS系统的终端中。

优选地,所述终端与所述虚拟机之间通过IOS系统提供的JavascriptCore方案中的一个桥来实现消息通信。

优选地,所述终端包括功能模块,所述功能模块具有一接口,所述虚拟机将所述用户界面模型更改指令发送至所述接口,使所述功能模块被触发,并根据所述用户界面模型更改指令加载对应的一个所述预埋的用户界面模型。

根据本发明的另一个方面,还提供一种应用更新系统,所述应用更新系统包括:脚本文件获取模块,用于在应用程序启动时获取终端的当前脚本文件,其中,所述终端的当前脚本文件中至少包括多个预埋的用户界面模型;虚拟运行模块,用于将获取到的所述当前脚本文件置于一虚拟机中加载运行;判断模块,用于控制虚拟机判断是否出现更新应用程序的事件;数据处理模块,用于控制虚拟机根据获取的所述当前脚本文件中的多个预埋的用户界面模型对所述当前脚本文件进行数据处理后,形成用户界面模型更改指令;指令发送模块,用于控制虚拟机将所述用户界面模型更改指令发送至所述终端;用户界面模型加载模块,用于控制终端根据所述用户界面模型更改指令在所述当前脚本文件中加载对应的一个所述预埋的用户界面模型,以完成所述应用程序的更新。

根据本发明的又一个方面,还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的应用更新方法的步骤。

根据本发明的又一个方面,还提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的应用更新方法的步骤。

相比于现有技术,本发明实施例提供的应用更新方法以及系统、存储介质、电子设备中通过在已经过审核的当前脚本文件中预埋多个用户界面模型,当应用程序启动时获取终端的当前脚本文件并置于一虚拟机中加载运行,并且在需要更新应用程序时,虚拟机根据多个预埋的用户界面模型对当前脚本文件进行数据处理后将用户界面模型更改指令发送至终端,由终端在当前脚本文件中加载对应的一个预埋的用户界面模型,以完成应用程序的更新。进而,该应用更新方法可以在应用需要迭代和更新或者出现紧急业务(例如有BUG需要修复)时,无需发布新版本而通过直接通过修改脚本文件来实现应用的更新而且保证用户的体验。此外,相比现有的react native和weex等方案相比,至少还具有如下有点:1、强制更新最新脚本,用户第一时间能用到最新的功能;2、框架比较轻,易于维护;3、由于不需要终端计算用户图形界面的布局等参数,用系统自带的配置,使性能更高。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的一个实施例的应用更新方法的流程图;

图2为本发明的一个实施例的应用更新系统的模块构成示意图;

图3为本发明公开示例性实施例中一种计算机可读存储介质示意图;以及

图4为本发明公开示例性实施例中一种电子设备示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。

所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员应意识到,没有特定细节中的一个或更多,或者采用其它的方法、组元、材料等,也可以实践本发明的技术方案。在某些情况下,不详细示出或描述公知结构、材料或者操作以避免模糊本发明。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

依据本发明的主旨构思,本发明的一种应用更新方法包括如下步骤:在应用程序启动时获取终端的当前脚本文件,其中,所述终端的当前脚本文件中至少包括多个预埋的用户界面模型;将获取到的所述当前脚本文件置于一虚拟机中加载运行;所述虚拟机判断是否出现更新应用程序的事件,若是,则所述虚拟机根据获取的所述当前脚本文件中的多个预埋的用户界面模型对所述当前脚本文件进行数据处理后,形成用户界面模型更改指令;所述虚拟机将所述用户界面模型更改指令发送至所述终端;由所述终端根据所述用户界面模型更改指令在所述当前脚本文件中加载对应的一个所述预埋的用户界面模型,以完成所述应用程序的更新。

下面结合附图和实施例对本发明的技术内容进行进一步地说明。

请参见图1,其示出了本发明的一个实施例的应用更新方法的流程图。具体来说,本发明的应用更新方法主要应用于使用IOS系统中,使应用的更新过程中无需IOS系统的审核,快速地实现应用的更新。如图1所示,在本发明的实施例中,该应用更新方法包括如下步骤:

步骤S10:在应用程序启动时获取终端的当前脚本文件。具体来说,在本发明实施例中,为了避免每次应用更新均需要经过IOS系统的审核后才发布新版本,因此,在此实施例中,所述终端(主要是终端的OC)的当前脚本文件中至少包括多个预埋的用户界面模型。其中,当前脚本文件为已经经过IOS系统审核的最新的脚本文件,当前脚本文件可以显示多个预埋的用户界面模型(UI)中的一个,并且在多个预埋的用户界面模型之间通过相应的用户界面模型更改指令进行变换。在本发明的优选实施例中,当前脚本文件为javascript文件。

需要说明的是,本发明实施例中的应用更新方法主要应用于使用IOS系统的终端中,但并不以此为限,其同样可以应用于例如安卓系统中,在此不予赘述。

步骤S20:将获取到的所述当前脚本文件置于一虚拟机中加载运行。在本发明的优选实施例中,由于当前脚本文件为javascript文件,因此,虚拟机相应地为JS虚拟机。可选地,JS虚拟机设置于一服务器中。进而,所有的数据处理以及逻辑分析可以由服务器端的虚拟机来完成,可以减少移动终端的应用更新时间、降低移动终端的运算量。

步骤S30:所述虚拟机判断是否出现更新应用程序的事件。

具体来说,在本发明的一个实施例中,所述步骤S30还包括如下步骤:判断是否接收到更新应用程序的更新指令,若是,则判断出现更新应用程序的事件。即在此步骤中,即为判断是否接收到主要要求更新应用程序的更新指令

进一步地,在本发明的另一个实施例中,所述步骤S30还包括如下步骤:

当所述终端运行当前脚本文件的过程中,触发第一事件时,将所述第一事件发送至所述虚拟机。具体来说,上述第一事件是指终端运行当前脚本文件的过程中可能出现的脚本文件运行错误等问题。

所述虚拟机判断所述第一事件是否属于所述更新应用程序的事件。该步骤中即为判断上述第一事件(例如当前脚本文件运行错误)是否达到需要对应用程序进行更新的程度(当前脚本文件运行错误导致当前脚本文件无法继续运行等)。

若是,则判断出现更新应用程序的事件。

更具体来说,在上述实施例中,由于该方法主要是应用于IOS系统中的,因此,在上述步骤S30中,所述终端与所述虚拟机之间通过IOS系统提供的JavascriptCore方案中的一个桥来实现消息通信,即上述JavascriptCore方案中的一个桥即类似于一个消息传递通道。

进而,若上述步骤S30的判断结果为是,则执行步骤S40。

步骤S40:所述虚拟机根据获取的所述当前脚本文件中的多个预埋的用户界面模型对所述当前脚本文件进行数据处理后,形成用户界面模型更改指令。具体来说,该步骤中即为虚拟机根据步骤S10中获取的当前脚本文件中的多个预埋的用户界面模型,针对具体需要更新的内容进行数据处理,由多个预埋的用户界面模型中选择一个与当前使用的用户界面模型不同的一个用户界面模型,并针对选择的用户界面模型进行的功能设置。

步骤S50:所述虚拟机将所述用户界面模型更改指令发送至所述终端。该步骤中即为由虚拟机将上述步骤S40中形成的用户界面模型更改指令发送至终端。更具体来说,终端包括功能模块。其中,功能模块具有一接口,所述虚拟机将所述用户界面模型更改指令发送至所述接口,使所述功能模块被触发,并根据所述用户界面模型更改指令加载对应的一个所述预埋的用户界面模型。

步骤S60:所述终端根据所述用户界面模型更改指令在所述当前脚本文件中加载对应的一个所述预埋的用户界面模型,以完成所述应用程序的更新。

综合上述步骤来说,在发明的的优选实施例中,终端仅实现用户界面模型(UI)的显示以及触发事件时将相应的事件回调至虚拟机。用户界面模型层(UI层)的约束布局是终端提前设置好的,终端提供相应的功能模块接口,并且将当前脚本文件中的预埋的用户界面模型提供至虚拟机。所有的数据处理和逻辑判断都由虚拟机进行处理。虚拟机执行所有的数据处理和逻辑判断后,通过IOS系统提供的JavascriptCore方案中的桥把终端的用户界面模型层(UI层)需要的数据提供给终端,终端通过这些数据进行显示,以完成应用的更新。

进一步地,本发明还提供一种应用更新系统,用于实现上述的应用更新方法。具体来说,请参见图2,其示出了发明的一个实施例的应用更新系统的模块构成示意图。所述应用更新系统至少包括脚本文件获取模块1、虚拟运行模块2、判断模块3、数据处理模块4、指令发送模块5以及用户界面模型加载模块6。

具体来说,脚本文件获取模块1用于在应用程序启动时获取终端的当前脚本文件。其中,所述终端的当前脚本文件中至少包括多个预埋的用户界面模型。

虚拟运行模块2用于将获取到的所述当前脚本文件置于一虚拟机中加载运行。

判断模块3用于控制虚拟机判断是否出现更新应用程序的事件。

数据处理模块4用于控制虚拟机根据获取的所述当前脚本文件中的多个预埋的用户界面模型对所述当前脚本文件进行数据处理后,形成用户界面模型更改指令。

指令发送模块5用于控制虚拟机将所述用户界面模型更改指令发送至所述终端。

用户界面模型加载模块6用于控制终端根据所述用户界面模型更改指令在所述当前脚本文件中加载对应的一个所述预埋的用户界面模型,以完成所述应用程序的更新。

在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被例如处理器执行时可以实现上述任意一个实施例中所述应用更新方法中控制系统和话务系统执行的各个步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述图1所示的应用更新方法部分中描述的根据本发明各种示例性实施方式的步骤。

参考图3所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品300,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

在本公开的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中所述应用更新方法中控制系统和话务系统执行的各个步骤。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

下面参照图4来描述根据本发明的这种实施方式的电子设备600。图4显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图4所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述应用更新方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的由控制系统和话务系统完成的各个步骤。

所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。

所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述应用更新方法。

综上所述,本发明实施例提供的应用更新方法以及系统、存储介质、电子设备中通过在已经过审核的当前脚本文件中预埋多个用户界面模型,当应用程序启动时获取终端的当前脚本文件并置于一虚拟机中加载运行,并且在需要更新应用程序时,虚拟机根据多个预埋的用户界面模型对当前脚本文件进行数据处理后将用户界面模型更改指令发送至终端,由终端在当前脚本文件中加载对应的一个预埋的用户界面模型,以完成应用程序的更新。进而,该应用更新方法可以在应用需要迭代和更新或者出现紧急业务(例如有BUG需要修复)时,无需发布新版本而通过直接通过修改脚本文件来实现应用的更新而且保证用户的体验。此外,相比现有的react native和weex等方案相比,至少还具有如下有点:1、强制更新最新脚本,用户第一时间能用到最新的功能;2、框架比较轻,易于维护;3、由于不需要终端计算用户图形界面的布局等参数,用系统自带的配置,使性能更高。

虽然本发明已以可选实施例揭示如上,然而其并非用以限定本发明。本发明所属技术领域的技术人员,在不脱离本发明的精神和范围内,当可作各种的更动与修改。因此,本发明的保护范围当视权利要求书所界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1