CN113760322A - 软件更新方法、装置以及系统 - Google Patents

软件更新方法、装置以及系统 Download PDF

Info

Publication number
CN113760322A
CN113760322A CN202110169058.9A CN202110169058A CN113760322A CN 113760322 A CN113760322 A CN 113760322A CN 202110169058 A CN202110169058 A CN 202110169058A CN 113760322 A CN113760322 A CN 113760322A
Authority
CN
China
Prior art keywords
script
native
request
script system
sending
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.)
Pending
Application number
CN202110169058.9A
Other languages
English (en)
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 Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun 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 Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202110169058.9A priority Critical patent/CN113760322A/zh
Publication of CN113760322A publication Critical patent/CN113760322A/zh
Pending legal-status Critical Current

Links

Images

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
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Landscapes

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

Abstract

本发明公开了一种软件更新方法、装置以及系统,涉及计算机技术领域。该软件更新方法的一具体实施方式包括:若检测到下载资源变更,则向原生端发送释放请求,用于调用原生端的脚本系统并根据所述脚本系统释放原生对象;向服务器发送下载请求,并接收与所述下载请求对应的最新下载资源;发送初始化请求,用于原生端根据所述初始化请求对脚本系统进行初始化处理。该实施方式能够灵活地改变业务逻辑或者增加一些业务流程,并且能够支持功能扩展和实时热更。

Description

软件更新方法、装置以及系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种软件更新方法、装置以及系统。
背景技术
一般来说,随着主应用程序(Application,App)版本的迭代更新,需要预留截至时间来完成算法和相关业务开发。但是,现有软件更新方法会出现一些很棘手无法解决的情况:比如产品突然想改变一些业务环节;业务方想添加一些新的业务流程;主App没有时间允许你修改业务逻辑。可以理解的是,现有软件更新方法不能灵活地改变业务逻辑或者增加一些业务流程,不能支持功能扩展和实时热更等功能。
发明内容
有鉴于此,本发明实施例提供一种软件更新方法、装置以及系统,能够灵活的改变业务逻辑或者增加一些业务流程,并且能够支持功能扩展和实时热更。
为实现上述目的,根据本发明实施例的一个方面,提供了一种软件更新方法。
本发明实施例的软件更新方法包括:
若检测到下载资源变更,则向原生端发送释放请求,用于调用原生端的脚本系统并根据所述脚本系统释放原生对象;
向服务器发送下载请求,并接收与所述下载请求对应的最新下载资源;
发送初始化请求,用于原生端根据所述初始化请求对脚本系统进行初始化处理。
可选地,所述下载资源为统一资源定位符URL资源;
所述若检测到下载资源变更,则向原生端发送释放请求,用于调用原生端的脚本系统并根据所述脚本系统释放原生对象,包括:
若检测到URL资源变更,则向原生端发送释放请求,用于调用原生端脚本系统的接口类,并根据所述接口类释放原生对象。
可选地,若初次对脚本系统进行初始化处理,所述方法还包括:
在对脚本系统进行初始化处理之后,进行注册脚本回调。
可选地,进一步对脚本系统进行绘制处理,包括:
向脚本系统发送绘制请求,所述绘制请求携带有绘制消息;
接收原生端发送的回调信息,以完成对脚本系统的绘制处理;其中所述回调信息是所述原生端将所述绘制消息发送给业务脚本并调用原生方法以实现所述业务脚本内的业务逻辑流程得到的。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种软件更新方法。
本发明实施例的软件更新方法包括:
接收客户端发送的释放请求,执行与所述释放请求对应的脚本系统并根据所述脚本系统释放原生对象;
接收客户端根据最新下载资源对脚本系统进行初始化处理时发送的初始化请求,在脚本系统的初始化过程中注入外部算法库的绑定依赖,以初始化脚本资源。
可选地,所述方法进一步包括:
接收客户端发送的绘制请求,所述绘制请求携带有绘制消息;
将所述绘制消息发送给业务脚本,并调用原生方法以实现所述业务脚本内的业务逻辑流程;
向客户端发送与业务逻辑流程相关的回调信息,以完成对脚本系统的绘制处理。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种客户端。
本发明实施例的客户端包括:
释放模块,用于若检测到下载资源变更,则向原生端发送释放请求,用于调用原生端的脚本系统并根据所述脚本系统释放原生对象;
下载模块,用于向服务器发送下载请求,并接收与所述下载请求对应的最新下载资源;
初始化模块,用于发送初始化请求,用于原生端根据所述初始化请求对脚本系统进行初始化处理。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种原生端。
本发明实施例的原生端包括:
执行模块,用于接收客户端发送的释放请求,执行与所述释放请求对应的脚本系统并根据所述脚本系统释放原生对象;
注入模块,用于接收客户端根据最新下载资源对脚本系统进行初始化处理时发送的初始化请求,在脚本系统的初始化过程中注入外部算法库的绑定依赖,以初始化脚本资源。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种软件更新系统。
本发明实施例的软件更新系统包括:客户端、原生端和服务器;其中原生端至少包括:脚本应用工厂接口类,所述脚本应用工厂接口类用于负责脚本系统的创建、销毁、初始化以及客户端向脚本系统发送消息。
可选地,所述原生端还包括:
脚本应用回调接口类,用于负责脚本系统和客户端之间的信息通信。
可选地,所述原生端还包括:
绑定加载类,用于负责将管理外部算法库中的接口注入到脚本系统框架中;
绑定管理类,用于负责管理从所述绑定加载类继承的各种实例;
接口绑定文件库,用于存储外部算法库中接口对应的绑定文件。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种电子设备。
本发明实施例的电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的方法。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种计算机可读介质。
本发明实施例的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:
在本发明实施例中,该软件更新方法可以实现游戏引擎的通用性、可以支持扩展以及实时热更,可以提升游戏引擎开发业务的能力。并且该软件更新方法使用轻量级的脚本语言来实现业务逻辑,上手比较快,开发周期短。除此之外,该软件更新方法可以广泛应用于各种营销活动,并能够根据产品需求动态更新。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明实施例的原生端的的脚本系统框架示意图;
图2是本发明第一实施例的软件更新方法的流程示意图;
图3是本发明第二实施例的软件更新方法的流程示意图;
图4是本发明第三实施例的软件更新方法的流程示意图;
图5是本发明实施例的客户端的模块示意图;
图6是本发明实施例的原生端的模块示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了达到高效以及算法保护等目的,主App一般采用客户端(android和iOS)、原生端(C++)和服务器相组合的方式来完成,其中客户端用于负责业务方向的逻辑编写以实现原生端和客户端之间的通信,原生端用于负责具体某些功能算法的实现,服务器用于负责相关基础的资源配置。在主App没法提供充足时间的情况下,如何能够灵活地改变业务逻辑或者增加一些业务流程,以及如何支持功能扩展和实时热更,需要解决以下几点问题:
1)客户端、原生端与服务器之间如何进行业务职责划分;
2)软件更新中如何设计,来实现高效、支持热更的脚本系统;
3)在支持热更的脚本系统中如何能够灵活地融合其他算法库,提升原有脚本的能力;
4)客户端采用哪种通用方式与热更模块进行通信,以方便后续业务的热更。
综合常用游戏软件的热更设计以及运行效率的考虑,本发明实施例基于LUA(LUA是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放)脚本语言提出了一种软件更新系统,该系统至少包括:客户端、原生端和服务器。为了支持功能扩展以及实时脚本热更,客户端需要实现与服务器和原生端的通信桥梁,无需实现与业务核心功能相关的开发;原生端在实现基础功能算法的基础上还需要提供脚本系统的支持;服务器可以提供一些脚本资源的配置。该软件更新系统是一种可以支持功能扩展和实时脚本热更的通用新技术,业务层只需要采用具有原生能力的LUA脚本来实现。
其中,原生端实现的脚本系统框架是整个流程最关键的模块,参见图1,该原生端的脚本系统框架包括以下三个层次:基础层、绑定层和对外层。其中,基础层主要包括:图形库、Lua库和Tolua库,图形库是软件更新最核心的拥有图形渲染能力的动态库,Lua库和Tolua库主要为脚本系统提供支持。绑定层主要目的是支持脚本系统的灵活功能扩展,最关键的对象是绑定管理类(IBinderManger)和绑定加载类(IBinderLoader),IBinderManager负责管理内外部从IBinderLoader继承的各种实例,IBinderLoader负责管理外部算法库中的接口如何注入到软件更新脚本系统框架中,pkg(接口绑定文件库)是外部算法库中接口对应的绑定文件。对外层主要目的是实现客户端与Lua脚本之间的通信,对外层核心的对象包括脚本应用工厂类(IAppFactory)和脚本应用回调类(IAppCallBack),IAppFactory负责脚本系统的创建、销毁、初始化以及客户端向脚本系统发送消息,IAppCallBack负责脚本系统向客户端之间信息通信。
基于以上所述的软件更新系统,本发明实施例提供了一种软件更新方法,该软件更新方法的执行主体为客户端。图2是本发明第一实施例的软件更新方法的流程示意图,如图2所示,该软件更新方法具体可以包括如下的步骤S201至步骤S202。
步骤S201:若检测到下载资源变更,则向原生端发送释放请求,用于调用原生端的脚本系统并根据所述脚本系统释放原生对象。
在步骤S201中,所述下载资源可以为统一资源定位符(Uniform ResourceLocator,URL)资源,所述下载资源至少包括以下一项或多项:脚本资源、模型资源、图片资源和视频资源。所述原生端是指应用的数据库,所述原生对象至少包括:脚本系统、业务脚本和原生端相关的内存和显存资源。
若检测到URL资源变更,则向原生端发送释放请求,用于调用原生端脚本系统的接口类,并根据所述接口类释放原生对象。在释放原生对象时,可以进一步基于脚本应用工厂接口类(或称为IAppFactory)提供的释放应用(releaseApp)方法释放脚本系统、业务脚本和原生端相关的内存和显存资源等原生对象。
步骤S202:向服务器发送下载请求,并接收与所述下载请求对应的最新下载资源。
步骤S203:发送初始化请求,用于原生端根据所述初始化请求对脚本系统进行初始化处理。
在对脚本系统进行初始化处理时,客户端可以调用脚本应用工厂接口类来初始化脚本系统,通过原生端在脚本系统的创建过程中注入外部算法库的绑定依赖,以初始化脚本资源。具体地,在客户端检测到下载资源变更时,可以调用原生端的脚本应用工厂接口类所提供的创建应用(createApp)方法创建和初始化脚本系统,通过该方式可以实现功能扩展的目的,初始化过程中加载和初始化跟业务相关的脚本资源。
在对脚本系统进行初始化处理之后,还可以对所述脚本系统进行绘制处理。在对脚本系统进行绘制处理时,客户端向脚本系统发送绘制请求,所述绘制请求携带有绘制消息;客户端接收原生端发送的回调信息,以完成对脚本系统的绘制处理;其中所述回调信息是所述原生端将所述绘制消息发送给业务脚本并调用原生方法以实现所述业务脚本内的业务逻辑流程得到的。
进一步地,可以调用脚本应用工厂接口类提供的调用函数的接口(callFunc)方法向脚本系统发送绘制请求,并且可以采用逐帧调用的方式。进一步地,callFunc方法的处理过程大致为:先在原生端把函数名字以及参数信息进行压栈处理,然后执行脚本全局函数,最后对压栈的信息出栈执行相应的函数。
可以理解的是,在客户端成功下载最新下载资源后,再一次循环地进入初始化阶段下的脚本初始化的后续流程,这样可以达到实时热更的目的。
在本发明实施例中,该软件更新方法可以实现游戏引擎的通用性、可以支持扩展以及实时热更,可以提升游戏引擎开发业务的能力。并且该软件更新方法使用轻量级的脚本语言来实现业务逻辑,上手比较快,开发周期短。除此之外,该软件更新方法可以广泛应用于各种营销活动,并能够根据产品需求动态更新。
图3是本发明第二实施例的软件更新方法的流程示意图,该软件更新方法的执行主体为原生端,该原生端的脚本系统框架如1所示。需要说明的是,该原生端可以布局在客户端或服务器上。如图3所示,该软件更新方法具体可以包括如下的步骤S301至步骤S302。
步骤S301:接收客户端发送的释放请求,执行与所述释放请求对应的脚本系统并根据所述脚本系统释放原生对象。
在步骤S301中,所述释放请求用于调用原生端的脚本系统并根据所述脚本系统释放原生对象。所述原生对象至少包括:脚本系统、业务脚本和原生端相关的内存和显存资源。其中在释放原生对象时,可以基于IAppFactory提供的releaseApp方法释放脚本系统、业务脚本和原生端相关的内存和显存资源等原生对象。
步骤S302:接收客户端根据最新下载资源对脚本系统进行初始化处理时发送的初始化请求,在脚本系统的初始化过程中注入外部算法库的绑定依赖,以初始化脚本资源。
在对脚本系统进行初始化处理时,可以通过客户端调用脚本应用工厂接口类以初始化脚本系统,在脚本系统的创建过程中注入外部算法库的绑定依赖,以初始化脚本资源。
在对脚本系统进行初始化处理之后,可以对脚本系统进行绘制处理。在对脚本系统进行绘制处理时,可以接收客户端发送的绘制请求,所述绘制请求携带有绘制消息。进而将所述绘制消息发送给业务脚本,并调用原生方法以实现所述业务脚本内的业务逻辑流程,向客户端发送与业务逻辑流程相关的回调信息,以完成对脚本系统的绘制处理。
在本发明实施例中,该软件更新方法可以实现游戏引擎的通用性、可以支持扩展以及实时热更,可以提升游戏引擎开发业务的能力。并且该软件更新方法使用轻量级的脚本语言来实现业务逻辑,上手比较快,开发周期短。除此之外,该软件更新方法可以广泛应用于各种营销活动,并能够根据产品需求动态更新。
参见图4,本发明实施例还提供了一种软件更新方法,该软件更新方法是一种支持功能扩展与脚本热更的软件更新技术,客户端用于实现服务器资源动态监测和脚本系统的通用调用;原生端用于负责提供脚本的能力和具体算法实现;服务器用于提供资源配置的能力。这样就能灵活地根据产品或者业务方的需求完成实时热更的能力,具体详细程序流程如图4所示,可以简单归纳成下面的三个阶段:初始化阶段、绘制阶段和热更阶段。
其中初始化阶段主要完成资源的下载和脚本的初始化工作,简单包含以下几步:
1)资源初始下载,客户端请求下载服务器对应的下载资源,下载资源包括:脚本资源、模型资源、图片资源和视频资源等。
2)脚本初始化,调用IAppFactory提供的createApp方法创建和初始化脚本系统,在脚本系统的创建过程中注入外部算法库的绑定依赖,通过该方式可以实现功能扩展的目的,在初始化过程中加载和初始化跟业务相关的脚本资源;
3)注册回调,实现继承于IAppCallBack的回调类,调用IAppFactory提供的注册回调的接口(例如:registerCallBack,registerCallBack是注册回调的接口)方法注册脚本回调,实现脚本系统与客户端通信的目的。
绘制阶段主要通过消息来完成客户端与脚本系统之间的更新调用,绘制阶段包括以下几个重要消息:
1)绘制消息,逐帧调用IAppFactory提供的callFunc方法向脚本系统发送绘制请求,该消息会通过原生端转发到业务脚本,通过调用原生端提供的原生方法来实现脚本内的业务逻辑流程;
2)事件消息,当客户端触发点击、双击和缩放等操作时,调用IAppFactory提供的sendEvent方法向脚本系统发送事件响应,触发业务端跟事件相关联的行为;需要说明的是,sendEvent方法与callFunc方法基本流程一致,只不过对应的全局函数不同。
3)回调消息,在执行业务相关的流程中,当需要业务脚本向客户端发送消息时,调用sendMessage方法发送指定的消息。可以理解的是,将具体的消息通过回调的方式返回给客户端。
热更阶段主要灵活实时地实现业务方提出的新任务或者新逻辑,简单归纳为以下几步:
1)资源变更,当有新的任务或者新逻辑变更时,首先需要在脚本系统中实现,然后替换服务器对应URL下相关的资源;
2)旧资源释放,当客户端检测到服务器指定URL对应的资源发生改变后,调用IAppFactory提供的releaseApp方法释放脚本系统、业务脚本和原生端相关的内存和显存资源等;
3)新资源加载,再次向服务器请求下载指定URL下的最新资源,下载成功后再一次循环地进入初始化阶段下的脚本初始化的后续流程,这样达到实时热更的目的。
在本发明实施例中,该软件更新方法可以实现游戏引擎的通用性、可以支持扩展以及实时热更,可以提升游戏引擎开发业务的能力。并且该软件更新方法使用轻量级的脚本语言来实现业务逻辑,上手比较快,开发周期短。除此之外,该软件更新方法可以广泛应用于各种营销活动,并能够根据产品需求动态更新。
图5是本发明实施例的客户端的模块示意图,参见图5,该客户端500包括如下模块:
释放模块501,用于若检测到下载资源变更,则向原生端发送释放请求,用于调用原生端的脚本系统并根据所述脚本系统释放原生对象;
下载模块502,用于用于向服务器发送下载请求,并接收与所述下载请求对应的最新下载资源;
初始化模块503,用于发送初始化请求,用于原生端根据所述初始化请求对脚本系统进行初始化处理。
可选地,所述下载资源为统一资源定位符URL资源;所述释放模块501进一步用于:
若检测到URL资源变更,则向原生端发送释放请求,用于调用原生端脚本系统的接口类,并根据所述接口类释放原生对象。
可选地,若初次对脚本系统进行初始化处理,所述客户端还包括:
回调模块,用于在对脚本系统进行初始化处理之后,进行注册脚本回调。
可选地,所述客户端500还包括:
第一发送模块,用于向脚本系统发送绘制请求,所述绘制请求携带有绘制消息;
第一接收模块,用于接收原生端发送的回调信息,以完成对脚本系统的绘制处理;其中所述回调信息是所述原生端将所述绘制消息发送给业务脚本并调用原生方法以实现所述业务脚本内的业务逻辑流程得到的。
在本发明实施例中,该实施方式可以实现游戏引擎的通用性、可以支持扩展以及实时热更,可以提升游戏引擎开发业务的能力。并且该实施方式使用轻量级的脚本语言来实现业务逻辑,上手比较快,开发周期短。除此之外,该实施方式可以广泛应用于各种营销活动,并能够根据产品需求动态更新。
图6是本发明实施例的原生端的模块示意图,参见图6,该原生端600包括如下模块:
执行模块601,用于接收客户端发送的释放请求,执行与所述释放请求对应的脚本系统并根据所述脚本系统释放原生对象;
注入模块602,用于接收客户端根据最新下载资源对脚本系统进行初始化处理时发送的初始化请求,在脚本系统的初始化过程中注入外部算法库的绑定依赖,以初始化脚本资源。
可选地,所述原生端600还包括:
第二接收模块,用于接收客户端发送的绘制请求,所述绘制请求携带有绘制消息;
第二发送模块,用于将所述绘制消息发送给业务脚本,并调用原生方法以实现所述业务脚本内的业务逻辑流程;
第三发送模块,用于向客户端发送与业务逻辑流程相关的回调信息,以完成对脚本系统的绘制处理。
在本发明实施例中,该实施方式可以实现游戏引擎的通用性、可以支持扩展以及实时热更,可以提升游戏引擎开发业务的能力。并且该实施方式使用轻量级的脚本语言来实现业务逻辑,上手比较快,开发周期短。除此之外,该实施方式可以广泛应用于各种营销活动,并能够根据产品需求动态更新。
图7示出了可以应用本发明实施例的软件更新方法或软件更新装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703可以包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。服务器705可以是提供各种服务的服务器。
需要说明的是,本发明实施例所提供的软件更新方法一般由服务器705执行,相应地,软件更新装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:若检测到下载资源变更,则向原生端发送释放请求,用于调用原生端的脚本系统并根据所述脚本系统释放原生对象;向服务器发送下载请求,并接收与所述下载请求对应的最新下载资源;发送初始化请求,用于原生端根据所述初始化请求对脚本系统进行初始化处理。
根据本发明实施例的技术方案,能够灵活的改变业务逻辑或者增加一些业务流程,并且能够支持功能扩展和实时热更的目的。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (13)

1.一种软件更新方法,其特征在于,所述软件更新方法包括:
若检测到下载资源变更,则向原生端发送释放请求,用于调用原生端的脚本系统并根据所述脚本系统释放原生对象;
向服务器发送下载请求,并接收与所述下载请求对应的最新下载资源;
发送初始化请求,用于原生端根据所述初始化请求对脚本系统进行初始化处理。
2.根据权利要求1所述的方法,其特征在于,所述下载资源为统一资源定位符URL资源;
所述若检测到下载资源变更,则向原生端发送释放请求,用于调用原生端的脚本系统并根据所述脚本系统释放原生对象,包括:
若检测到URL资源变更,则向原生端发送释放请求,用于调用原生端脚本系统的接口类,并根据所述接口类释放原生对象。
3.根据权利要求1所述的方法,其特征在于,若初次对脚本系统进行初始化处理,所述方法还包括:
在对脚本系统进行初始化处理之后,进行注册脚本回调。
4.根据权利要求1所述的方法,其特征在于,进一步对脚本系统进行绘制处理,包括:
向脚本系统发送绘制请求,所述绘制请求携带有绘制消息;
接收原生端发送的回调信息,以完成对脚本系统的绘制处理;其中所述回调信息是所述原生端将所述绘制消息发送给业务脚本并调用原生方法以实现所述业务脚本内的业务逻辑流程得到的。
5.一种软件更新方法,其特征在于,所述软件更新方法包括:
接收客户端发送的释放请求,执行与所述释放请求对应的脚本系统并根据所述脚本系统释放原生对象;
接收客户端根据最新下载资源对脚本系统进行初始化处理时发送的初始化请求,在脚本系统的初始化过程中注入外部算法库的绑定依赖,以初始化脚本资源。
6.根据权利要求5所述的方法,其特征在于,所述方法进一步包括:
接收客户端发送的绘制请求,所述绘制请求携带有绘制消息;
将所述绘制消息发送给业务脚本,并调用原生方法以实现所述业务脚本内的业务逻辑流程;
向客户端发送与业务逻辑流程相关的回调信息,以完成对脚本系统的绘制处理。
7.一种客户端,其特征在于,包括:
释放模块,用于若检测到下载资源变更,则向原生端发送释放请求,用于调用原生端的脚本系统并根据所述脚本系统释放原生对象;
下载模块,用于向服务器发送下载请求,并接收与所述下载请求对应的最新下载资源;
初始化模块,用于发送初始化请求,用于原生端根据所述初始化请求对脚本系统进行初始化处理。
8.一种原生端,其特征在于,包括:
执行模块,用于接收客户端发送的释放请求,执行与所述释放请求对应的脚本系统并根据所述脚本系统释放原生对象;
注入模块,用于接收客户端根据最新下载资源对脚本系统进行初始化处理时发送的初始化请求,在脚本系统的初始化过程中注入外部算法库的绑定依赖,以初始化脚本资源。
9.一种软件更新系统,其特征在于,包括:客户端、原生端和服务器;其中原生端至少包括:脚本应用工厂接口类,所述脚本应用工厂接口类用于负责脚本系统的创建、销毁、初始化以及客户端向脚本系统发送消息。
10.根据权利要求9所述的软件更新系统,其特征在于,所述原生端还包括:
脚本应用回调接口类,用于负责脚本系统和客户端之间的信息通信。
11.根据权利要求9或10所述的软件更新系统,其特征在于,所述原生端还包括:
绑定加载类,用于负责将管理外部算法库中的接口注入到脚本系统框架中;
绑定管理类,用于负责管理从绑定加载类继承的实例;
接口绑定文件库,用于存储外部算法库中接口对应的绑定文件。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
13.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN202110169058.9A 2021-02-07 2021-02-07 软件更新方法、装置以及系统 Pending CN113760322A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110169058.9A CN113760322A (zh) 2021-02-07 2021-02-07 软件更新方法、装置以及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110169058.9A CN113760322A (zh) 2021-02-07 2021-02-07 软件更新方法、装置以及系统

Publications (1)

Publication Number Publication Date
CN113760322A true CN113760322A (zh) 2021-12-07

Family

ID=78786565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110169058.9A Pending CN113760322A (zh) 2021-02-07 2021-02-07 软件更新方法、装置以及系统

Country Status (1)

Country Link
CN (1) CN113760322A (zh)

Similar Documents

Publication Publication Date Title
TWI705336B (zh) 用於支援線上升級的設備和方法
WO2016155388A1 (zh) 应用安装、运行方法及装置
CN111090423B (zh) 一种webhook框架系统和实现主动调用、实现事件触发的方法
CN113760324A (zh) 构建微前端应用的方法和装置
WO2019029451A1 (zh) 发布移动应用的方法和电子设备
CN110928571A (zh) 业务程序开发方法和装置
CN110895468A (zh) 实现业务增强的方法和装置
CN113296828A (zh) 一种发布应用的方法、服务器和系统
CN113760561A (zh) 一种数据处理方法和装置
CN111782231A (zh) 服务部署方法和装置
CN116737662A (zh) 业务数据处理的方法、装置、电子设备和存储介质
CN110019059B (zh) 一种定时同步的方法和装置
CN113760322A (zh) 软件更新方法、装置以及系统
CN113760487B (zh) 一种业务处理方法和装置
CN111124523A (zh) 用于初始化应用的方法和装置
CN108804442B (zh) 序列号生成方法和装置
CN111142972B (zh) 用于扩展应用程序的功能的方法、装置、系统及介质
CN114327404A (zh) 一种文件处理方法、装置、电子设备及计算机可读介质
CN113296829A (zh) 处理业务的方法、装置、设备和计算机可读介质
CN113254825A (zh) 页面生成的方法、装置、电子设备和存储介质
CN114157658A (zh) 镜像仓库部署方法、装置、电子设备和计算机可读介质
WO2020064000A1 (zh) 一种消息框的显示方法及装置、终端、存储介质
CN111324386A (zh) 分身应用程序的启动方法、装置、电子设备及存储介质
CN113805858B (zh) 持续部署脚本语言开发的软件的方法和装置
US11811878B1 (en) Session manager providing bidirectional data transport

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