CN108037941A - 基于公共插件的应用程序更新方法、电子设备、存储介质 - Google Patents
基于公共插件的应用程序更新方法、电子设备、存储介质 Download PDFInfo
- Publication number
- CN108037941A CN108037941A CN201711441870.2A CN201711441870A CN108037941A CN 108037941 A CN108037941 A CN 108037941A CN 201711441870 A CN201711441870 A CN 201711441870A CN 108037941 A CN108037941 A CN 108037941A
- Authority
- CN
- China
- Prior art keywords
- plug
- unit
- public
- application program
- public plug
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
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
技术领域
本发明涉及应用程序领域,具体涉及一种基于公共插件的应用程序更新方法、电子设备、存储介质。
背景技术
应用程序可以安装在客户端,应用程序中包含了很多代码,不同代码可实现不同的功能。当代码发生改变时(如修改或替换原有的某个功能、修改原有某个控件在界面中的位置/大小/颜色等),应用程序对应的功能也会发生改变。当应用程序中的部分代码发生更新时,需要应用程序也进行相应的更新。目前,在对应用程序进行更新时,将已安装的应用程序的版本升级,在新版本的应用程序中将使用新的代码替换对应的代码。但是由于应用程序涉及的功能、控件、资源等非常多,若仅因为少量代码的修改就对应用程序进行一次版本升级,会导致应用版本资源的浪费。为解决该问题,现有技术提出了一种插件化方案,将经常需要修改变动的部分代码从应用程序的主代码中抽离出来,通过编译器编译成对应的插件,这样使得对代码的更新变为对应的插件版本升级,而不需要再对应用程序版本升级,从而减少了应用程序本身的版本的迭代次数。
但随着插件个数的增多,多个插件有时会需要调用同一份代码,即公共代码。如图片下载库、网络连接库、通用标题栏等。现有技术对公共代码的设置一般采用如下两种方式:
在每个插件内均复制一份公共代码,如图1a所示,插件A、B、C中均包含公共代码1,各个插件在调用时,直接使用自己内部的公共代码即可。但这种方式由于同一份公共代码在多个插件中存在,若公共代码需要更新时,则所有包含该公共代码的插件都需要同时更新。当插件数量很多时,对公共代码的维护需要花费大量的时间和成本。同时,公共代码太过于冗余,代码的可读性降低,维护也相对较繁琐。
或者,将公共代码放至在应用程序部分,如图1b所示,公共代码1放至在应用程序部分,当各个插件(插件A、B、C)需要调用公共代码时,各个插件从应用程序中获取公共代码后调用。但这种方式使得当公共代码发生更新时,应用程序必须也要一起进行版本升级,才能更新公共代码,这样做导致与之前所提出的使用插件版本升级替代应用程序版本升级的方式不一致。并且若公共代码被某个插件调用,则当前该公共代码无法删除,只有确保该公共代码不会被所有插件再调用才能删除该公共代码。由于这种方式下耦合过于严重,使得应用程序的代码维护变得异常困难。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于公共插件的应用程序更新方法、电子设备、存储介质。
根据本发明的一个方面,提供了一种基于公共插件的应用程序更新方法,公共插件根据抽取的被调用的公共代码生成;其包括:
接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新;
若是,获取应用程序的待更新插件列表;
根据待更新插件列表,下载最新版本的插件安装文件;
从最新版本的插件安装文件中获取该插件的依赖公共插件列表;
根据依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
根据本发明的另一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行以下操作:
接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新;
若是,获取应用程序的待更新插件列表;
根据待更新插件列表,下载最新版本的插件安装文件;
从最新版本的插件安装文件中获取该插件的依赖公共插件列表;
根据依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
根据本发明的又一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行以下操作:
接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新;
若是,获取应用程序的待更新插件列表;
根据待更新插件列表,下载最新版本的插件安装文件;
从最新版本的插件安装文件中获取该插件的依赖公共插件列表;
根据依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
根据本发明提供的基于公共插件的应用程序更新方法、电子设备、存储介质,接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新;若是,获取应用程序的待更新插件列表;根据待更新插件列表,下载最新版本的插件安装文件;从最新版本的插件安装文件中获取该插件的依赖公共插件列表;根据依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。本发明利用将被调用的公共代码抽取生成公共插件,使得公共代码无冗余,也使得插件与应用程序本身的耦合关系降低,增强了插件以及应用程序本身代码的可维护性。在应用程序更新时,实现动态更新,通过更新插件和插件依赖的公共插件,完成对应用程序的更新。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1a和图1b示出了现有技术中公共代码在应用程序中设置位置的结构示意图;
图2示出了根据本发明实施例一的基于公共插件的应用程序更新方法的流程图;
图3示出了根据本发明实施例二的基于公共插件的应用程序更新方法的流程图;
图4示出了根据本发明实施例三的基于公共插件的应用程序制作方法的流程图;
图5示出了根据本发明实施例五的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
图2示出了根据本发明实施例一的基于公共插件的应用程序更新方法的流程图,如图2所示,基于公共插件的应用程序更新方法具体包括如下步骤:
步骤S201,接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新。
本实施例是将应用程序分为应用程序(其可以直接安装在客户端的各种终端设备上)、插件(安装在应用程序上,能被应用程序调用执行)和公共插件(根据抽取的被调用的公共代码生成,被多个插件或应用程序依赖,多个插件或应用程序可以调用公共插件)。
具体的,客户端在启动应用程序时,接收客户端发送的应用程序更新检测请求。其中,客户端发送应用程序更新检测请求,可以设置客户端每天第一次启动应用程序时发送,也可以设置客户端每次启动应用程序时均发送。当接收到客户端发送的应用程序更新检测请求后,检测是否对客户端已安装的应用程序进行更新。由于本实施例中应用程序采用插件化处理,在对应用程序更新时,主要通过更新插件的方式进行,以减少应用程序本身版本的迭代次数。因此,在检测时,将客户端已安装的至少一个插件版本信息与服务器端对应插件的版本信息比对,若相同,则不需要对客户端的应用程序进行更新,若不同,则检测需要对客户端已安装的至少一个插件进行更新,执行步骤S202。
可选地,在检测时,本实施例也可以先将客户端已安装的应用程序的版本信息与服务器端应用程序的版本信息比对,若不同,则先下载服务器端的应用程序,以更新客户端已安装的应用程序。之后,再继续将客户端已安装的至少一个插件版本信息与服务器端对应插件的版本信息比对,检测是否需要对客户端已安装的至少一个插件进行更新,若需要则执行步骤S202。或者,当应用程序的版本信息更新后,应用程序所调用的插件数量增多,而客户端没有安装对应的插件时,还需要从服务器端下载应用程序需要调用的插件,安装在客户端,以实现对应用程序的更新。
可选地,本实施例也适用于现有应用程序在更新时所采用的将客户端版本信息与服务器端版本信息进行比对,不同时更新应用程序的策略。如将客户端已安装的应用程序、插件、公共插件的版本信息与服务器端对应的应用程序、插件、公共插件的版本信息进行比对,将不同版本信息的应用程序、插件、公共插件进行更新。
步骤S202,获取应用程序的待更新插件列表。
将客户端已安装的至少一个插件版本信息与服务器端对应插件的版本信息比对,获取插件版本信息不同的各个插件,得到应用程序的待更新插件列表。
待更新插件列表包括了待更新插件的名称、待更新插件的版本信息、待更新插件保存位置等信息。
步骤S203,根据待更新插件列表,下载最新版本的插件安装文件。
根据待更新插件列表,下载列表中最新版本的插件安装文件。插件安装文件可以为如apk格式安装文件,但该插件安装文件不需要在下载后执行安装过程,可以由应用程序的框架自动进行加载,得到对应的插件,应用程序可以直接对插件进行调用。
步骤S204,从最新版本的插件安装文件中获取该插件的依赖公共插件列表。
步骤S205,根据依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
插件安装文件中还包括了该插件所依赖的公共插件列表,即该插件还需要调用的各个公共插件。插件的依赖公共插件列表根据插件本身的代码逻辑、实现功能等预先确定。
从下载的最新版本的插件安装文件中可以获取到该插件的依赖公共插件列表,依赖公共插件列表可以包括如至少一个公共插件的名称及对应的版本信息等。根据插件的依赖公共插件列表,可以确定该插件所依赖的各个公共插件,以及需要的各个公共插件的具体版本信息。根据插件的依赖公共插件列表,检测是否对客户端的至少一个公共插件进行更新。具体的,将依赖公共插件列表中至少一个公共插件的版本信息与客户端对应的该公共插件的版本信息比对,若不同,则检测需要对客户端已安装的至少一个公共插件进行更新,下载对应版本的公共插件安装文件,从而完成整个应用程序的更新;或者,将依赖公共插件列表中至少一个公共插件的版本信息与客户端对应的该公共插件的版本信息比对,若客户端没有该公共插件的版本信息,即客户端没有安装该公共插件,下载对应版本的公共插件安装文件,从而完成整个应用程序的更新。
公共插件可以根据业务范围进行分类,如UI插件、业务插件、工具插件等公共插件。依赖公共插件列表中可以包括多个公共插件的名称及对应版本信息。根据依赖公共插件列表,对其中所包括的各个公共插件一一进行检测,并根据检测结果下载对应版本的公共插件安装文件,以完成整个应用程序的更新。
进一步,公共插件可以包括公共插件接口,以及,使用公共插件接口的UI插件、业务插件和/或工具插件。公共插件接口是对各种如UI插件、业务插件、工具插件等具体类型的公共插件不同的调用接口做公共接口封装处理后得到的。利用公共插件接口,可以简化插件对各种如UI插件、业务插件、工具插件等具体类型的公共插件的依赖关系,使得插件可以通过公共插件接口来调用具体类型如UI插件、业务插件、工具插件等公共插件,减少了因具体类型如UI插件、业务插件、工具插件等公共插件的接口变化导致插件也需要进行相应变化的工作量。依赖公共插件列表中可以仅列出公共插件接口的名称以及对应的版本信息,根据依赖公共插件列表,对公共插件接口进行检测,并根据检测结果下载对应版本的公共插件安装文件。从公共插件接口对应的公共插件安装文件中可以得到封装依赖列表,封装依赖列表记录了与公共插件接口有封装关系的各种具体类型的公共插件如UI插件、业务插件、工具插件等的名称以及对应的版本信息。之后,可以根据封装依赖列表,对这些公共插件进行检测,并根据检测结果下载对应版本的公共插件安装文件,至此,完成整个应用程序的更新。
根据本发明提供的基于公共插件的应用程序更新方法,接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新;若是,获取应用程序的待更新插件列表;根据待更新插件列表,下载最新版本的插件安装文件;从最新版本的插件安装文件中获取该插件的依赖公共插件列表;根据依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。本发明利用将被调用的公共代码抽取生成公共插件,使得公共代码无冗余,也使得插件与应用程序本身的耦合关系降低,增强了插件以及应用程序本身代码的可维护性。在应用程序更新时,实现动态更新,通过更新插件和插件依赖的公共插件,完成对应用程序的更新。
实施例二
图3示出了根据本发明实施例二的基于公共插件的应用程序更新方法的流程图,如图3所示,基于公共插件的应用程序更新方法包括如下步骤:
步骤S301,接收客户端在执行至少一个插件时发送的应用程序更新检测请求。
考虑具体的业务需求,如插件在执行时,其要求必须调用最新版本的公共插件,在该插件的依赖公共插件列表中除包括至少一个公共插件的名称、对应的版本信息外,还包括了预设更新检测符号。当该插件对某个公共插件的调用需求是必须调用最新版本的该公共插件时,该公共插件需要标记预设更新检测符号。即在该插件的依赖公共插件列表中,该公共插件除名称、对应的版本信息外,还标记有预设更新检测符号。在执行该插件时,当该插件的依赖公共插件列表中包括预设更新检测符号时,客户端发送应用程序更新检测请求。接收到客户端发送该应用程序更新检测请求,该应用程序更新检测请求主要是对标记有预设更新检测符号的公共插件的更新检测请求;或者,在客户端执行该插件调用某一公共插件时,其调用的该公共插件在依赖公共插件列表中标记有预设更新检测符号时,客户端发送应用程序更新检测请求。接收到客户端发送该应用程序更新检测请求,该应用程序更新检测请求主要是对该公共插件的更新检测请求。
步骤S302,根据插件的依赖公共插件列表,检测是否对客户端对应的至少一个公共插件进行更新。
根据插件的依赖公共插件列表中标记有预设更新检测符号的各个公共插件,检测是否对客户端对应的至少一个公共插件进行更新。具体的,将依赖公共插件列表中标记有预设更新检测符号的公共插件的客户端已安装的版本信息与服务器端对应的该公共插件的版本信息进行比对,若不同,则检测需要对客户端已安装的至少一个公共插件进行更新,下载对应版本的公共插件安装文件。
根据本发明提供的基于公共插件的应用程序更新方法,可以满足业务的需求,在执行应用程序的插件执行过程中,可以从服务器端获取最新版本的公共插件,实现插件对最新版本公共插件的调用需求。
实施例三
图4示出了根据本发明实施例三的基于公共插件的应用程序制作方法的流程图,如图4所示,基于公共插件的应用程序制作方法包括如下步骤:
步骤S401,根据插件与公共插件的依赖关系,编写插件的依赖公共插件列表。
步骤S402,根据依赖公共插件列表,将列表中包含的公共插件编译,得到公共插件包文件。
步骤S403,利用公共插件包文件对插件代码进行编译,得到插件安装文件。
根据插件的代码逻辑、应用功能等可以确定其要调用的公共插件,即确定插件与公共插件的依赖关系。根据插件与公共插件的依赖关系,编写插件的依赖公共插件列表。
插件与公共插件的依赖关系可以为一对多,如公共插件按业务范围分类,包括UI插件、业务插件、工具插件等公共插件,插件调用UI插件、业务插件、工具插件等,依赖公共插件列表中包括多个UI插件、业务插件、工具插件等公共插件的名称以及对应的版本信息。或者,插件与公共插件的依赖关系可以为一对一,如公共插件可以包括公共插件接口,以及,使用公共插件接口的UI插件、业务插件和/或工具插件。,插件通过调用公共插件接口,来实现对UI插件、业务插件、工具插件等公共插件的调用,依赖公共插件列表中包括公共插件接口的名称以及对应的版本信息。
进一步,根据具体的业务需求,若插件在执行时,要求必须调用最新版本的公共插件,在依赖公共插件列表中,还可以将还公共插件标记预设更新检测符号。根据预设更新检测符号,可以实现插件在执行时,将客户端已安装公共插件的版本信息与服务器端公共插件的版本信息进行比对,获取服务器端最新版本的公共插件,以便于插件执行时调用最新版本的公共插件。
根据依赖公共插件列表,将列表中包含的一个或对个公共插件编译,得到公共插件包文件,如对列表中包含的一个或多个公共插件编辑得到一个或多个公共插件jar包。再利用公共插件包文件对插件代码进行编译,如将一个或多个公共插件jar包加入至插件代码所在的工程文件中,使得插件代码所在的工程文件可以利用该一个或多个公共插件jar包进行编译,得到插件安装文件。得到的插件安装文件中包含该插件的依赖公共插件列表。需要注意的是,公共插件包文件仅参与插件安装文件的编译过程,而不会被打包入插件安装文件中。
步骤S404,将应用程序代码编译,得到应用程序包文件。
步骤S405,利用应用程序包文件对公共插件代码进行编译,得到公共插件安装文件。
由于公共插件中也可能会使用应用程序的一些代码,因此,先将应用程序代码进行编译,得到应用程序包文件,如得到应用程序jar包。再利用应用程序包文件对公共插件代码进行编译,如将应用程序jar包加入至公共插件代码所在的工程文件中,使得公共插件代码所在的工程文件可以利用应用程序jar包进行编译,得到公共插件安装文件。需要注意的是,应用程序包文件仅参与公共插件安装文件的编译过程,而不会被打包入公共插件安装文件中。
进一步,在制作公共插件安装文件时,对每一个公共插件均制作其对应的一个公共插件安装文件。当公共插件包括公共插件接口,以及,使用公共插件接口的UI插件、业务插件、工具插件等各具体类型的公共插件时,公共插件接口对应的公共插件安装文件中,还包括了封装依赖列表,以便记录与公共插件接口有封装关系的各种具体类型的公共插件如UI插件、业务插件、工具插件等的名称以及对应的版本信息。
步骤S401-S403和步骤S404-S405的顺序可以根据实施情况进行设置,此处对执行顺序不做限定。
根据本发明提供的基于公共插件的应用程序制作方法,将插件依赖的公共代码抽到单独的、专用的公共插件中,当各插件需要调用公共代码时,访问该公共插件即可。进一步,这样处理使得对于公共代码的更新,变为直接更新公共插件。从而解决公共代码冗余、更新维护困难等问题,并且降低了插件与应用程序的耦合性,增加了插件和应用程序中各代码的可维护性,使得对应用程序的更新更加简单、便利。
实施例四
本申请实施例四提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于公共插件的应用程序更新方法。
可执行指令具体可以用于使得处理器执行以下操作:
接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新;
若是,获取应用程序的待更新插件列表;
根据待更新插件列表,下载最新版本的插件安装文件;
从最新版本的插件安装文件中获取该插件的依赖公共插件列表;
根据依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:接收客户端在应用程序启动时发送的应用程序更新检测请求;将客户端已安装的至少一个插件版本信息与服务器端对应插件的版本信息比对,检测是否对客户端已安装的至少一个插件进行更新。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:根据插件的依赖公共插件列表,检测是否对客户端对应的至少一个公共插件进行更新;若是,根据依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
在一种可选的实施方式中,依赖公共插件列表包括至少一个公共插件的名称、对应的版本信息和/或预设更新检测符号;可执行指令进一步使处理器执行以下操作:接收客户端在执行至少一个插件时发送的应用程序更新检测请求;根据插件的依赖公共插件列表,检测是否对客户端对应的至少一个公共插件进行更新;若是,根据依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:根据插件与公共插件的依赖关系,编写插件的依赖公共插件列表;根据依赖公共插件列表,将列表中包含的公共插件编译,得到公共插件包文件;利用公共插件包文件对插件代码进行编译,得到插件安装文件。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:将应用程序代码编译,得到应用程序包文件;利用应用程序包文件对公共插件代码进行编译,得到公共插件安装文件。
在一种可选的实施方式中,公共插件包括公共插件接口,以及,使用公共插件接口的UI插件、业务插件和/或工具插件。
实施例五
图5示出了根据本发明实施例四的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:
处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述基于公共插件的应用程序更新方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。服务器包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行以下操作:
在一种可选的实施方式中,程序510用于使得处理器502接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新;若是,获取应用程序的待更新插件列表;根据待更新插件列表,下载最新版本的插件安装文件;从最新版本的插件安装文件中获取该插件的依赖公共插件列表;根据依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
在一种可选的实施方式中,程序510用于使得处理器502接收客户端在应用程序启动时发送的应用程序更新检测请求;将客户端已安装的至少一个插件版本信息与服务器端对应插件的版本信息比对,检测是否对客户端已安装的至少一个插件进行更新。
在一种可选的实施方式中,程序510用于使得处理器502根据插件的依赖公共插件列表,检测是否对客户端的至少一个公共插件进行更新;若是,根据依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
在一种可选的实施方式中,依赖公共插件列表包括至少一个公共插件的名称、对应的版本信息和/或预设更新检测符号;程序510用于使得处理器502接收客户端在执行至少一个插件时发送的应用程序更新检测请求;根据插件的依赖公共插件列表,检测是否对客户端的至少一个公共插件进行更新;若是,根据依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
在一种可选的实施方式中,程序510用于使得处理器502根据插件与公共插件的依赖关系,编写插件的依赖公共插件列表;根据依赖公共插件列表,将列表中包含的公共插件编译,得到公共插件包文件;利用公共插件包文件对插件代码进行编译,得到插件安装文件。
在一种可选的实施方式中,程序510用于使得处理器502将应用程序代码编译,得到应用程序包文件;利用应用程序包文件对公共插件代码进行编译,得到公共插件安装文件。
在一种可选的实施方式中,公共插件包括公共插件接口,以及,使用公共插件接口的UI插件、业务插件和/或工具插件。
程序510中各步骤的具体实现可以参见上述基于公共插件的应用程序更新实施例中的相应步骤中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本实施例提供的方案,接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新;若是,获取应用程序的待更新插件列表;根据待更新插件列表,下载最新版本的插件安装文件;从最新版本的插件安装文件中获取该插件的依赖公共插件列表;根据依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。本发明利用将被调用的公共代码抽取生成公共插件,使得公共代码无冗余,也使得插件与应用程序本身的耦合关系降低,增强了插件以及应用程序本身代码的可维护性。在应用程序更新时,实现动态更新,通过更新插件和插件依赖的公共插件,完成对应用程序的更新。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:A1.一种基于公共插件的应用程序更新方法,公共插件根据抽取的被调用的公共代码生成;其包括:
接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新;
若是,获取应用程序的待更新插件列表;
根据所述待更新插件列表,下载最新版本的插件安装文件;
从所述最新版本的插件安装文件中获取该插件的依赖公共插件列表;
根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
A2.根据A1所述的方法,其中,所述接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新进一步包括:
接收客户端在应用程序启动时发送的应用程序更新检测请求;
将客户端已安装的至少一个插件版本信息与服务器端对应插件的版本信息比对,检测是否对客户端已安装的至少一个插件进行更新。
A3.根据A1所述的方法,其中,在所述根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新之前,所述方法还包括:
根据所述插件的依赖公共插件列表,检测是否对客户端的至少一个公共插件进行更新;
若是,根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
A4.根据A1所述的方法,其中,所述依赖公共插件列表包括至少一个公共插件的名称、对应的版本信息和/或预设更新检测符号;所述方法还包括:
接收客户端在执行至少一个插件时发送的应用程序更新检测请求;
根据所述插件的依赖公共插件列表,检测是否对客户端的至少一个公共插件进行更新;
若是,根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
A5.根据A1所述的方法,其中,所述方法还包括:
根据插件与公共插件的依赖关系,编写插件的依赖公共插件列表;
根据所述依赖公共插件列表,将列表中包含的公共插件编译,得到公共插件包文件;
利用所述公共插件包文件对插件代码进行编译,得到插件安装文件。
A6.根据A1所述的方法,其中,所述方法还包括:
将应用程序代码编译,得到应用程序包文件;
利用所述应用程序包文件对公共插件代码进行编译,得到公共插件安装文件。
A7.根据A1-A6中任一项所述的方法,其中,所述公共插件包括公共插件接口,以及,使用所述公共插件接口的UI插件、业务插件和/或工具插件。
本发明还公开了:B8.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行以下操作:
接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新;
若是,获取应用程序的待更新插件列表;
根据所述待更新插件列表,下载最新版本的插件安装文件;
从所述最新版本的插件安装文件中获取该插件的依赖公共插件列表;
根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
B9.根据B8所述的电子设备,所述可执行指令进一步使所述处理器执行以下操作:
接收客户端在应用程序启动时发送的应用程序更新检测请求;
将客户端已安装的至少一个插件版本信息与服务器端对应插件的版本信息比对,检测是否对客户端已安装的至少一个插件进行更新。
B10.根据B8所述的电子设备,所述可执行指令进一步使所述处理器执行以下操作:
根据所述插件的依赖公共插件列表,检测是否对客户端的至少一个公共插件进行更新;
若是,根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
B11.根据B8所述的电子设备,所述依赖公共插件列表包括至少一个公共插件的名称、对应的版本信息和/或预设更新检测符号;
所述可执行指令进一步使所述处理器执行以下操作:
接收客户端在执行至少一个插件时发送的应用程序更新检测请求;
根据所述插件的依赖公共插件列表,检测是否对客户端的至少一个公共插件进行更新;
若是,根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
B12.根据B8所述的电子设备,所述可执行指令进一步使所述处理器执行以下操作:
根据插件与公共插件的依赖关系,编写插件的依赖公共插件列表;
根据所述依赖公共插件列表,将列表中包含的公共插件编译,得到公共插件包文件;
利用所述公共插件包文件对插件代码进行编译,得到插件安装文件。
B13.根据B8所述的电子设备,所述可执行指令进一步使所述处理器执行以下操作:
将应用程序代码编译,得到应用程序包文件;
利用所述应用程序包文件对公共插件代码进行编译,得到公共插件安装文件。
B14.根据B8-B13中任一项所述的电子设备,所述公共插件包括公共插件接口,以及,使用所述公共插件接口的UI插件、业务插件和/或工具插件。
本发明还公开了:C15.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行以下操作:
接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新;
若是,获取应用程序的待更新插件列表;
根据所述待更新插件列表,下载最新版本的插件安装文件;
从所述最新版本的插件安装文件中获取该插件的依赖公共插件列表;
根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
C16.根据C15所述的计算机存储介质,所述可执行指令进一步使处理器执行以下操作:
接收客户端在应用程序启动时发送的应用程序更新检测请求;
将客户端已安装的至少一个插件版本信息与服务器端对应插件的版本信息比对,检测是否对客户端已安装的至少一个插件进行更新。
C17.根据C15所述的计算机存储介质,所述可执行指令进一步使处理器执行以下操作:
根据所述插件的依赖公共插件列表,检测是否对客户端的至少一个公共插件进行更新;
若是,根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
C18.根据C15所述的计算机存储介质,所述依赖公共插件列表包括至少一个公共插件的名称、对应的版本信息和/或预设更新检测符号;
所述可执行指令进一步使处理器执行以下操作:
接收客户端在执行至少一个插件时发送的应用程序更新检测请求;
根据所述插件的依赖公共插件列表,检测是否对客户端的至少一个公共插件进行更新;
若是,根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
C19.根据C15所述的计算机存储介质,所述可执行指令进一步使处理器执行以下操作:
根据插件与公共插件的依赖关系,编写插件的依赖公共插件列表;
根据所述依赖公共插件列表,将列表中包含的公共插件编译,得到公共插件包文件;
利用所述公共插件包文件对插件代码进行编译,得到插件安装文件。
C20.根据C15所述的计算机存储介质,所述可执行指令进一步使处理器执行以下操作:
将应用程序代码编译,得到应用程序包文件;
利用所述应用程序包文件对公共插件代码进行编译,得到公共插件安装文件。
C21.根据C15-C20中任一项所述的计算机存储介质,所述公共插件包括公共插件接口,以及,使用所述公共插件接口的UI插件、业务插件和/或工具插件。
Claims (10)
1.一种基于公共插件的应用程序更新方法,公共插件根据抽取的被调用的公共代码生成;其包括:
接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新;
若是,获取应用程序的待更新插件列表;
根据所述待更新插件列表,下载最新版本的插件安装文件;
从所述最新版本的插件安装文件中获取该插件的依赖公共插件列表;
根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
2.根据权利要求1所述的方法,其中,所述接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新进一步包括:
接收客户端在应用程序启动时发送的应用程序更新检测请求;
将客户端已安装的至少一个插件版本信息与服务器端对应插件的版本信息比对,检测是否对客户端已安装的至少一个插件进行更新。
3.根据权利要求1所述的方法,其中,在所述根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新之前,所述方法还包括:
根据所述插件的依赖公共插件列表,检测是否对客户端的至少一个公共插件进行更新;
若是,根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
4.根据权利要求1所述的方法,其中,所述依赖公共插件列表包括至少一个公共插件的名称、对应的版本信息和/或预设更新检测符号;所述方法还包括:
接收客户端在执行至少一个插件时发送的应用程序更新检测请求;
根据所述插件的依赖公共插件列表,检测是否对客户端的至少一个公共插件进行更新;
若是,根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
5.根据权利要求1所述的方法,其中,所述方法还包括:
根据插件与公共插件的依赖关系,编写插件的依赖公共插件列表;
根据所述依赖公共插件列表,将列表中包含的公共插件编译,得到公共插件包文件;
利用所述公共插件包文件对插件代码进行编译,得到插件安装文件。
6.根据权利要求1所述的方法,其中,所述方法还包括:
将应用程序代码编译,得到应用程序包文件;
利用所述应用程序包文件对公共插件代码进行编译,得到公共插件安装文件。
7.根据权利要求1-6中任一项所述的方法,其中,所述公共插件包括公共插件接口,以及,使用所述公共插件接口的UI插件、业务插件和/或工具插件。
8.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行以下操作:
接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新;
若是,获取应用程序的待更新插件列表;
根据所述待更新插件列表,下载最新版本的插件安装文件;
从所述最新版本的插件安装文件中获取该插件的依赖公共插件列表;
根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
9.根据权利要求8所述的电子设备,所述可执行指令进一步使所述处理器执行以下操作:
接收客户端在应用程序启动时发送的应用程序更新检测请求;
将客户端已安装的至少一个插件版本信息与服务器端对应插件的版本信息比对,检测是否对客户端已安装的至少一个插件进行更新。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行以下操作:
接收客户端发送的应用程序更新检测请求,检测是否对客户端已安装的应用程序进行更新;
若是,获取应用程序的待更新插件列表;
根据所述待更新插件列表,下载最新版本的插件安装文件;
从所述最新版本的插件安装文件中获取该插件的依赖公共插件列表;
根据所述依赖公共插件列表,下载对应版本的公共插件安装文件,以完成应用程序的更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711441870.2A CN108037941B (zh) | 2017-12-27 | 2017-12-27 | 基于公共插件的应用程序更新方法、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711441870.2A CN108037941B (zh) | 2017-12-27 | 2017-12-27 | 基于公共插件的应用程序更新方法、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108037941A true CN108037941A (zh) | 2018-05-15 |
CN108037941B CN108037941B (zh) | 2018-10-23 |
Family
ID=62097876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711441870.2A Active CN108037941B (zh) | 2017-12-27 | 2017-12-27 | 基于公共插件的应用程序更新方法、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108037941B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829419A (zh) * | 2018-06-07 | 2018-11-16 | 安徽鼎龙网络传媒有限公司 | 一种微场景管理后台手机商城的插件更新与自测*** |
CN110543324A (zh) * | 2019-08-27 | 2019-12-06 | 贝壳技术有限公司 | 一种应用程序的插件增量更新方法及装置 |
CN112698858A (zh) * | 2021-01-13 | 2021-04-23 | 郑州阿帕斯数云信息科技有限公司 | 一种插件更新方法、装置和*** |
CN112988195A (zh) * | 2021-03-31 | 2021-06-18 | 湖北亿咖通科技有限公司 | 终端设备的应用程序更新方法 |
CN113094280A (zh) * | 2021-04-27 | 2021-07-09 | 杭州天谷信息科技有限公司 | 升级方法、***、可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915247A (zh) * | 2012-08-31 | 2013-02-06 | 杭州斯凯网络科技有限公司 | Apk插件化管理方法 |
CN103795740A (zh) * | 2012-10-29 | 2014-05-14 | 腾讯科技(深圳)有限公司 | 插件安装包的下载方法及下载终端 |
CN104731625A (zh) * | 2015-03-27 | 2015-06-24 | 北京奇虎科技有限公司 | 一种加载插件的方法、装置和移动终端 |
CN106909409A (zh) * | 2015-12-23 | 2017-06-30 | 北京奇虎科技有限公司 | 一种运行应用程序的apk插件的方法及装置 |
CN107273142A (zh) * | 2017-07-12 | 2017-10-20 | 北京潘达互娱科技有限公司 | 程序更新方法、程序运行方法及装置 |
-
2017
- 2017-12-27 CN CN201711441870.2A patent/CN108037941B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915247A (zh) * | 2012-08-31 | 2013-02-06 | 杭州斯凯网络科技有限公司 | Apk插件化管理方法 |
CN103795740A (zh) * | 2012-10-29 | 2014-05-14 | 腾讯科技(深圳)有限公司 | 插件安装包的下载方法及下载终端 |
CN104731625A (zh) * | 2015-03-27 | 2015-06-24 | 北京奇虎科技有限公司 | 一种加载插件的方法、装置和移动终端 |
CN106909409A (zh) * | 2015-12-23 | 2017-06-30 | 北京奇虎科技有限公司 | 一种运行应用程序的apk插件的方法及装置 |
CN107273142A (zh) * | 2017-07-12 | 2017-10-20 | 北京潘达互娱科技有限公司 | 程序更新方法、程序运行方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829419A (zh) * | 2018-06-07 | 2018-11-16 | 安徽鼎龙网络传媒有限公司 | 一种微场景管理后台手机商城的插件更新与自测*** |
CN110543324A (zh) * | 2019-08-27 | 2019-12-06 | 贝壳技术有限公司 | 一种应用程序的插件增量更新方法及装置 |
CN110543324B (zh) * | 2019-08-27 | 2024-02-23 | 贝壳技术有限公司 | 一种应用程序的插件增量更新方法及装置 |
CN112698858A (zh) * | 2021-01-13 | 2021-04-23 | 郑州阿帕斯数云信息科技有限公司 | 一种插件更新方法、装置和*** |
CN112698858B (zh) * | 2021-01-13 | 2023-02-07 | 郑州阿帕斯数云信息科技有限公司 | 一种插件更新方法、装置和*** |
CN112988195A (zh) * | 2021-03-31 | 2021-06-18 | 湖北亿咖通科技有限公司 | 终端设备的应用程序更新方法 |
CN112988195B (zh) * | 2021-03-31 | 2023-03-14 | 亿咖通(湖北)技术有限公司 | 终端设备的应用程序更新方法 |
CN113094280A (zh) * | 2021-04-27 | 2021-07-09 | 杭州天谷信息科技有限公司 | 升级方法、***、可读存储介质 |
CN113094280B (zh) * | 2021-04-27 | 2023-07-25 | 杭州天谷信息科技有限公司 | 升级方法、***、可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108037941B (zh) | 2018-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108037941A (zh) | 基于公共插件的应用程序更新方法、电子设备、存储介质 | |
CN106775723B (zh) | 基于Android平台的***固件定制的方法和Android设备 | |
CN105511911B (zh) | ***固件升级包的生成方法及装置 | |
US10268570B2 (en) | Methods, systems, and computer readable media for automated generation of test files and testing network equipment using same | |
CN111381858B (zh) | 一种应用程序升级方法、服务器及终端设备 | |
CN106610853A (zh) | 一种应用部署方法和装置 | |
CN111061643B (zh) | Sdk集群的兼容性检测方法、装置、电子设备及存储介质 | |
WO2015070777A1 (zh) | 软件升级方法、客户端、服务器及***、存储介质 | |
CN105760184A (zh) | 一种加载组件的方法和装置 | |
CN103677898A (zh) | 服务器侧审核加载的扩展和/或插件的方法及服务器 | |
CN103970659A (zh) | 基于插桩技术的安卓应用软件自动化测试方法 | |
US10248409B1 (en) | Limiting the effects of source code patches on corresponding native-code patches | |
CN107025108B (zh) | 从源代码管理(scm)***将分级数据导出到产品生命周期管理(plm)*** | |
CN107844313B (zh) | 一种Android中SDK版本升级方法及装置 | |
CN103761095B (zh) | 一种生成通用的升级文件头部数据信息的方法 | |
US20130055217A1 (en) | Breakpoint synchronization for modified program source code | |
CN110083379A (zh) | 一种服务器部件升级方法及相关装置 | |
CN104133699A (zh) | 设备***软件升级方法与*** | |
CN108351790B (zh) | 用于期望状态配置的非单调最终收敛的设备、方法和介质 | |
CN107169000A (zh) | 静态资源发布方法及装置 | |
CN107621963A (zh) | 一种软件部署方法、软件部署***及电子设备 | |
CN104881311A (zh) | 一种版本兼容的判断方法及装置 | |
CN110543427B (zh) | 测试用例存储方法、装置、电子设备及存储介质 | |
CN108197020A (zh) | 插件校验方法、电子设备及计算机存储介质 | |
CN104598382A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220824 Address after: 518054-13098, 13th floor, main tower of marine center, No. 59, Linhai Avenue, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong Patentee after: Shenzhen ZhangYue Animation Technology Co.,Ltd. Address before: 100124 2029e, Sihui building, Chaoyang District, Beijing Patentee before: ZHANGYUE TECHNOLOGY Co.,Ltd. |