一种插件管理方法、计算机可读存储介质及终端设备与流程

文档序号:16246510发布日期:2018-12-11 23:37阅读:117来源:国知局
一种插件管理方法、计算机可读存储介质及终端设备与流程
本发明属于计算机
技术领域
,尤其涉及一种插件管理方法、计算机可读存储介质及终端设备。
背景技术
随着无线互联网技术和智能终端的发展,各种应用程序(app)开始广泛地应用于手机、平板电脑等移动终端中,为用户的工作和生活提供了极大的便利。但是,在现有技术中,用户如果需要扩展已安装的应用程序的功能,需要下载该应用程序的更高版本并进行重新安装,从而实现应用程序功能的扩展。但是这种方式在每次扩展应用程序功能时都需要重新下载并安装该应用程序的更高版本,从而增加了系统资源的消耗。技术实现要素:有鉴于此,本发明实施例提供了一种插件管理方法、计算机可读存储介质及终端设备,以解决现有技术在每次扩展应用程序功能时都需要重新下载并安装该应用程序的更高版本,从而增加了系统资源的消耗的问题。本发明实施例的第一方面提供了一种插件管理方法,可以包括:获取用户对应用程序的操作指令;判断所述操作指令所指示的功能是否为所述应用程序的主程序所实现的功能;若所述操作指令所指示的功能不是所述应用程序的主程序所实现的功能,则在预设的全局插件列表中查询目标插件,所述目标插件为实现所述操作指令所指示的功能的插件,所述全局插件列表记录了所述应用程序的各个插件以及各个插件所实现的功能;在预设的安装信息列表中查询所述目标插件的安装信息,所述安装信息列表记录了各个已安装插件的安装信息;若在所述安装信息列表中未查询到所述目标插件的安装信息,则从指定的服务器中下载并安装所述目标插件;通过所述目标插件执行所述操作指令。本发明实施例的第二方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如下步骤:获取用户对应用程序的操作指令;判断所述操作指令所指示的功能是否为所述应用程序的主程序所实现的功能;若所述操作指令所指示的功能不是所述应用程序的主程序所实现的功能,则在预设的全局插件列表中查询目标插件,所述目标插件为实现所述操作指令所指示的功能的插件,所述全局插件列表记录了所述应用程序的各个插件以及各个插件所实现的功能;在预设的安装信息列表中查询所述目标插件的安装信息,所述安装信息列表记录了各个已安装插件的安装信息;若在所述安装信息列表中未查询到所述目标插件的安装信息,则从指定的服务器中下载并安装所述目标插件;通过所述目标插件执行所述操作指令。本发明实施例的第三方面提供了一种插件管理终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:获取用户对应用程序的操作指令;判断所述操作指令所指示的功能是否为所述应用程序的主程序所实现的功能;若所述操作指令所指示的功能不是所述应用程序的主程序所实现的功能,则在预设的全局插件列表中查询目标插件,所述目标插件为实现所述操作指令所指示的功能的插件,所述全局插件列表记录了所述应用程序的各个插件以及各个插件所实现的功能;在预设的安装信息列表中查询所述目标插件的安装信息,所述安装信息列表记录了各个已安装插件的安装信息;若在所述安装信息列表中未查询到所述目标插件的安装信息,则从指定的服务器中下载并安装所述目标插件;通过所述目标插件执行所述操作指令。本发明实施例与现有技术相比存在的有益效果是:本发明实施例首先获取用户对应用程序的操作指令,然后判断所述操作指令所指示的功能是否为所述应用程序的主程序所实现的功能,若所述操作指令所指示的功能不是所述应用程序的主程序所实现的功能,则在预设的全局插件列表中查询目标插件,并在预设的安装信息列表中查询所述目标插件的安装信息,若在所述安装信息列表中未查询到所述目标插件的安装信息,则从指定的服务器中下载并安装所述目标插件,最后通过所述目标插件执行所述操作指令。通过本发明,在扩展应用程序功能时只需要下载并安装实现扩展功能的插件,通过插件来实现扩展功能,而无需对整个应用程序全部进行更新,大大减少了系统资源的消耗。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。图1为本发明实施例中一种插件管理方法的一个实施例流程图;图2为本发明实施例中对终端设备本地存储的全局插件列表进行更新的示意流程图;图3为本发明实施例中从服务器中下载并安装所述目标插件的示意流程图;图4为本发明实施例中一种插件管理装置的一个实施例结构图;图5为本发明实施例中一种插件管理终端设备的示意框图。具体实施方式为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。现有技术中,应用程序由于集中了较多的功能,一般会占用较多的资源,而且,一旦需要增加新的功能,需要进行整个应用程序的重新下载,不仅占用网络带宽也给用户使用带来不便。本发明得以实施的前提在于将一个应用程序拆解成一个主程序和至少一个插件。主程序是指可以独立运行的子程序,用于实现应用程序的基本功能,其可以在智能终端中进行安装。插件也是一个子程序,用于实现应用程序的扩展功能,一般地,不同的插件实现不同的扩展功能。插件不能独立运行,需要以模块的方式加载到主程序中运行。为了支持这一方案,本实施例在应用程序的开发阶段把原先一个完整的应用程序工程项目分别从业务、基础依赖等多维度拆分为多个子工程,例如,可以拆分为一个主程序子工程和至少一个插件子工程,子工程可以独立编译,所有的子工程都会在同一个git系统中维护。其中,git是分布式版本控制系统,没有统一的中央服务器,每个开发人员的终端都是一个完整的版本库,这样,在不联网的情况下,各个开发人员也可独立工作,当需要协作修改时,只需把各自的修改推送给对方,就可以互相看到对方的修改内容。插件子工程与主程序子工程之间可以存在依赖关系,某些插件子工程所实现的功能可能会需要依赖于主程序子工程来完成,即插件子工程可以以主程序子工程为基础。但是,在工程划分过程中,应保证插件子工程与插件子工程之间不应存在依赖关系,即各个插件子工程是相互独立的,不存在某些插件子工程所实现的功能可能会需要依赖于另一插件子工程来完成的情况。之所以如此,是由于主程序是用户在终端设备上首先安装的,只有在主程序安装以后的使用过程中,才会涉及到插件安装的问题,因此,两者之间是有明确的时间先后顺序的。而插件与插件之间则不存在这种关系,根据用户的使用需求,可能是首先下载安装了a插件,然后再下载安装了b插件,也可能是先下载安装了b插件,然后再下载安装了a插件。如果在进行工程划分时,b插件的功能实现需要依赖于a插件,而用户并未安装a插件,那么即使用户下载安装了b插件,也无法实现b插件所述对应的功能。各个子工程(包含主程序子工程及插件子工程)可以共用底层模块,但各自具体所使用到的具体底层模块可能各不相同。对任意一个子工程而言,首先要确定其所需的底层模块,分别组成其底层网络模块工程、底层图片模块工程、底层公共类模块工程等等,然后由编译打包服务器生成与之对应的各个jar包,底层网络模块工程的jar包为network.jar,底层图片模块工程的jar包为imageloader.jar,底层公共类模块工程的jar包为toools.jar,在完成编译打包的工作后,编译打包服务器会将生成的这些jar包上传至项目管理库中。各个子工程会按需从项目管理库中下载其所依赖的jar包参与相应功能开发,开发过程中,开发人员只需维护各自负责的子工程代码,按需提交代码,由打包编译服务器统一自动编译打包出各个对应的安装包,然后将这些安装包及其对应的版本信息上传至指定的服务器中。在以上所述的主程序和插件的开发均已完成的前提下,用户的终端设备就可以根据实际情况对这些插件的下载和安装进行管理,如图1所示,本发明实施例中一种插件管理方法的一个实施例可以包括:步骤s101、获取用户对应用程序的操作指令。所述操作指令由用户通过应用程序的用户界面(userinterface,ui)进行触发,例如,用户可以在ui上点击特定的按钮,从而触发相应的操作指令。步骤s102、判断所述操作指令所指示的功能是否为所述应用程序的主程序所实现的功能。若所述操作指令所指示的功能是所述应用程序的主程序所实现的功能,则执行步骤s103,若所述操作指令所指示的功能不是所述应用程序的主程序所实现的功能,则执行步骤s104及其后续步骤。步骤s103、通过所述主程序执行所述操作指令。步骤s104、在预设的全局插件列表中查询目标插件。所述目标插件为实现所述操作指令所指示的功能的插件,所述全局插件列表记录了所述应用程序的各个插件以及各个插件所实现的功能,优选地,所述全局插件列表中还可以包括各个插件的最新版本、存储地址以及支持最新版本的插件运行的主程序的最低版本,下表所示即为所述全局插件列表的一个示例:插件功能最新版本存储地址主程序最低版本插件a功能1v1.0.0https://****/plugins/pluginav1.0.0插件b功能2v2.1.0https://****/plugins/pluginbv1.0.0插件c功能3v1.0.1https://****/plugins/plugincv1.0.0…………………………若所述操作指令所指示的功能为功能2,则通过在全局插件列表中进行查询可确定出实现该功能的插件为插件b,也即确定插件b为所述目标插件。需要注意的是,各个插件可能会持续地进行更新,因此在所述服务器中不断会有新的插件版本替换掉旧的插件版本,每当在所述服务器中进行插件更新时,其中所存储的全局插件列表也随之做出相应更改,例如,若原来插件a的版本为v1.0.0,其可运行在v1.0.0及以上版本的主程序中,其在全局插件列表中的信息记录如下:插件功能最新版本存储地址主程序最低版本插件a功能1v1.0.0https://****/plugins/pluginav1.0.0但开发人员进行迭代更新之后,其版本更新为1.0.1,且需运行在v1.0.1及以上版本的主程序中,则其在全局插件版本列表中的信息记录需更新如下:插件功能最新版本存储地址主程序最低版本插件a功能1v1.0.1https://****/plugins/pluginav1.0.1优选地,在进行目标插件查询之前,可以先通过如图2所示的步骤对终端设备本地存储的全局插件列表进行更新:步骤s201、向所述服务器发送全局插件列表更新请求。步骤s202、接收所述服务器反馈的更新信息。所述更新信息中包括第一消息摘要值,所述第一消息摘要值为使用预设的消息摘要算法对所述服务器中的全局插件列表进行处理得到的消息摘要值。在本实例中,所述消息摘要算法可以为md5算法、sha-1算法以及其它类似的算法。消息摘要算法可以把任意长度的输入变换成固定长度的输出,这种转换是一种压缩映射,也就是,输出的长度通常远小于输入的长度,不同的输入可能会散列成相同的输出,而不可能从输出值来唯一的确定输入值,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的过程。步骤s203、判断所述第一消息摘要值是否与第二消息摘要值一致。所述第二消息摘要值为使用所述消息摘要算法对本地存储的全局插件列表进行处理得到的消息摘要值。若所述第一消息摘要值与所述第二消息摘要值不一致,则说明本地存储的全局插件列表与所述服务器中的全局插件列表不一致,也就是说本地存储的全局插件列表不是最新的版本,需要对其进行更新,此时执行步骤s204,若所述第一消息摘要值与所述第二消息摘要值一致,则说明本地存储的全局插件列表与所述服务器中的全局插件列表一致,也就是说本地存储的全局插件列表已经是最新的版本,无需对其进行更新,此时执行步骤s205。步骤s204、下载所述服务器中的全局插件列表,并使用所述服务器中的全局插件列表替换本地存储的全局插件列表。步骤s205、保持本地存储的全局插件列表。上述过程为终端设备主动更新全局插件列表的过程,在本实施例的另一种可能实现中,可以由所述服务器来指示终端设备进行全局插件列表的更新,即当所述服务器中的全局插件列表发生变化时,所述服务器将当前最新的全局插件列表发送给终端设备,终端设备接收到该全局插件列表后,使用该全局插件列表替换本地存储的全局插件列表。步骤s105、在预设的安装信息列表中查询所述目标插件的安装信息。所述安装信息列表记录了各个已安装插件的安装信息。步骤s106、若在所述安装信息列表中未查询到所述目标插件的安装信息,则从指定的服务器中下载并安装所述目标插件。具体地,步骤s106可包括如图3所示的步骤:步骤s1061、在所述全局插件列表中查询所述目标插件在所述服务器中的存储地址。步骤s1062、从所述存储地址中下载所述目标插件。步骤s1063、使用所述消息摘要算法对下载的所述目标插件进行处理,得到第三消息摘要值。步骤s1064、在所述全局插件列表中查询第四消息摘要值。所述第四消息摘要值为所述服务器对所述目标插件进行处理得到的消息摘要值。在本实施例中,所述全局插件列表中还可以包括各个插件的所述第四消息摘要值。步骤s1065、判断所述第三消息摘要值是否与所述第四消息摘要值一致。若所述第三消息摘要值与所述第四消息摘要值不一致,则说明下载的目标插件是不完整的,可能在下载过程中发生了数据错误或损毁,此时返回执行步骤s1062及其后续步骤。若所述第三消息摘要值与所述第四消息摘要值一致,则说明下载的目标插件是完整的,并未发生数据错误或损毁,此时执行步骤s1066。步骤s1066、安装下载的所述目标插件。也即将所述目标插件加载至所述应用程序的主程序中,从而实现对所述应用程序功能的扩展。步骤s107、通过所述目标插件执行所述操作指令。进一步地,在预设的安装信息列表中查询所述目标插件的安装信息之后,若在所述安装信息列表中查询到所述目标插件的安装信息,则还可以对本地安装的目标插件进行更新,具体地,从所述目标插件的安装信息中获取所述目标插件的安装版本,并从所述全局插件列表中获取所述目标插件的最新版本,然后判断所述目标插件的安装版本与所述目标插件的最新版本是否一致,若所述目标插件的安装版本与所述目标插件的最新版本一致,则直接通过本地安装的目标插件执行所述操作指令,若所述目标插件的安装版本与所述目标插件的最新版本不一致,则卸载已安装的所述目标插件,从所述服务器中下载并安装最新版本的所述目标插件,并通过最新版本的所述目标插件执行所述操作指令。进一步地,在从指定的服务器中下载并安装所述目标插件之前,还可以对本地安装的主程序进行更新,具体地,在所述安装信息列表中获取所述主程序的安装版本,并从所述全局插件列表中获取所述主程序的目标版本,所述目标版本为支持所述目标插件运行的最低版本,然后判断所述主程序的安装版本是否低于所述主程序的目标版本,若所述主程序的安装版本高于或等于所述主程序的目标版本,则无需对所述主程序进行更新,若所述主程序的安装版本低于所述主程序的目标版本,则卸载已安装的所述主程序,并从所述服务器中下载并安装最新版本的所述主程序。综上所述,本发明实施例首先获取用户对应用程序的操作指令,然后判断所述操作指令所指示的功能是否为所述应用程序的主程序所实现的功能,若所述操作指令所指示的功能不是所述应用程序的主程序所实现的功能,则在预设的全局插件列表中查询目标插件,并在预设的安装信息列表中查询所述目标插件的安装信息,若在所述安装信息列表中未查询到所述目标插件的安装信息,则从指定的服务器中下载并安装所述目标插件,最后通过所述目标插件执行所述操作指令。通过本发明,在扩展应用程序功能时只需要下载并安装实现扩展功能的插件,通过插件来实现扩展功能,而无需对整个应用程序全部进行更新,大大减少了系统资源的消耗。应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。对应于上文实施例所述的一种插件管理方法,图4示出了本发明实施例提供的一种插件管理装置的一个实施例结构图。本实施例中,一种插件管理装置可以包括:操作指令获取模块401,用于获取用户对应用程序的操作指令;功能判断模块402,用于判断所述操作指令所指示的功能是否为所述应用程序的主程序所实现的功能;目标插件查询模块403,用于若所述操作指令所指示的功能不是所述应用程序的主程序所实现的功能,则在预设的全局插件列表中查询目标插件,所述目标插件为实现所述操作指令所指示的功能的插件,所述全局插件列表记录了所述应用程序的各个插件以及各个插件所实现的功能;安装信息查询模块404,用于在预设的安装信息列表中查询所述目标插件的安装信息,所述安装信息列表记录了各个已安装插件的安装信息;目标插件安装模块405,用于若在所述安装信息列表中未查询到所述目标插件的安装信息,则从指定的服务器中下载并安装所述目标插件;第一执行模块406,用于通过所述目标插件执行所述操作指令。进一步地,所述插件管理装置还可以包括:插件安装版本获取模块,用于若在所述安装信息列表中查询到所述目标插件的安装信息,则从所述目标插件的安装信息中获取所述目标插件的安装版本;插件最新版本获取模块,用于从所述全局插件列表中获取所述目标插件的最新版本;插件版本判断模块,用于判断所述目标插件的安装版本与所述目标插件的最新版本是否一致;插件卸载模块,用于若所述目标插件的安装版本与所述目标插件的最新版本不一致,则卸载已安装的所述目标插件;插件安装模块,用于从所述服务器中下载并安装最新版本的所述目标插件;第二执行模块,用于通过最新版本的所述目标插件执行所述操作指令。进一步地,所述插件管理装置还可以包括:主程序安装版本获取模块,用于在所述安装信息列表中获取所述主程序的安装版本;主程序目标版本获取模块,用于从所述全局插件列表中获取所述主程序的目标版本,所述目标版本为支持所述目标插件运行的最低版本;主程序版本判断模块,用于判断所述主程序的安装版本是否低于所述主程序的目标版本;主程序卸载模块,用于若所述主程序的安装版本低于所述主程序的目标版本,则卸载已安装的所述主程序;主程序安装模块,用于从所述服务器中下载并安装最新版本的所述主程序。进一步地,所述插件管理装置还可以包括:更新请求发送模块,用于向所述服务器发送全局插件列表更新请求;更新信息接收模块,用于接收所述服务器反馈的更新信息,所述更新信息中包括第一消息摘要值,所述第一消息摘要值为使用预设的消息摘要算法对所述服务器中的全局插件列表进行处理得到的消息摘要值;消息摘要值判断模块,用于判断所述第一消息摘要值是否与第二消息摘要值一致,所述第二消息摘要值为使用所述消息摘要算法对本地存储的全局插件列表进行处理得到的消息摘要值;全局插件列表更新模块,用于若所述第一消息摘要值与所述第二消息摘要值不一致,则下载所述服务器中的全局插件列表,并使用所述服务器中的全局插件列表替换本地存储的全局插件列表。进一步地,所述目标插件安装模块可以包括:存储地址查询单元,用于在所述全局插件列表中查询所述目标插件在所述服务器中的存储地址;目标插件下载单元,用于从所述存储地址中下载所述目标插件;消息摘要处理单元,用于使用预设的消息摘要算法对下载的所述目标插件进行处理,得到第三消息摘要值;消息摘要值查询单元,用于在所述全局插件列表中查询第四消息摘要值,所述第四消息摘要值为所述服务器对所述目标插件进行处理得到的消息摘要值;消息摘要值判断单元,用于判断所述第三消息摘要值是否与所述第四消息摘要值一致;目标插件按照单元,用于若所述第三消息摘要值与所述第四消息摘要值一致,则安装下载的所述目标插件。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。图5示出了本发明实施例提供的一种插件管理终端设备的示意框图,为了便于说明,仅示出了与本发明实施例相关的部分。在本实施例中,所述插件管理终端设备5可以是智能手机、平板电脑、智能眼镜、智能手表、智能手环等终端设备。该插件管理终端设备5可包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机可读指令52,例如执行上述的插件管理方法的计算机可读指令。所述处理器50执行所述计算机可读指令52时实现上述各个插件管理方法实施例中的步骤,例如图1所示的步骤s101至s107。或者,所述处理器50执行所述计算机可读指令52时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块401至406的功能。示例性的,所述计算机可读指令52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令52在所述插件管理终端设备5中的执行过程。所述处理器50可以是中央处理单元(centralprocessingunit,cpu),还可以是其它通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。所述存储器51可以是所述插件管理终端设备5的内部存储单元,例如插件管理终端设备5的硬盘或内存。所述存储器51也可以是所述插件管理终端设备5的外部存储设备,例如所述插件管理终端设备5上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器51还可以既包括所述插件管理终端设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机可读指令以及所述插件管理终端设备5所需的其它指令和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机可读指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储计算机可读指令的介质。以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1