一种Linux下自动处理异常的任务栏插件式加载方法与流程

文档序号:14967466发布日期:2018-07-20 11:23阅读:321来源:国知局

本发明属于linux操作系统技术领域,具体地说,涉及一种linux下自动处理异常的任务栏插件式加载方法。



背景技术:

在linux操作系统现有技术中,任务栏作为桌面操作系统的重要组成部分,通常都包含开始菜单、锁定应用程序、窗口列表以及托盘等通用模块。当用户进入桌面后启动任务栏时,通常按一定的执行流程顺序加载开始菜单、锁定应用程序、窗口列表以及托盘等通用模块,只有最后一个模块加载成功后,任务栏才完成加载,成功显示。

在传统linux任务栏中,开始菜单、锁定应用程序、窗口列表以及托盘等模块都在任务栏主界面中。一旦某个模块在启动过程出现异常,如启动超时或出现崩溃,就会导致任务栏加载出现等待或崩溃。现有技术遇到此类问题,往往要求用户必须手动重启任务栏或者重启操作系统才能正常使用,从而给用户的使用带来不便。

中国发明专利“用于在任务栏上显示任务栏按钮的方法和系统”(申请号cn200510120163.4),该发明提供了一种系统或方法,用于显示相应应用程序的丰富表现任务栏按钮。在一个示例中,丰富表现任务栏按钮可通过编程接口接收来自应用程序的内容。该发明还涉及一种系统和方法,用于显示丰富表现任务栏按钮和用于显示以及让与丰富表现任务栏按钮相关联的应用程序窗口的缩略图离开。该发明还包括一种系统和方法,将缩略图钉在显示屏上或者让缩略图离开,以及用于在一个任务栏中显示多个任务栏按钮,但是并没有考虑过本专利申请中linux操作系统下任务栏加载过程的自动异常处理问题。

中国发明专利“一种任务栏按钮的管理方法及装置”(申请号cn201510792117.2),该发明公开了一种任务栏按钮的管理方法及装置。所述方法应用于一具有第一窗口和第二窗口的系统,其中,所述第一窗口对应任务栏的第一按钮,且具有第一应用程序标识,所述第二窗口对应所述任务栏的第二按钮,且具有第二应用程序标识,包括:接收一管理命令;根据所述管理命令,将所述第二应用程序标识和所述第一应用程序标识设置为相等;将具有相等应用程序标识的所述第一按钮和所述第二按钮在所述任务栏上组合,形成第三按钮。虽然该发明中所述任务栏按钮的管理方法及装置,能够根据用户的需求灵活定义任务栏按钮的分组,从而满足用户的个性化需求,带来更好的用户体验,但是并没有考虑过本专利申请中linux操作系统下任务栏加载过程的自动异常处理问题。

中国发明专利“一种linux程序代码加载的方法及装置”(申请号cn201010531328.8),该发明提出了一种linux程序代码加载的方法及装置,用以解决现有技术中存在的修改linux程序就必须重启该程序进而导致服务中断的问题,该方法包括:开始启动linux程序,通过linux操作系统仅将linux程序代码的加载代码加载到地址空间中,运行加载代码,将其它部分的代码加载到地址空间中,其它部分的代码被修改后,对加载代码执行再加载操作,将修改后的其它部分的代码重新加载到地址空间中,当只是修改linux程序中其它部分的代码时,不必重启该程序进而避免中断服务。该发明所述的代码加载方法仍是针对linux应用程序而提出,但是并没有涉及到本专利申请中linux操作系统启动时支持自动处理异常的任务栏插件式加载方法。

中国发明专利“用于生成在本地机器上和远程机器上生成的任务栏按钮组条目的组合显示的方法和系统”(申请号cn201080063399.8),该发明提出了用表示远程机器上执行的远程应用的用户界面元素和由该远程应用生成的应用输出来更新由本地计算机生成并显示的任务栏的方法和系统。这些方法和系包括本地客户端,其接收由远程应用生成的应用输出以及远程窗口配置信息,生成包含本地任务栏分组配置信息的应用输出窗口,并且响应于该本地任务栏分组配置信息来更新任务栏。该发明涉及用于在由本地机器生成并显示的任务栏按钮组中显示在本地机器上生成并显示的图形数据的标识和在远程机器上生成且在本地机器上显示的图形数据的标识,但是并没有涉及到本专利申请中本专利申请中linux操作系统启动时支持自动处理异常的任务栏插件式加载方法。



技术实现要素:

有鉴于此,本发明为了解决现有技术存在的缺陷和不足,提供了一种linux下自动处理异常的任务栏插件式加载方法,能够在任务栏加载过程中以插件方式自动加载任务栏各个模块,防止任务栏主界面因模块异常导致加载失败而影响用户使用。

为了解决上述技术问题,本发明公开了一种linux下自动处理异常的任务栏插件式加载方法,并采用以下技术方案来实现。

一种linux下自动处理异常的任务栏插件式加载方法,步骤包括:

s1、任务栏主界面获取用户指定的插件配置文件;

s2、所述任务栏主界面将获取的所述插件配置文件传给内核业务层;

s3、所述内核业务层解析所述插件配置文件,获取对应插件的插件信息并保存,告知插件管理层;

s4、所述插件管理层解析被告知的信息,并调用插件框架层中插件接口模块;

s5、所述插件接口模块对所述插件进行封装,所述插件框架层再调用所述插件管理层中服务接口模块,由所述服务接口模块加载对应的所述插件;

s6、所述服务接口模块将插件加载结果实时反馈给插件管理层;

s7、根据所述插件加载结果在所述任务栏主界面上进行显示。

进一步的,所述s7的具体步骤包括:

s71、判断所述插件是否加载成功,若是则在所述任务栏主界面上进行显示;若否,则判断当前的加载次数是否超过预设的重载次数,若超过,则在所述任务栏主界面上进行显示,若未超过,则所述内核业务层重新向所述插件框架层发起加载所述插件的请求。

更进一步的,在所述任务栏主界面上进行显示的具体步骤包括:

s711、所述插件管理层将所述插件的加载结果通知所述内核业务层;

s712、所述内核业务层将所述插件的加载结果发送给所述任务栏主界面;

s713、若所述插件的加载结果为加载成功,则在所述任务栏主界面上显示成功加载的所述插件;若所述插件的加载结果为加载失败,

则所述任务栏主界面以弹窗形式将所述加载结果通知用户。

进一步的,所述s5-s7任一步骤出现异常导致所述插件加载失败时,所述内核业务层与所述插件管理层之间的监控连接会自动处理所述插件的重新加载。

进一步的,所述s3中将所述插件信息保存到gsettings全局配置中;。

进一步的,所述s3中所述内核业务层通过dbus接口告知所述插件管理层。

一种linux下自动处理异常的任务栏插件式加载系统,其特征在于:包括:

任务栏主界面:用于设置插件配置文件;

内核业务层:接收所述任务栏主界面发送的所述插件配置文件,解析出插件信息并保存解析结果,与插件管理层进行通信将所述解析结果通知所述插件管理层;

插件管理层:解析所述内核业务层发来的通知信息并调用插件框架层中插件接口模块,所述插件管理层的服务接口模块加载对应的所述插件,并统一维护加载完成的插件;

插件框架层:对所述插件进行封装,调用所述插件管理层中的服务接口模块进行所述插件的加载;

和插件层:包括多个插件,所述多个插件以所述插件框架层提供的接口统一注册成插件。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现以上所述方法的步骤。

一种linux下自动处理异常的任务栏插件式加载装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以上所述方法的步骤。

与现有技术相比,本发明可以获得包括以下技术效果:

1)相较于linux传统任务栏,本发明中任务栏主界面、内核业务层、插件管理层、插件框架层和插件层是相互独立的进程,互不干扰,有利于提高系统的稳定性和工作效率;

2)任务栏主界面负责加载任务栏主界面,插件管理层负责加载插件配置文件并自动处理异常,插件加载结果由内核业务层反馈给主界面;

3)任务栏主界面加载和插件加载可以同时进行,成功加载的插件会自动显示到任务栏上,插件加载失败时内核业务层和插件管理层会根据用户指定的重载次数对加载失败的插件进行重新加载,插件加载失败不会导致任务栏主界面加载失败,避免了传统linux任务栏加载过程中某一步加载失败导致用户完全无法使用任务栏的弊端,而且后台多插件同时加载的机制在一定程度上能加快任务栏就绪的速度;

4)插件式的任务栏加载方式好处在于对于不同的用户可以有不同的任务栏插件配置,具有更好的扩展性,能满足各种不同任务栏功能要求。

当然,实施本发明的任一产品必不一定需要同时达到以上所述的所有技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明一个实施例的自动处理异常的任务栏插件式加载方法的工作逻辑示意图。

图2是本发明一个实施例的自动处理异常的任务栏插件式加载方法的实施步骤图。

具体实施方式

以下将配合附图及实施例来详细说明本发明的实施方式,藉此对本发明如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。

linux下支持自动处理异常的任务栏插件式加载方法的工作逻辑如图1所示,主要包括任务栏主界面、内核业务层、插件管理层、插件框架层和插件层。

图1中,任务栏主界面中包括交互模块,用户通过所述的交互模块可以设置自定义的插件配置文件;内核业务层主要包括业务模块,业务模块可以接收任务栏主界面发送的用户自定义的插件配置文件,还可以解析出来每个插件的类型、位置以及编号,并解析后的结果保存到gsettings全局配置中,同时发送dbus消息通知插件管理层;插件管理层与内核业务层分别与dbus接口连接,利用dbus接口实现两者之间进程通信;插件管理层主要包括管理模块和服务接口模块,插件管理层收到dbus通知消息后,解析gsettings全局配置,然后调用插件框架层中插件接口模块;插件框架层主要包括插件接口模块,插件接口模块根据插件管理层所传入的插件类型、位置以及编号,对每个插件进行封装,封装完成后插件框架层调用插件管理层中服务接口模块,由服务接口模块启动相应的插件,各个插件之间启动顺序互不干扰;插件层主要包括多个插件,其中多个插件由插件框架层提供接口统一注册成为插件,再由插件管理层负责管理这些插件;插件启动完成后将结果统一交由插件管理层来维护,任务栏主界面从内核管理层去插件管理层获取结果;内核业务层、插件管理层之间还相互监控连接,负责实现插件加载失败时的重新加载操作。

一种linux下自动处理异常的任务栏插件式加载方法,步骤包括:

首先,linux操作系统启动以后,自启动任务栏主界面,任务栏主界面启动内核业务层、插件管理层和插件框架层;

其次,任务栏主界面将用户设置的插件配置文件传递给内核业务层,内核业务层获取插件配置文件后解析出每个插件的类型、位置以及编号,并保存到gsettings全局配置中,同时发送dbus信息通知插件管理层;

然后,插件管理层收到dbus通知消息后,解析gsettings全局配置,然后调用插件框架层中插件接口模块,插件接口模块会根据插件管理层所传入的插件类型、位置以及编号,对每个插件进行封装;当封装完成后,插件框架层再调用插件管理层中服务接口模块,由服务接口模块启动相应的插件;

接下来,若干个插件启动完成后,由插件层将插件加载结果实时反馈给插件管理层,插件管理层收到相关信息后发送dbus信息通知内核业务层实时更新插件状态,并将结果反馈到任务栏主界面;

最后,如果插件启动成功,则结果会在任务栏直接显示出来;否则,则由插件管理层与内核业务层进行相互监控连接,实现插件加载失败时的重新加载操作,当重新加载操作也不成功时,将失败结果传给内核交互层,由任务栏主界面弹出插件失败提示信息告知用户。

具体实施步骤如下:

s1:任务栏主界面获取用户指定的插件配置文件;

s2:任务栏主界面将获取的插件配置文件传给内核业务层;

s3:内核业务层获取插件配置文件后,解析插件配置文件获取每个插件类型、位置以及编号,将其保存到gsettings全局配置中,并通过dbus接口告知插件管理层;

s4:插件管理层收到dbus通知消息后,解析gsettings全局配置,然后调用插件框架层中插件接口模块;

s5:插件框架层的插件接口模块根据插件管理层所传入的插件类型、位置以及编号,对每个插件进行封装,封装完成后,插件框架层再调用插件管理层中服务接口模块,由服务接口模块启动加载对应插件;

s6:插件层将插件加载结果实时反馈给插件管理层;

s7:判断插件加载是否成功,如果插件加载失败,则进入下一步;否则进入步骤s10;

s8:因为插件加载失败,插件管理层会反复调用插件框架层中插件接口模块重新加载插件,判断当前是否超过用户设定的重载次数,如果没有超过重载次数,则进入下一步;否则进入步骤s10;

s9:如果插件加载失败且没有超过用户设定的重新加载次数,插件管理层重新向插件框架层发送加载插件调用,进入步骤s5,重新加载插件,如此反复,直至完成用户设定的重载次数;

s10:插件管理层收到插件加载结果后通过dbus接口通知内核业务层;

s11:内核业务层将插件加载的结果发送给任务栏主界面;

s12:如果插件成功加载,任务栏主界面上将显示成功加载的插件;否则,任务栏主界面以弹窗形式通知用户加载失败的插件。

其中,步骤s1、s2加载完成后,任务栏主界面即完成加载。当步骤s5至步骤s9中任一步骤出现异常导致插件加载失败时,内核业务层与插件管理层之间的监控连接则会自动处理插件重载;当插件多次重载后仍失败时,任务栏主界面将弹出提示信息;这个过程中任务栏主界面不会等待插件加载,任务栏主界面显示完成后,成功加载的插件就会被显示出来,并通过弹窗形式来提示加载失败的插件。步骤s10至步骤s12则表明即使插件加载失败,任务栏也会正常运行,只会有单一插件无法使用,不会影响整个任务栏功能。

本发明中任务栏主界面通过内核业务层与插件管理层交互,任务栏主界面不直接跟具体插件通信。因此,本发明中任务栏主界面只是实时反馈插件加载结果,插件的显示由插件自身处理,任务栏主界面不需要等待插件完成加载才显示,一定程度上可以加速任务栏的启动。同时,本发明中内核业务层接收的是用户自定义的插件配置文件,这种加载方式具有很好的拓展属性,支持任务栏加载自定义的风格。

本发明的有益效果是:

1)相较于linux传统任务栏,本发明中任务栏主界面、内核业务层、插件管理层、插件框架层和插件层是相互独立的进程,互不干扰,有利于提高系统的稳定性和工作效率;

2)任务栏主界面负责加载任务栏主界面,插件管理层负责加载插件配置文件并自动处理异常,插件加载结果由内核业务层反馈给主界面;

3)任务栏主界面加载和插件加载同时进行,成功加载的插件会自动显示到任务栏上,插件加载失败时内核业务层和插件管理层会根据用户指定的重载次数对加载失败的插件进行重新加载,插件加载失败不会导致任务栏主界面加载失败,避免了传统linux任务栏加载过程中某一步加载失败导致用户完全无法使用任务栏的弊端,而且后台多插件同时加载的机制在一定程度上能加快任务栏就绪的速度;

4)插件式的任务栏加载方式好处在于对于不同的用户可以有不同的任务栏插件配置,具有更好的扩展性,能满足各种不同任务栏功能要求。

以上对本发明实施例所提供的一种linux下自动处理异常的任务栏插件式加载方法,进行了详细介绍。以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

如在说明书及权利要求当中使用了某些词汇来指称特定组件或模块。本领域技术人员应可理解,不同机构可能会用不同名词来称呼同一个组件或模块。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件或模块在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”、“包括”为开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。说明书后续描述为实施本发明的较佳实施方式,然所述描述乃以说明本发明的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明创造构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1