客户端插件化方法方法、装置、电子设备及存储介质与流程

文档序号:24125165发布日期:2021-03-02 13:06阅读:66来源:国知局
客户端插件化方法方法、装置、电子设备及存储介质与流程

[0001]
本公开属于应用开发技术领域,更具体地,涉及一种客户端插件化方法方法、装置、电子设备及存储介质。


背景技术:

[0002]
在计算机软件行业之中,客户端程序是一种常见的程序,而客户端的可扩展性,往往不如网站程序和移动端程序。因为客户端程序的更改,往往需要发布一个版本,用户使用的客户端程序检测到有新版本更新后,再提醒用户安装新版本更新。但是采用这种更新方式,每次客户端程序稍有改动,就需要用户重新安装,为了解决这种问题,插件化的方式应运而生。将客户端程序一些功能封装成为动态链接库,主程序可以动态地加载这些动态链接库来实现相应的功能,以此来作为插件化的方法。
[0003]
在实现本公开过程中,发明人发现现有技术插件化的方法至少存在如下问题:
[0004]
首先,采用很多的动态链接库存在着不可控的风险,因为一般动态链接库都放在安装的根目录下,用户的都可以直接访问、修改、甚至删除,对客户端程序的功能性可能会造成影响;其次,动态链接库没有包含在运行程序中,可以随意拿到,如果动态链接库非常多,里面的关键程序被拿到并破解后,会造成安全隐患;第三,一个公司的产品往往不是一个,当产品越来越丰富时,只采用单一方式进行插件化,使得产品不够灵活。


技术实现要素:

[0005]
有鉴于此,本公开实施例提供了一种客户端插件化方法方法、装置、电子设备及存储介质,至少解决现有技术中产品不够灵活的问题。
[0006]
第一方面,本公开实施例提供了一种客户端插件化方法,包括:
[0007]
开发第一客户端程序,所述第一客户端程序配置通信接口;
[0008]
至少开发第二客户端程序,所述第二客户端程序配置为第一客户端程序的插件;
[0009]
所述第一客户端程序和第二客户端程序通过通信接口通信。
[0010]
可选的,所述第一客户端程序和第二客户端程序通过通信接口通信,包括:
[0011]
所述第一客户端程序和第二客户端程序运行在同一设备中时,基于所述通信接口和设备内存进行通信。
[0012]
可选的,所述开发第二客户端程序,所述第二客户端程序配置为第一客户端程序的插件,包括:
[0013]
当所述第二客户端程序的表现层依附于第一客户端程序显示而存在时,
[0014]
将第二客户端程序对第一客户端程序进行注入,使第二客户端程序显示依附于第一客户端程序的显示。
[0015]
可选的,所述开发第一客户端程序和第二客户端程序,包括:
[0016]
将所述第一客户端程序和第二客户端程序中需要插件化的功能采用动态链接库方式配置。
[0017]
可选的,所述第一客户端程序配置通信接口,包括:
[0018]
使用命名管道的方法,设定管道名称。
[0019]
第二方面,本公开实施例还提供了一种客户端插件化装置,包括:
[0020]
第一客户端程序开发模块:用于开发第一客户端程序,所述第一客户端程序配置通信接口;
[0021]
第二客户端程序开发模块:用于开发第二客户端程序,所述第二客户端程序配置为第一客户端程序的插件;
[0022]
通信模块:用于使所述第一客户端程序和第二客户端程序通过通信接口通信。
[0023]
可选的,所述第一客户端程序和第二客户端程序运行在同一设备中时,基于所述通信接口和设备内存进行通信。
[0024]
可选的,所述第一客户端程序配置通信接口,包括:
[0025]
使用命名管道的方法,设定管道名称。
[0026]
第三方面,本公开实施例还提供了一种电子设备,该电子设备包括:
[0027]
存储器,存储有可执行指令;
[0028]
处理器,所述处理器运行所述存储器中的所述可执行指令,以实现第一方面任一项所述的客户端插件化方法。
[0029]
第四方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现第一方面任一项所述的客户端插件化方法。
[0030]
本公开在开发第一客户端程序时配置通信接口,开发第二客户端程序时,将第二客户端程序配置为第一客户端程序的插件,从而使用第二客户端程序对第一客户端程序的功能进行补充,从而提高了第一客户端程序功能的扩展性,在相对功能更新时,只需要对相应的第二客户端程序进行更新即可,在产品开发时,利于不同客户端程序的开发,从而提高了产品灵活性。
[0031]
本公开的其它特征和优点将在随后具体实施方式部分予以详细说明。
附图说明
[0032]
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0033]
图1示出了本公开的一个实施例的客户端插件化方法的流程图;
[0034]
图2示出了本公开的一个实施例的插件化程序架构图示意图。
具体实施方式
[0035]
下面将更详细地描述本公开的优选实施方式。虽然以下描述了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。
[0036]
管道是一种两个进程间进行单向通信的机制。
[0037]
如图1所示,一种客户端插件化方法,包括:
[0038]
步骤s101:开发第一客户端程序,所述第一客户端程序配置通信接口;
[0039]
步骤s102:至少开发第二客户端程序,所述第二客户端程序配置为第一客户端程序的插件;
[0040]
步骤s103:所述第一客户端程序和第二客户端程序通过通信接口通信。
[0041]
可选的,所述第一客户端程序和第二客户端程序通过通信接口通信,包括:
[0042]
所述第一客户端程序和第二客户端程序运行在同一设备中时,基于所述通信接口和设备内存进行通信。
[0043]
可选的,所述开发第二客户端程序,所述第二客户端程序配置为第一客户端程序的插件,包括:
[0044]
当所述第二客户端程序的表现层依附于第一客户端程序显示而存在时,
[0045]
将第二客户端程序对第一客户端程序进行注入,使第二客户端程序显示依附于第一客户端程序的显示。
[0046]
可选的,所述开发第一客户端程序和第二客户端程序,包括:
[0047]
将所述第一客户端程序和第二客户端程序中需要插件化的功能采用动态链接库方式配置。
[0048]
可选的,所述第一客户端程序配置通信接口,包括:
[0049]
使用命名管道的方法,设定管道名称。
[0050]
在一个具体的应用场景中,
[0051]
如不同的团队开发各自的不同客户端产品,其中某些产品可以作为其他产品的插件存在。所有客户端作为独立的程序,也可以实现插件化的功能。
[0052]
详细步骤如下:
[0053]
第一步:团队a开发主程序客户端程序(第一客户端程序)。
[0054]
第二步:团队b开发独立客户端程序(第二客户端程序),同时该程序作为主程序的插件存在。
[0055]
第三步:团队a在开发主程序时,针对插件化操作,为团队b的客户端程序留出通信接口,可以使用命名管道的方法,约定好管道名称,这样团队b的客户端插件程序就可以与团队a的主程序直接在同一台计算机中,通过内存进行通信。如图2所示。
[0056]
如图2所示,客户端插件程序中功能与主程序客户端程序中功能是相对应的,但在一个插件程序中并不需要对应配置主程序客户端程序中的所有功能,可以通过几个插件程序来对主程序客户端程序中的功能进行扩展,如可以在一个插件程序中配置主程序中的a功能的插件,而在另一个插件程序中配置主程序中的b功能的插件。
[0057]
第四步:如果插件客户端程序需要在表现层依附于主客户端程序显示而存在,则团队b则需要将插件客户端程序对主客户端程序进行注入,这样插件可以依附于主程序的显示而显示。
[0058]
第五步:主程序与客户端程序,如果需要对一些功能实现插件化,依然可以各自采用动态链接库方式,对自身的功能实现插件化方式。
[0059]
经过以上步骤,主程序和插件程序可以通过插件化方式为功能进行拓展。
[0060]
本实施例中:
[0061]
不同的团队可以开发独立的产品,但是如果这些产品需要一定的交互,某些产品可以作为插件存在针对主程序的功能进行一定的补充,则可以使用命名管道方式在内存中
进行数据传输。
[0062]
不同的客户端程序间通信,需要提前定义好命名管道,在内存中进行通信。
[0063]
不同的客户端,各自可以单独使用动态链接库,对其内部的功能进行插件化管理。
[0064]
本实施例具有如下优点:
[0065]
不同的客户端之间也可以作为插件,对主程序的功能进行一定补充,比现有插件化方式更灵活。
[0066]
更利于多个团队的不同项目之间,有所连接与协作,更容易提供更好的产品。
[0067]
本实施例还公开一种客户端插件化装置,包括:
[0068]
第一客户端程序开发模块:用于开发第一客户端程序,所述第一客户端程序配置通信接口;
[0069]
第二客户端程序开发模块:用于开发第二客户端程序,所述第二客户端程序配置为第一客户端程序的插件;
[0070]
通信模块:用于使所述第一客户端程序和第二客户端程序通过通信接口通信。
[0071]
可选的,所述第一客户端程序和第二客户端程序运行在同一设备中时,基于所述通信接口和设备内存进行通信。
[0072]
可选的,所述第一客户端程序配置通信接口,包括:
[0073]
使用命名管道的方法,设定管道名称。
[0074]
本公开实施例提供一种电子设备包括存储器和处理器,
[0075]
存储器,存储有可执行指令;
[0076]
处理器,处理器运行存储器中的可执行指令,以实现客户端插件化方法。
[0077]
该存储器用于存储非暂时性计算机可读指令。具体地,存储器可以包括一个或多个计算机程序产品,该计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。该易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。该非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。
[0078]
该处理器可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制电子设备中的其它组件以执行期望的功能。在本公开的一个实施例中,该处理器用于运行该存储器中存储的该计算机可读指令。
[0079]
本领域技术人员应能理解,为了解决如何获得良好用户体验效果的技术问题,本实施例中也可以包括诸如通信总线、接口等公知的结构,这些公知的结构也应包含在本公开的保护范围之内。
[0080]
有关本实施例的详细说明可以参考前述各实施例中的相应说明,在此不再赘述。
[0081]
本公开实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现客户端插件化方法。
[0082]
根据本公开实施例的计算机可读存储介质,其上存储有非暂时性计算机可读指令。当该非暂时性计算机可读指令由处理器运行时,执行前述的本公开各实施例方法的全部或部分步骤。
[0083]
上述计算机可读存储介质包括但不限于:光存储介质(例如:cd-rom和dvd)、磁光存储介质(例如:mo)、磁存储介质(例如:磁带或移动硬盘)、具有内置的可重写非易失性存
储器的媒体(例如:存储卡)和具有内置rom的媒体(例如:rom盒)。
[0084]
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1