CN106325923A - 功能插件的管理方法及装置 - Google Patents
功能插件的管理方法及装置 Download PDFInfo
- Publication number
- CN106325923A CN106325923A CN201610681270.2A CN201610681270A CN106325923A CN 106325923 A CN106325923 A CN 106325923A CN 201610681270 A CN201610681270 A CN 201610681270A CN 106325923 A CN106325923 A CN 106325923A
- Authority
- CN
- China
- Prior art keywords
- unit
- function plug
- new function
- feature card
- 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.)
- Pending
Links
Classifications
-
- 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
-
- 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
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)
Abstract
本发明提供了一种功能插件的管理方法及装置。该方法包括:在应用程序中建立用于提供功能插件的入口的工具箱;当接收到云端下发的多个新功能插件的相关信息时,由所述工具箱增加各个新功能插件的入口;当接收到来自用户的对所述各个新功能插件的入口的触发操作时,根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件。本发明实施例可以不升级应用程序而增加新功能,解决了相关技术中需要升级应用程序来使用新功能,节约了系统资源,避免频繁升级骚扰到用户。
Description
技术领域
本发明涉及互联网应用技术领域,特别是一种功能插件的管理方法及装置。
背景技术
移动互联网经历了从电信增值到WAP网站兴起,再到后来原生APP(Application,应用程序)为主的发展过程。APP是基于移动终端(如智能手机、平板电脑等)的操作系统安装后能独立运行的可执行程序,能够由用户安装、卸载,运行执行用户任务,然后退出。随着移动终端的发展和普及,原生移动APP已成为移动互联网的主流表现形式。
目前,当开发人员实现移动终端的某个新功能后,如果用户想要使用,就需要下载或升级新的APP,在安装新的APP后使用该功能,操作步骤繁琐,并且频繁升级会骚扰到用户。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的功能插件的管理方法及相应的装置。
依据本发明的一方面,提供了一种功能插件的管理方法,包括:
在应用程序中建立用于提供功能插件的入口的工具箱;
当接收到云端下发的多个新功能插件的相关信息时,由所述工具箱增加各个新功能插件的入口;
当接收到来自用户的对所述各个新功能插件的入口的触发操作时,根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件。
可选地,所述新功能插件的相关信息包括:所述新功能插件的标识及对应的目标启动进程的标识;
根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件,包括:
根据所述各个新功能插件的标识及对应的目标启动进程的标识,在所述应用程序的所述目标启动进程中启用所述各个新功能插件。
可选地,根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件之前,所述方法还包括:
判断是否已下载所述各个新功能插件;
若已下载所述各个新功能插件,则执行启用操作;
若未下载所述各个新功能插件,则下载所述各个新功能插件,并在下载完成之后执行启用操作。
可选地,所述方法还包括:
在所述应用程序中建立功能插件管理器,其中,所述功能插件管理器中设置有启用功能配置文件,用于存储已经启用的功能插件的标识及对应的启动进程的标识。
可选地,所述方法还包括:
当重新启动所述应用程序时,启动所述功能插件管理器,并确定一个或多个当前启动进程;
读取所述功能插件管理器中设置的所述启用功能配置文件,在所述启用功能配置文件中查找各个当前启动进程对应的功能插件;
在所述各个当前启动进程中启动对应的功能插件。
可选地,所述方法还包括:
由所述功能插件管理器接收功能插件提供的表示启用功能插件的接口函数以及表示停止使用功能插件的接口函数,并存储。
可选地,所述方法还包括:
当接收到来自用户的停止使用目标功能插件的指令时,从所述启用功能配置文件中删除所述目标功能插件的标识。
可选地,从所述启用功能配置文件中删除所述目标功能插件的标识,包括:
由所述功能插件管理器调用所述目标功能插件的表示停止使用所述目标功能插件的接口函数,由所述接口函数从所述启用功能配置文件中删除所述目标功能插件的标识。
可选地,所述方法还包括:
当接收到来自用户的启用目标功能插件的指令时,将所述目标功能插件的标识及对应的目标启动进程的标识添加至所述启用功能配置文件中。
可选地,将所述目标功能插件的标识及对应的目标启动进程的标识添加至所述启用功能配置文件中,包括:
由所述功能插件管理器调用所述目标功能插件的表示启用所述目标功能插件的接口函数,由所述接口函数将所述目标功能插件的标识及对应的目标启动进程的标识添加至所述启用功能配置文件中。
可选地,由所述工具箱增加各个新功能插件的入口,包括:
由所述工具箱获取各个新功能插件的界面组件,基于获取的所述各个新功能插件的界面组件增加所述各个新功能插件的入口。
可选地,在所述应用程序中启用所述各个新功能插件之前,所述方法还包括:
加载所述各个新功能插件。
可选地,加载所述各个新功能插件,包括:
将功能插件加载事件拆分为独立的至少一个加载阶段,其中,各个加载阶段对应不同的功能插件内容;
当接收到功能插件加载的请求时,确定所述请求对应的目标加载阶段;
加载所述目标加载阶段对应的功能插件内容。
可选地,所述至少一个加载阶段包括下列至少之一:
功能插件信息的获取、功能插件资源的加载、功能插件代码的加载。
依据本发明的另一方面,还提供了一种功能插件的管理装置,包括:
工具箱建立模块,适于在应用程序中建立用于提供功能插件的入口的工具箱;
入口增加模块,适于当接收到云端下发的多个新功能插件的相关信息时,由所述工具箱增加各个新功能插件的入口;
启用模块,适于当接收到来自用户的对所述各个新功能插件的入口的触发操作时,根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件。
可选地,所述新功能插件的相关信息包括:所述新功能插件的标识及对应的目标启动进程的标识;
所述启用模块还适于:根据所述各个新功能插件的标识及对应的目标启动进程的标识,在所述应用程序的所述目标启动进程中启用所述各个新功能插件。
可选地,所述装置还包括:
下载模块,适于在所述启用模块根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件之前,判断是否已下载所述各个新功能插件;
若已下载所述各个新功能插件,则执行启用操作;
若未下载所述各个新功能插件,则下载所述各个新功能插件,并在下载完成之后执行启用操作。
可选地,所述装置还包括:
功能插件管理器建立模块,适于在所述应用程序中建立功能插件管理器,其中,所述功能插件管理器中设置有启用功能配置文件,用于存储已经启用的功能插件的标识及对应的启动进程的标识。
可选地,所述启用模块还适于:
当重新启动所述应用程序时,启动所述功能插件管理器,并确定一个或多个当前启动进程;
读取所述功能插件管理器中设置的所述启用功能配置文件,在所述启用功能配置文件中查找各个当前启动进程对应的功能插件;
在所述各个当前启动进程中启动对应的功能插件。
可选地,所述功能插件管理器建立模块还适于:
由所述功能插件管理器接收功能插件提供的表示启用功能插件的接口函数以及表示停止使用功能插件的接口函数,并存储。
可选地,所述装置还包括:
删除模块,适于当接收到来自用户的停止使用目标功能插件的指令时,从所述启用功能配置文件中删除所述目标功能插件的标识。
可选地,所述删除模块还适于:
由所述功能插件管理器调用所述目标功能插件的表示停止使用所述目标功能插件的接口函数,由所述接口函数从所述启用功能配置文件中删除所述目标功能插件的标识。
可选地,所述装置还包括:
添加模块,适于当接收到来自用户的启用目标功能插件的指令时,将所述目标功能插件的标识及对应的目标启动进程的标识添加至所述启用功能配置文件中。
可选地,所述添加模块还适于:
由所述功能插件管理器调用所述目标功能插件的表示启用所述目标功能插件的接口函数,由所述接口函数将所述目标功能插件的标识及对应的目标启动进程的标识添加至所述启用功能配置文件中。
可选地,所述入口增加模块还适于:
由所述工具箱获取各个新功能插件的界面组件,基于获取的所述各个新功能插件的界面组件增加所述各个新功能插件的入口。
可选地,所述装置还包括:
加载模块,适于所述启用模块在所述应用程序中启用所述各个新功能插件之前,加载所述各个新功能插件。
可选地,所述加载模块还适于:
将功能插件加载事件拆分为独立的至少一个加载阶段,其中,各个加载阶段对应不同的功能插件内容;
当接收到功能插件加载的请求时,确定所述请求对应的目标加载阶段;
加载所述目标加载阶段对应的功能插件内容。
可选地,所述至少一个加载阶段包括下列至少之一:
功能插件信息的获取、功能插件资源的加载、功能插件代码的加载。
在本发明实施例中,首先在应用程序中建立用于提供功能插件的入口的工具箱,当接收到云端下发的多个新功能插件的相关信息时,由该工具箱增加各个新功能插件的入口。进而,当接收到来自用户的对各个新功能插件的入口的触发操作时,根据各个新功能插件的相关信息,在应用程序中启用各个新功能插件。由此可见,本发明实施例可以不升级应用程序而增加新功能,解决了相关技术中需要升级应用程序来使用新功能,节约了系统资源,避免频繁升级骚扰到用户。
进一步地,本发明实施例能够指定新功能在进程中随时启动或停止,可以指定在前台临时运行,也可以指定后台长期运行而不必升级程序。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的功能插件的管理方法的流程图;
图2示出了根据本发明另一个实施例的功能插件的管理方法的流程图;
图3示出了根据本发明又一个实施例的功能插件的管理方法的流程图;
图4示出了根据本发明一个实施例的功能插件的管理装置的结构示意图;以及
图5示出了根据本发明另一个实施例的功能插件的管理装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为解决上述技术问题,本发明实施例提供了一种功能插件的管理方法。图1示出了根据本发明一个实施例的功能插件的管理方法的流程图。参见图1,该方法至少可以包括步骤S102至步骤S106。
步骤S102,在应用程序中建立用于提供功能插件的入口的工具箱。
步骤S104,当接收到云端下发的多个新功能插件的相关信息时,由该工具箱增加各个新功能插件的入口。
步骤S106,当接收到来自用户的对各个新功能插件的入口的触发操作时,根据各个新功能插件的相关信息,在应用程序中启用各个新功能插件。
在本发明实施例中,首先在应用程序中建立用于提供功能插件的入口的工具箱,当接收到云端下发的多个新功能插件的相关信息时,由该工具箱增加各个新功能插件的入口。进而,当接收到来自用户的对各个新功能插件的入口的触发操作时,根据各个新功能插件的相关信息,在应用程序中启用各个新功能插件。由此可见,本发明实施例可以不升级应用程序而增加新功能,解决了相关技术中需要升级应用程序来使用新功能,节约了系统资源,避免频繁升级骚扰到用户。
上文步骤S102中提及的应用程序,即APP,是基于移动终端的操作系统安装后能独立运行的可执行程序,能够由用户安装、卸载,运行执行用户任务,然后退出。功能插件是实现了某个新功能的一个可执行程序段,其可以对外提供接口,根据接口被调用以备随时启动或停止。功能插件也可以以常规程序的方式提供界面组件给工具箱调用,从而,在步骤S104中,可以由工具箱获取各个新功能插件的界面组件,基于获取的各个新功能插件的界面组件增加各个新功能插件的入口。
在本发明的可选实施例中,在应用程序中建立的用于提供功能插件的入口的工具箱,可以是一个动态可任意扩展的网格型或列表型界面,每个网格或列表可以根据云端配置增加而变成新功能插件的入口。例如,用户点击此网格或列表可以打开新功能的界面,即如上文步骤S106中,当接收到来自用户的对各个新功能插件的入口的点击操作时,可以根据各个新功能插件的相关信息,在应用程序中启用各个新功能插件。
在本发明的可选实施例中,可以预先定义工具箱云控协议,即,可以是一个文本配置文件,包括n组新功能插件,每一组功能插件有以下字段:
Name:功能插件名称,程序内部使用来唯一识别某功能;
UiName:在工具箱中展示给用户的名称;
UiTip:在工具箱中展示给用户的功能简介。
除了上述字段之外,配置文件中还配置了新功能插件的标识(如新功能插件名称等)及其对应的目标启动进程的标识,即步骤S106中提及的新功能插件的相关信息至少可以包括:新功能插件的标识及对应的目标启动进程的标识,那么步骤S106的执行方式,本发明提供了一种可选的方案,即,根据各个新功能插件的标识及对应的目标启动进程的标识,在应用程序的目标启动进程中启用各个新功能插件。例如,新功能插件A,其对应的目标启动进程为进程1,则在应用程序的进程1中启用该新功能插件A。
在本发明的可选实施例中,在步骤S106根据各个新功能插件的相关信息,在应用程序中启用各个新功能插件之前,还可以判断是否已下载各个新功能插件;若已下载各个新功能插件,则执行启用操作;反之,若未下载各个新功能插件,则下载各个新功能插件,并在下载完成之后执行启用操作。
在本发明的可选实施例中,为了能够指定新功能在进程中随时启动或停止,本发明实施例还可以在应用程序中建立功能插件管理器(简称为psc),psc实现的控制中心,它实现了自动识别新功能插件,并按用户要求启用或停止某一个新功能插件。
psc中设置有启用功能配置文件,用于存储已经启用的功能插件的标识及对应的启动进程的标识。每次应用程序重启,启动psc后,psc内部读取启用功能配置文件来启动对应的功能插件。即,当重新启动应用程序时,启动功能插件管理器,并确定一个或多个当前启动进程;随后,读取功能插件管理器中设置的启用功能配置文件,在启用功能配置文件中查找各个当前启动进程对应的功能插件;进而,在各个当前启动进程中启动对应的功能插件。
如上文提及,功能插件对外提供接口,根据接口被调用以备随时启动或停止,那么本发明实施例可以由功能插件管理器接收功能插件提供的表示启用功能插件的接口函数以及表示停止使用功能插件的接口函数,并存储。下面将分别介绍调用相应的接口函数来启动或停止功能插件。
情况一,当接收到来自用户的停止使用目标功能插件的指令时,从启用功能配置文件中删除该目标功能插件的标识。即,可以由功能插件管理器调用目标功能插件的表示停止使用目标功能插件的接口函数,由该接口函数从启用功能配置文件中删除目标功能插件的标识。
情况二,当接收到来自用户的启用目标功能插件的指令时,将目标功能插件的标识及对应的目标启动进程的标识添加至启用功能配置文件中。即,可以由功能插件管理器调用目标功能插件的表示启用目标功能插件的接口函数,由该接口函数将目标功能插件的标识及对应的目标启动进程的标识添加至启用功能配置文件中。
在本发明的可选实施例中,功能插件调用psc服务接口协议如下:
这个接口实现在psc中,当用户在工具箱中打开某个功能插件后,如果选择将来需要继续执行在指定进程(如在常驻进程中作为一个服务存在)中则向psc查询并调用此接口的start方法,psc将此功能插件的标识及目标启用进程的标识保存到psc启用功能配置文件中,以备下次重启时再次启动此功能插件;当用户需要停止某一功能插件使用时,则向psc查询并调用此接口的stop方法,psc从保存的psc启用功能配置文件中删除相应的启用项,下次就不再启用此功能插件了。
在本发明的可选实施例中,psc调用功能插件接口协议如下:
这个接口实现在功能插件上,每个进程重启后psc将对每一个用户启用的对应功能插件查询并调用此接口的onStart方法;当用户要停止此功能插件使用时,psc在已经激活的功能插件中调用此接口的onStop方法,并从psc启用功能配置文件中删除相应的启用项,下次就不再启用此功能插件了。
在本发明的可选实施例中,在步骤S106在应用程序中启用各个新功能插件之前,还可以加载各个新功能插件。
为了实现按需加载,本发明实施例可以对功能插件的加载做分阶段处理,即,将功能插件加载事件拆分为独立的至少一个加载阶段,其中,各个加载阶段对应不同的功能插件内容。当接收到功能插件加载的请求时,确定请求对应的目标加载阶段,进而加载目标加载阶段对应的功能插件内容。从而,只需加载目标加载阶段的那部分插件内容,其余的均无需加载,可以节省大量无用内容的加载时间,减小内存占用。
这里,至少一个加载阶段可以包括功能插件信息的获取(即Info)、功能插件资源的加载(即Res)、功能插件代码的加载(即Dex)。在实际应用中,Info是最小单元,若要加载Res,则必须先加载Info;若要加载Dex,则必须先依次加载Info和Res。举例来说,外界调用load进行功能插件加载,TYPE表示要加载到哪个阶段(Info、Res和Dex)。同时调用loadInfo先进行Info的加载。loadInfo成功且TYPE为Info,表示只为加载Info,返回;loadRes成功且TYPE为Res,表示只为加载Info和Res,返回;loadDex成功且TYPE为Dex,表示需全部加载,直接返回。
以上介绍了图1所示的实施例中各环节的多种实现方式,下面通过几个具体实施例来详细介绍本发明的功能插件的管理方法的实现过程。在这些实施例中,首先在应用程序(APP)中建立功能插件管理器(psc)以及用于提供功能插件的入口的工具箱。
图2示出了根据本发明另一个实施例的功能插件的管理方法的流程图。参见图2,该方法至少可以包括步骤S202至步骤S212。
步骤S202,启动APP。
在该步骤中,APP可以是各种应用程序,如手机卫士、杀毒等,本发明对此不作限制。
步骤S204,接收云端下发的多个新功能插件的标识及对应的目标启动进程的标识。
在该步骤中,例如新功能插件A,其对应的目标启动进程为进程1;新功能插件B,其对应的目标启动进程为进程1、进程2,等等。
步骤S206,由工具箱增加各个新功能插件的入口。
在该步骤中,工具箱可以是一个动态可任意扩展的网格型或列表型界面,每个网格或列表可以根据云端配置增加而变成新功能插件的入口。
步骤S208,当接收到来自用户的对各个新功能插件的入口的触发操作时,判断是否已下载各个新功能插件,若否,则执行步骤S210;若是,则执行步骤S212。
步骤S210,下载各个新功能插件,并在下载完成之后继续执行步骤S212。
步骤S212,根据各个新功能插件的标识及对应的目标启动进程的标识,在应用程序的目标启动进程中启用各个新功能插件。
本发明实施例可以不升级应用程序而增加新功能,解决了相关技术中需要升级应用程序来使用新功能,节约了系统资源,避免频繁升级骚扰到用户。
步骤S202至步骤S212中提及了各个新功能插件,在下面的实施例中不妨以新功能插件A为例,图3示出了根据本发明又一个实施例的功能插件的管理方法的流程图。参见图3,该方法至少可以包括步骤S302至步骤S312。
步骤S302,启动APP。
步骤S304,接收云端配置新功能插件A到进程1中运行。
步骤S306,由工具箱增加新功能插件A的入口。
在该步骤中,工具箱可以是一个动态可任意扩展的网格型或列表型界面,每个网格或列表可以根据云端配置增加而变成新功能插件A的入口。
步骤S308,当接收到来自用户的对新功能插件A的入口的点击操作时,判断是否已下载新功能插件A,若否,则执行步骤S310;若是,则执行步骤S312。
步骤S310,下载新功能插件A,并在下载完成之后继续执行步骤S312。
步骤S312,在前台启用新功能插件A。
在该步骤中,可以首先加载新功能插件A,在加载新功能插件A可以按需加载,将功能插件加载事件拆分为独立的至少一个加载阶段,可以包括功能插件信息的获取(即Info)、功能插件资源的加载(即Res)、功能插件代码的加载(即Dex)。在实际应用中,Info是最小单元,若要加载Res,则必须先加载Info;若要加载Dex,则必须先依次加载Info和Res。举例来说,外界调用load进行功能插件加载,TYPE表示要加载到哪个阶段(Info、Res和Dex)。同时调用loadInfo先进行Info的加载。loadInfo成功且TYPE为Info,表示只为加载Info,返回;loadRes成功且TYPE为Res,表示只为加载Info和Res,返回;loadDex成功且TYPE为Dex,表示需全部加载,直接返回。
在本发明的可选实施例中,在应用程序中建立的功能插件管理器(psc)能够实现自动识别新功能插件,并按用户要求启用或停止某一个新功能插件。那么在步骤S312之后,可以由psc调用功能插件A的接口函数来启动或停止功能插件A。即,当接收到来自用户的启用功能插件A的指令时,将功能插件A的标识及对应的进程1的标识添加至启用功能配置文件中,这里可以由psc调用功能插件A的表示启用功能插件A的接口函数,由该接口函数将功能插件A的标识及对应的进程1的标识添加至启用功能配置文件中。
当接收到来自用户的停止使用功能插件A的指令时,从启用功能配置文件中删除该功能插件A的标识。即,可以由psc调用功能插件A的表示停止使用功能插件A的接口函数,由该接口函数从启用功能配置文件中删除功能插件A的标识。
需要说明的是,实际应用中,上述所有可选实施方式可以采用结合的方式任意组合,形成本发明的可选实施例,在此不再一一赘述。
基于同一发明构思,本发明实施例还提供了一种功能插件的管理装置。图4示出了根据本发明一个实施例的功能插件的管理装置的结构示意图。如图4所示,该装置至少可以包括:工具箱建立模块410、入口增加模块420以及启用模块430。
现介绍本发明实施例的功能插件的管理装置的各组成或器件的功能以及各部分间的连接关系:
工具箱建立模块410,适于在应用程序中建立用于提供功能插件的入口的工具箱;
入口增加模块420,与工具箱建立模块410相耦合,适于当接收到云端下发的多个新功能插件的相关信息时,由所述工具箱增加各个新功能插件的入口;
启用模块430,与入口增加模块420相耦合,适于当接收到来自用户的对所述各个新功能插件的入口的触发操作时,根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件。
在本发明一实施例中,所述新功能插件的相关信息包括:所述新功能插件的标识及对应的目标启动进程的标识;
所述启用模块430还适于:根据所述各个新功能插件的标识及对应的目标启动进程的标识,在所述应用程序的所述目标启动进程中启用所述各个新功能插件。
在本发明一实施例中,如图5所示,上文图4展示的装置还可以包括:
下载模块440,与启用模块430相耦合,适于在所述启用模块430根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件之前,判断是否已下载所述各个新功能插件;
若已下载所述各个新功能插件,则执行启用操作;
若未下载所述各个新功能插件,则下载所述各个新功能插件,并在下载完成之后执行启用操作。
在本发明一实施例中,如图5所示,上文图4展示的装置还可以包括:
功能插件管理器建立模块450,与启用模块430相耦合,适于在所述应用程序中建立功能插件管理器,其中,所述功能插件管理器中设置有启用功能配置文件,用于存储已经启用的功能插件的标识及对应的启动进程的标识。
在本发明一实施例中,所述启用模块430还适于:
当重新启动所述应用程序时,启动所述功能插件管理器,并确定一个或多个当前启动进程;
读取所述功能插件管理器中设置的所述启用功能配置文件,在所述启用功能配置文件中查找各个当前启动进程对应的功能插件;
在所述各个当前启动进程中启动对应的功能插件。
在本发明一实施例中,所述功能插件管理器建立模块450还适于:
由所述功能插件管理器接收功能插件提供的表示启用功能插件的接口函数以及表示停止使用功能插件的接口函数,并存储。
在本发明一实施例中,如图5所示,上文图4展示的装置还可以包括:
删除模块460,与功能插件管理器建立模块450相耦合,适于当接收到来自用户的停止使用目标功能插件的指令时,从所述启用功能配置文件中删除所述目标功能插件的标识。
在本发明一实施例中,所述删除模块460还适于:
由所述功能插件管理器调用所述目标功能插件的表示停止使用所述目标功能插件的接口函数,由所述接口函数从所述启用功能配置文件中删除所述目标功能插件的标识。
在本发明一实施例中,如图5所示,上文图4展示的装置还可以包括:
添加模块470,与功能插件管理器建立模块450相耦合,适于当接收到来自用户的启用目标功能插件的指令时,将所述目标功能插件的标识及对应的目标启动进程的标识添加至所述启用功能配置文件中。
在本发明一实施例中,所述添加模块470还适于:
由所述功能插件管理器调用所述目标功能插件的表示启用所述目标功能插件的接口函数,由所述接口函数将所述目标功能插件的标识及对应的目标启动进程的标识添加至所述启用功能配置文件中。
在本发明一实施例中,所述入口增加模块420还适于:
由所述工具箱获取各个新功能插件的界面组件,基于获取的所述各个新功能插件的界面组件增加所述各个新功能插件的入口。
在本发明一实施例中,如图5所示,上文图4展示的装置还可以包括:
加载模块480,与启用模块430相耦合,适于所述启用模块430在所述应用程序中启用所述各个新功能插件之前,加载所述各个新功能插件。
在本发明一实施例中,所述加载模块480还适于:
将功能插件加载事件拆分为独立的至少一个加载阶段,其中,各个加载阶段对应不同的功能插件内容;
当接收到功能插件加载的请求时,确定所述请求对应的目标加载阶段;
加载所述目标加载阶段对应的功能插件内容。
在本发明一实施例中,所述至少一个加载阶段包括下列至少之一:
功能插件信息的获取、功能插件资源的加载、功能插件代码的加载。
根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:
在本发明实施例中,首先在应用程序中建立用于提供功能插件的入口的工具箱,当接收到云端下发的多个新功能插件的相关信息时,由该工具箱增加各个新功能插件的入口。进而,当接收到来自用户的对各个新功能插件的入口的触发操作时,根据各个新功能插件的相关信息,在应用程序中启用各个新功能插件。由此可见,本发明实施例可以不升级应用程序而增加新功能,解决了相关技术中需要升级应用程序来使用新功能,节约了系统资源,避免频繁升级骚扰到用户。
进一步地,本发明实施例能够指定新功能在进程中随时启动或停止,可以指定在前台临时运行,也可以指定后台长期运行而不必升级程序。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的功能插件的管理装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
本发明实施例的一方面,提供了A1、一种功能插件的管理方法,包括:
在应用程序中建立用于提供功能插件的入口的工具箱;
当接收到云端下发的多个新功能插件的相关信息时,由所述工具箱增加各个新功能插件的入口;
当接收到来自用户的对所述各个新功能插件的入口的触发操作时,根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件。
A2、根据A1所述的方法,其中,
所述新功能插件的相关信息包括:所述新功能插件的标识及对应的目标启动进程的标识;
根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件,包括:
根据所述各个新功能插件的标识及对应的目标启动进程的标识,在所述应用程序的所述目标启动进程中启用所述各个新功能插件。
A3、根据A1或A2所述的方法,其中,根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件之前,所述方法还包括:
判断是否已下载所述各个新功能插件;
若已下载所述各个新功能插件,则执行启用操作;
若未下载所述各个新功能插件,则下载所述各个新功能插件,并在下载完成之后执行启用操作。
A4、根据A1-A3中任一项所述的方法,其中,还包括:
在所述应用程序中建立功能插件管理器,其中,所述功能插件管理器中设置有启用功能配置文件,用于存储已经启用的功能插件的标识及对应的启动进程的标识。
A5、根据A4所述的方法,其中,还包括:
当重新启动所述应用程序时,启动所述功能插件管理器,并确定一个或多个当前启动进程;
读取所述功能插件管理器中设置的所述启用功能配置文件,在所述启用功能配置文件中查找各个当前启动进程对应的功能插件;
在所述各个当前启动进程中启动对应的功能插件。
A6、根据A4或A5所述的方法,其中,还包括:
由所述功能插件管理器接收功能插件提供的表示启用功能插件的接口函数以及表示停止使用功能插件的接口函数,并存储。
A7、根据A4-A6中任一项所述的方法,其中,还包括:
当接收到来自用户的停止使用目标功能插件的指令时,从所述启用功能配置文件中删除所述目标功能插件的标识。
A8、根据A7所述的方法,其中,从所述启用功能配置文件中删除所述目标功能插件的标识,包括:
由所述功能插件管理器调用所述目标功能插件的表示停止使用所述目标功能插件的接口函数,由所述接口函数从所述启用功能配置文件中删除所述目标功能插件的标识。
A9、根据A4-A6中任一项所述的方法,其中,还包括:
当接收到来自用户的启用目标功能插件的指令时,将所述目标功能插件的标识及对应的目标启动进程的标识添加至所述启用功能配置文件中。
A10、根据A9所述的方法,其中,将所述目标功能插件的标识及对应的目标启动进程的标识添加至所述启用功能配置文件中,包括:
由所述功能插件管理器调用所述目标功能插件的表示启用所述目标功能插件的接口函数,由所述接口函数将所述目标功能插件的标识及对应的目标启动进程的标识添加至所述启用功能配置文件中。
A11、根据A1-A10中任一项所述的方法,其中,由所述工具箱增加各个新功能插件的入口,包括:
由所述工具箱获取各个新功能插件的界面组件,基于获取的所述各个新功能插件的界面组件增加所述各个新功能插件的入口。
A12、根据A1-A11中任一项所述的方法,其中,在所述应用程序中启用所述各个新功能插件之前,所述方法还包括:
加载所述各个新功能插件。
A13、根据A12所述的方法,其中,加载所述各个新功能插件,包括:
将功能插件加载事件拆分为独立的至少一个加载阶段,其中,各个加载阶段对应不同的功能插件内容;
当接收到功能插件加载的请求时,确定所述请求对应的目标加载阶段;
加载所述目标加载阶段对应的功能插件内容。
A14、根据A13所述的方法,其中,所述至少一个加载阶段包括下列至少之一:
功能插件信息的获取、功能插件资源的加载、功能插件代码的加载。
本发明实施例的另一方面,还提供了B15、一种功能插件的管理装置,包括:
工具箱建立模块,适于在应用程序中建立用于提供功能插件的入口的工具箱;
入口增加模块,适于当接收到云端下发的多个新功能插件的相关信息时,由所述工具箱增加各个新功能插件的入口;
启用模块,适于当接收到来自用户的对所述各个新功能插件的入口的触发操作时,根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件。
B16、根据B15所述的装置,其中,
所述新功能插件的相关信息包括:所述新功能插件的标识及对应的目标启动进程的标识;
所述启用模块还适于:根据所述各个新功能插件的标识及对应的目标启动进程的标识,在所述应用程序的所述目标启动进程中启用所述各个新功能插件。
B17、根据B15或B16所述的装置,其中,还包括:
下载模块,适于在所述启用模块根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件之前,判断是否已下载所述各个新功能插件;
若已下载所述各个新功能插件,则执行启用操作;
若未下载所述各个新功能插件,则下载所述各个新功能插件,并在下载完成之后执行启用操作。
B18、根据B15-B17中任一项所述的装置,其中,还包括:
功能插件管理器建立模块,适于在所述应用程序中建立功能插件管理器,其中,所述功能插件管理器中设置有启用功能配置文件,用于存储已经启用的功能插件的标识及对应的启动进程的标识。
B19、根据B18所述的装置,其中,所述启用模块还适于:
当重新启动所述应用程序时,启动所述功能插件管理器,并确定一个或多个当前启动进程;
读取所述功能插件管理器中设置的所述启用功能配置文件,在所述启用功能配置文件中查找各个当前启动进程对应的功能插件;
在所述各个当前启动进程中启动对应的功能插件。
B20、根据B18或B19所述的装置,其中,所述功能插件管理器建立模块还适于:
由所述功能插件管理器接收功能插件提供的表示启用功能插件的接口函数以及表示停止使用功能插件的接口函数,并存储。
B21、根据B18-B20中任一项所述的装置,其中,还包括:
删除模块,适于当接收到来自用户的停止使用目标功能插件的指令时,从所述启用功能配置文件中删除所述目标功能插件的标识。
B22、根据B21所述的装置,其中,所述删除模块还适于:
由所述功能插件管理器调用所述目标功能插件的表示停止使用所述目标功能插件的接口函数,由所述接口函数从所述启用功能配置文件中删除所述目标功能插件的标识。
B23、根据B18-B20中任一项所述的装置,其中,还包括:
添加模块,适于当接收到来自用户的启用目标功能插件的指令时,将所述目标功能插件的标识及对应的目标启动进程的标识添加至所述启用功能配置文件中。
B24、根据B23所述的装置,其中,所述添加模块还适于:
由所述功能插件管理器调用所述目标功能插件的表示启用所述目标功能插件的接口函数,由所述接口函数将所述目标功能插件的标识及对应的目标启动进程的标识添加至所述启用功能配置文件中。
B25、根据B15-B24中任一项所述的装置,其中,所述入口增加模块还适于:
由所述工具箱获取各个新功能插件的界面组件,基于获取的所述各个新功能插件的界面组件增加所述各个新功能插件的入口。
B26、根据B15-B25中任一项所述的装置,其中,还包括:
加载模块,适于所述启用模块在所述应用程序中启用所述各个新功能插件之前,加载所述各个新功能插件。
B27、根据B26所述的装置,其中,所述加载模块还适于:
将功能插件加载事件拆分为独立的至少一个加载阶段,其中,各个加载阶段对应不同的功能插件内容;
当接收到功能插件加载的请求时,确定所述请求对应的目标加载阶段;
加载所述目标加载阶段对应的功能插件内容。
B28、根据B27所述的装置,其中,所述至少一个加载阶段包括下列至少之一:
功能插件信息的获取、功能插件资源的加载、功能插件代码的加载。
Claims (10)
1.一种功能插件的管理方法,包括:
在应用程序中建立用于提供功能插件的入口的工具箱;
当接收到云端下发的多个新功能插件的相关信息时,由所述工具箱增加各个新功能插件的入口;
当接收到来自用户的对所述各个新功能插件的入口的触发操作时,根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件。
2.根据权利要求1所述的方法,其中,
所述新功能插件的相关信息包括:所述新功能插件的标识及对应的目标启动进程的标识;
根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件,包括:
根据所述各个新功能插件的标识及对应的目标启动进程的标识,在所述应用程序的所述目标启动进程中启用所述各个新功能插件。
3.根据权利要求1或2所述的方法,其中,根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件之前,所述方法还包括:
判断是否已下载所述各个新功能插件;
若已下载所述各个新功能插件,则执行启用操作;
若未下载所述各个新功能插件,则下载所述各个新功能插件,并在下载完成之后执行启用操作。
4.根据权利要求1-3中任一项所述的方法,其中,还包括:
在所述应用程序中建立功能插件管理器,其中,所述功能插件管理器中设置有启用功能配置文件,用于存储已经启用的功能插件的标识及对应的启动进程的标识。
5.根据权利要求4所述的方法,其中,还包括:
当重新启动所述应用程序时,启动所述功能插件管理器,并确定一个或多个当前启动进程;
读取所述功能插件管理器中设置的所述启用功能配置文件,在所述启用功能配置文件中查找各个当前启动进程对应的功能插件;
在所述各个当前启动进程中启动对应的功能插件。
6.根据权利要求4或5所述的方法,其中,还包括:
由所述功能插件管理器接收功能插件提供的表示启用功能插件的接口函数以及表示停止使用功能插件的接口函数,并存储。
7.根据权利要求4-6中任一项所述的方法,其中,还包括:
当接收到来自用户的停止使用目标功能插件的指令时,从所述启用功能配置文件中删除所述目标功能插件的标识。
8.根据权利要求7所述的方法,其中,从所述启用功能配置文件中删除所述目标功能插件的标识,包括:
由所述功能插件管理器调用所述目标功能插件的表示停止使用所述目标功能插件的接口函数,由所述接口函数从所述启用功能配置文件中删除所述目标功能插件的标识。
9.根据权利要求4-6中任一项所述的方法,其中,还包括:
当接收到来自用户的启用目标功能插件的指令时,将所述目标功能插件的标识及对应的目标启动进程的标识添加至所述启用功能配置文件中。
10.一种功能插件的管理装置,包括:
工具箱建立模块,适于在应用程序中建立用于提供功能插件的入口的工具箱;
入口增加模块,适于当接收到云端下发的多个新功能插件的相关信息时,由所述工具箱增加各个新功能插件的入口;
启用模块,适于当接收到来自用户的对所述各个新功能插件的入口的触发操作时,根据所述各个新功能插件的相关信息,在所述应用程序中启用所述各个新功能插件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610681270.2A CN106325923A (zh) | 2016-08-17 | 2016-08-17 | 功能插件的管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610681270.2A CN106325923A (zh) | 2016-08-17 | 2016-08-17 | 功能插件的管理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106325923A true CN106325923A (zh) | 2017-01-11 |
Family
ID=57743505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610681270.2A Pending CN106325923A (zh) | 2016-08-17 | 2016-08-17 | 功能插件的管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106325923A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109298900A (zh) * | 2018-10-23 | 2019-02-01 | 中国农业银行股份有限公司 | 一种应用拆分以及按需加载方法、装置 |
CN114237745A (zh) * | 2021-12-16 | 2022-03-25 | 北京奕斯伟计算技术有限公司 | 人工智能ai功能的构建方法、装置、电子设备及存储介质 |
US12008211B2 (en) | 2020-06-30 | 2024-06-11 | Huawei Technologies Co., Ltd. | Prompt method and terminal device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110099283A1 (en) * | 2009-10-28 | 2011-04-28 | Samsung Electronics Co., Ltd. | User service profile-based plug-in update method and apparatus for internet protocol television service |
CN103176789A (zh) * | 2011-12-26 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 一种实现开放平台功能扩展的方法及系统 |
CN103593201A (zh) * | 2012-08-14 | 2014-02-19 | 腾讯科技(深圳)有限公司 | 一种插件显示方法、装置及终端 |
CN104699511A (zh) * | 2015-03-27 | 2015-06-10 | 北京奇虎科技有限公司 | 插件升级方法及装置 |
CN104714828A (zh) * | 2015-03-31 | 2015-06-17 | 北京奇虎科技有限公司 | 应用安装、运行方法及装置 |
-
2016
- 2016-08-17 CN CN201610681270.2A patent/CN106325923A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110099283A1 (en) * | 2009-10-28 | 2011-04-28 | Samsung Electronics Co., Ltd. | User service profile-based plug-in update method and apparatus for internet protocol television service |
CN103176789A (zh) * | 2011-12-26 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 一种实现开放平台功能扩展的方法及系统 |
CN103593201A (zh) * | 2012-08-14 | 2014-02-19 | 腾讯科技(深圳)有限公司 | 一种插件显示方法、装置及终端 |
CN104699511A (zh) * | 2015-03-27 | 2015-06-10 | 北京奇虎科技有限公司 | 插件升级方法及装置 |
CN104714828A (zh) * | 2015-03-31 | 2015-06-17 | 北京奇虎科技有限公司 | 应用安装、运行方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109298900A (zh) * | 2018-10-23 | 2019-02-01 | 中国农业银行股份有限公司 | 一种应用拆分以及按需加载方法、装置 |
US12008211B2 (en) | 2020-06-30 | 2024-06-11 | Huawei Technologies Co., Ltd. | Prompt method and terminal device |
CN114237745A (zh) * | 2021-12-16 | 2022-03-25 | 北京奕斯伟计算技术有限公司 | 人工智能ai功能的构建方法、装置、电子设备及存储介质 |
CN114237745B (zh) * | 2021-12-16 | 2023-11-14 | 北京奕斯伟计算技术股份有限公司 | 人工智能ai功能的构建方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104731625B (zh) | 一种加载插件的方法、装置和移动终端 | |
CN109117169B (zh) | 用于修复内核漏洞的方法和装置 | |
CN103353844B (zh) | 一种软件开发工具包升级方法和系统 | |
CN108399331B (zh) | 应用进程试用方法和系统 | |
CN104750528B (zh) | 一种Android程序中的组件管理方法和装置 | |
CN102945182B (zh) | 应用程序更新方法和装置 | |
CN105159718B (zh) | 固件升级方法及装置 | |
CN110096424B (zh) | 测试的处理方法、装置、电子设备及存储介质 | |
CN111930382B (zh) | 应用页面的接入方法、装置及设备 | |
CN102981880B (zh) | 一种实现应用程序的更新的方法和装置 | |
CN104834555A (zh) | 调用功能模块的方法、相关装置及装置修复方法 | |
CN105740027B (zh) | 应用程序更新方法和装置 | |
CN105653448B (zh) | 应用调试方法、应用调试装置和终端 | |
CN106886437B (zh) | 应用程序更新方法与装置 | |
CN110968331B (zh) | 应用程序运行的方法和装置 | |
CN105553738A (zh) | 配置信息的热加载方法及装置、分布式集群系统 | |
CN112506584B (zh) | 资源文件加载方法、装置、设备、存储介质以及产品 | |
CN105516154A (zh) | 应用于SEAndroid系统的安全策略配置方法及装置 | |
CN104699511A (zh) | 插件升级方法及装置 | |
CN110765394A (zh) | so文件加载方法、装置、存储介质及终端设备 | |
CN106598662A (zh) | 基于android的应用加载方法及装置 | |
CN109032617B (zh) | 一种自动删除安装包的控制方法及控制装置 | |
CN106325923A (zh) | 功能插件的管理方法及装置 | |
CN109408256B (zh) | 应用调用方法和装置 | |
CN110851151A (zh) | 预装应用的方法、装置、终端、服务器和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170111 |