一种插件预加载方法、装置、电子设备及存储介质与流程

文档序号:29695294发布日期:2022-04-16 12:50阅读:89来源:国知局
一种插件预加载方法、装置、电子设备及存储介质与流程

1.本技术涉及计算机技术领域,尤其涉及一种插件预加载方法、装置、电子设备及存储介质。


背景技术:

2.目前,随着互联网技术的发展,在浏览器中运行有许多不同的插件,从而能够实现不同的功能。
3.相关技术中,在浏览器中安装相关的插件后,内核能够通过加载配置页面,列出存在的插件,启动插件进程,并调用插件库内部函数,加载并运行插件,从而实现插件相应的功能。
4.然而,由于每个插件在运行时,需要依赖其它库文件辅助实现插件的功能,若依赖的库文件不存在,或者版本不正确时,可能会导致插件加载失败,从而影响后续插件的正常运行。典型情况:不同路径下的同名插件,若第一个插件加载失败,其结果会影响到后一个插件的正常加载。
5.因此,如何能够实现对插件的预加载,从而保证插件在加载过程中的正常显示和使用,成为了一个亟待解决的问题。


技术实现要素:

6.本技术实施例提供一种插件预加载方法、装置、电子设备及存储介质,以实现插件的预加载机制,保证插件的正常显示和使用。
7.本技术实施例提供的具体技术方案如下:
8.一种插件预加载方法,包括:
9.响应于针对待加载插件的预加载指令,基于所述待加载插件关联的各待校验库文件,结合库文件校验策略,确定所述待加载插件的文件校验结果,其中,所述文件校验结果为所述待加载插件所依赖的参考库文件是否均存在的校验结果;
10.确定所述文件校验结果为通过时,将所述待加载插件在所述隐藏配置页面中进行加载,获得所述待加载插件加载在所述隐藏配置页面时的位图信息;
11.基于所述位图信息,确定所述待加载插件的插件预加载结果,并基于所述插件预加载结果,对所述待加载插件进行相应的加载处理。
12.可选的,所述基于所述待加载插件关联的各待校验库文件,结合库文件校验策略,确定所述待加载插件的文件校验结果,具体包括:
13.执行针对所述待加载插件的库文件输出命令,获得所述待加载插件的各参考库文件,以及所述各参考库文件各自对应的查询结果;
14.基于各查询结果,确定所述待加载插件的文件校验结果。
15.可选的,所述获得所述各参考库文件各自对应的查询结果,具体包括:
16.针对所述各参考库文件,分别执行以下操作:
17.基于任意一个参考库文件,在所述各待校验库文件中进行匹配,确定是否匹配到与该参考库文件相同的待校验库文件;
18.若确定匹配到与该参考库文件相同的待校验库文件,则确定该参考库文件对应的查询结果为查找到;
19.若确定无法匹配到与该参考库文件相同的待校验库文件,则确定该参考库文件对应的查询结果为未查找到。
20.可选的,基于各查询结果,确定所述待加载插件的文件校验结果,具体包括:
21.若确定各查询结果均为查找到,则确定所述待加载插件的文件校验结果为通过;
22.若确定所述各查询结果中的至少一个查询结果为未查找到,则确定所述待加载插件的文件校验结果为未通过。
23.可选的,将所述待加载插件在所述隐藏配置页面中进行加载,获得所述待加载插件加载在所述隐藏配置页面时的位图信息,具体包括:
24.基于所述待加载插件对应的各原始坐标值,以及预设的隐藏参数,确定所述待加载插件对应的各隐藏坐标值;
25.基于所述各隐藏坐标值,加载所述待加载插件,获得所述待加载插件的位图信息。
26.可选的,基于所述位图信息,确定所述待加载插件的插件预加载结果,具体包括:
27.基于所述待加载插件对应的插件标识,从位图库中查找到与所述插件标识关联的参考位图信息;
28.基于所述位图信息,以及所述参考位图信息,确定所述待加载插件的插件预加载结果。
29.可选的,基于所述位图信息,以及所述参考位图信息,确定所述待加载插件的插件预加载结果,具体包括:
30.若确定所述位图信息中的各像素点各自对应的像素值,与所述参考位图信息中相应的参考像素点对应的像素值均相同,则确定所述待加载插件的插件预加载结果为通过;
31.若确定所述位图信息中的至少一个像素点对应的像素值,与所述参考位图信息中相应的像素点对应的像素值不同,则确定所述待加载插件的插件预加载结果为未通过。
32.一种插件预加载装置,包括:
33.第一校验模块,用于响应于针对待加载插件的预加载指令,基于所述待加载插件关联的各待校验库文件,结合库文件校验策略,确定所述待加载插件的文件校验结果,其中,所述文件校验结果为所述待加载插件所依赖的参考库文件是否均存在的校验结果;
34.获得模块,用于确定所述文件校验结果为通过时,将所述待加载插件在所述隐藏配置页面中进行加载,获得所述待加载插件加载在所述隐藏配置页面时的位图信息;
35.第二校验模块,用于基于所述位图信息,确定所述待加载插件的插件预加载结果,并基于所述插件预加载结果,对所述待加载插件进行相应的加载处理。
36.可选的,所述基于所述待加载插件关联的各待校验库文件,结合库文件校验策略,确定所述待加载插件的文件校验结果时,第一校验模块具体用于:
37.执行针对所述待加载插件的库文件输出命令,获得所述待加载插件的各参考库文件,以及所述各参考库文件各自对应的查询结果;
38.基于各查询结果,确定所述待加载插件的文件校验结果。
39.可选的,所述获得所述各参考库文件各自对应的查询结果时,第一校验模块具体用于:
40.针对所述各参考库文件,分别执行以下操作:
41.基于任意一个参考库文件,在所述各待校验库文件中进行匹配,确定是否匹配到与该参考库文件相同的待校验库文件;
42.若确定匹配到与该参考库文件相同的待校验库文件,则确定该参考库文件对应的查询结果为查找到;
43.若确定无法匹配到与该参考库文件相同的待校验库文件,则确定该参考库文件对应的查询结果为未查找到。
44.可选的,基于各查询结果,确定所述待加载插件的文件校验结果时,第一校验模块具体用于:
45.若确定各查询结果均为查找到,则确定所述待加载插件的文件校验结果为通过;
46.若确定所述各查询结果中的至少一个查询结果为未查找到,则确定所述待加载插件的文件校验结果为未通过。
47.可选的,将所述待加载插件在所述隐藏配置页面中进行加载,获得所述待加载插件加载在所述隐藏配置页面时的位图信息,获得模块具体用于:
48.基于所述待加载插件对应的各原始坐标值,以及预设的隐藏参数,确定所述待加载插件对应的各隐藏坐标值;
49.基于所述各隐藏坐标值,加载所述待加载插件,获得所述待加载插件的位图信息。
50.可选的,基于所述位图信息,确定所述待加载插件的插件预加载结果,第二校验模块具体用于:
51.基于所述待加载插件对应的插件标识,从位图库中查找到与所述插件标识关联的参考位图信息;
52.基于所述位图信息,以及所述参考位图信息,确定所述待加载插件的插件预加载结果。
53.可选的,基于所述位图信息,以及所述参考位图信息,确定所述待加载插件的插件预加载结果时,所述第二校验模块具体用于:
54.若确定所述位图信息中的各像素点各自对应的像素值,与所述参考位图信息中相应的参考像素点对应的像素值均相同,则确定所述待加载插件的插件预加载结果为通过;
55.若确定所述位图信息中的至少一个像素点对应的像素值,与所述参考位图信息中相应的像素点对应的像素值不同,则确定所述待加载插件的插件预加载结果为未通过。
56.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述插件预加载方法的步骤。
57.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述插件预加载方法的步骤。
58.本技术实施例中,响应于针对待加载插件的预加载指令,基于所待加载插件关联的各待校验库文件,结合库文件校验策略,确定待加载插件的文件校验结果,文件校验结果为待加载插件所依赖的参考库文件是否均存在的校验结果,确定文件校验结果为通过时,将待加载插件在隐藏配置页面中进行加载,获得待加载插件加载在隐藏配置页面时的位图
信息,位图信息表征待加载插件显示在隐藏配置页面时的显示窗口的集合,基于位图信息,确定待加载插件的插件预加载结果,并基于插件预加载结果,对待加载插件进行相应的加载处理。这样,通过对待加载插件依赖的各待校验库文件进行校验,从而确定待加载插件所依赖的参考库文件是否均存在,在确定待加载插件依赖的参考库文件均存在时,通过在隐藏配置页面加载待加载插件,对待加载插件是否能够正常显示进行校验,保证了通过校验后的待加载插件为能够正常显示的插件,进一步保证了插件在实际加载过程中的正常显示和使用,实现插件相应的功能。
附图说明
59.图1为本技术实施例中一种插件预加载方法的流程示意图;
60.图2为本技术实施例中一种插件预加载方法的另一流程示意图;
61.图3为本技术实施例中一种插件预加载装置的结构示意图;
62.图4为本技术实施例中电子设备的结构示意图。
具体实施方式
63.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,并不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
64.目前,在浏览器中运行有许多不同的插件,每个插件能够实现不同的功能。
65.相关技术中,在浏览器中安装相关的插件后,可以通过预设的配置页面直接加载插件,并且,在浏览器的地址栏中,通过指定chrome://plugins地址,可以查看加载后的插件对应的插件信息。
66.并且,在加载配置页面过程中,遍历搜索配置页面列出的所有可能的插件路径下的插件,通过执行系统调用函数,可以打开指定的插件库,并通过系统函数dlsym调用插件内部函数,从而实现对插件的加载。
67.然而,由于每个插件在运行时,需要依赖其它库文件辅助实现插件的功能,但是无法解决库文件的依赖问题,包括依赖的库文件是否存在,依赖的库文件的版本是否正确,库文件所在的路径等等,当强行用dlopen函数加载存在问题的插件时,后续可能无法加载正常的同名插件。
68.因此,如何能够实现对插件的预加载,从而保证插件在加载过程中的正常显示和使用,成为了一个亟待解决的问题。
69.为了解决上述问题,本技术实施例中,提供了一种插件预加载方法、装置、电子设备及存储介质,响应于针对待加载插件的预加载指令,基于待加载插件关联的各待校验库文件,结合库文件校验策略,确定待加载插件的文件校验结果,文件校验结果为待加载插件所依赖的库文件是否均存在的校验结果,确定文件校验结果为通过时,将待加载插件在隐藏配置页面中进行加载,获得待加载插件加载在隐藏配置页面时的位图信息,位图信息表征待加载插件显示在隐藏配置页面时的显示窗口的集合,基于位图信息,确定待加载插件的插件预加载结果,并基于插件预加载结果,对待加载插件进行相应的加载处理。这样,通
过对待加载插件所依赖的库文件是否存在进行校验,并对待加载插件所依赖的库文件是否能够正常运行进行校验,基于插件的预加载机制,能够保证插件的正常显示和使用。
70.基于上述实施例,参阅图1所示,为本技术实施例中一种插件预加载方法的流程示意图,具体包括:
71.s10:响应于针对待加载插件的预加载指令,基于待加载插件关联的各待校验库文件,结合库文件校验策略,确定待加载插件的文件校验结果。
72.其中,文件校验结果为待加载插件所依赖的库文件是否均存在的校验结果。
73.本技术实施例中,首先,创建隐藏配置页面,从而能够通过隐藏配置页面加载所有的待加载插件。由于待加载插件在实际加载过程中,可能会出现加载失败的问题,因此,需要对待加载插件进行预加载,当插件预加载成功后,再对插件进行加载。
74.其中,隐藏配置页面用于验证待加载插件的加载是否正常,隐藏配置页面的页面地址例如可以为chrome://invisible-plugins,本技术实施例中对此并不进行限制。
75.需要说明的是,由于本技术实施例中在进行插件预加载时,使用的是隐藏配置页面,因此,用户无法通过浏览器地址栏或者设置页面等方式访问。
76.具体实施时,在浏览器中触发生成针对待加载插件的预加载指令,从而浏览器响应于针对待加载插件的预加载指令,搜索到待加载插件,确定待加载插件关联的各待校验库文件,并基于各待校验库文件,结合文件校验策略,确定待加载插件所依赖的库文件是否均存在,获得待加载插件的文件校验结果。
77.可选的,本技术实施例中,为确定文件校验结果提供了一种可能的实施方式,具体包括:
78.s101:执行针对待加载插件的库文件输出命令,获得待加载插件的各参考库文件,以及各参考库文件各自对应的查询结果。
79.本技术实施例中,可以采用针对待加载插件的库文件输出命令,查询待加载插件的各参考库文件,以及各参考库文件各自对应的查询结果。
80.其中,库文件输出命令例如可以为系统命令ldd,ldd命令是系统提供的工具,可以输出待加载插件依赖的库文件。
81.可选的,本技术实施例中,为确定各参考库文件各自对应的查询结果提供了一种可能的实施方式,下面以任意一个参考库文件为例,对本技术实施例中确定各参考库文件各自对应的查询结果的过程进行详细阐述,具体包括:
82.s1010:基于任意一个参考库文件,在各待校验库文件中进行匹配,确定是否匹配到与该参考库文件相同的待校验库文件。
83.本技术实施例中,在获得各参考库文件后,将任意一个参考库文件,在各待校验库文件中进行匹配,确定是否能够在各待校验库文件中,匹配到与该参考库文件相同的待校验库文件。
84.具体实施时,每个参考库文件,以及每个待校验库文件可以设置用于唯一区分各库文件的文件标识,从而在各待校验文件库中进行匹配时,可以基于参考库文件对应的文件标识,与各待校验库文件各自对应的文件标识进行匹配,确定在各待校验库文件中,是否存在与该参考库文件的文件标识相同的待校验库文件。
85.s1011:若确定匹配到与该参考库文件相同的待校验库文件,则确定该参考库文件
对应的查询结果为查找到。
86.本技术实施例中,若确定能够匹配到与该参考库文件相同的待校验库文件,则确定该参考库文件对应的查询结果为查找到。
87.具体实施时,基于参考库文件对应的文件标识,在各待校验库文件中查找是否有相同文件标识对应的待校验库文件,若确定查找到对应有相同文件标识的待校验库文件,则将该参考库文件的查询结果标记为查找到。
88.例如,假设参考库文件对应的文件标识为a,待加载插件当前关联的待校验库文件分别为待校验库文件1、待校验库文件2、待校验库文件3和待校验库文件4,其中,待校验库文件1对应的文件标识为b,待校验库文件2对应的文件标识为a,待校验库文件3对应的文件标识为v,待校验库文件4对应的文件标识为x,因此,确定待校验库文件2对应的文件标识,与参考库文件对应的文件标识相同,则确定能够在各待校验库文件中,查找到与参考库文件匹配的库文件,并确定该参考库文件对应的查询结果为查找到。
89.s1012:若确定无法匹配到与该参考库文件相同的待校验库文件,则确定该参考库文件对应的查询结果为未查找到。
90.具体实施时,基于参考库文件对应的文件标识,在各待校验库文件中查找是否有相同文件标识对应的待校验库文件,若确定未能够查找到对应有相同文件标识的待校验库文件,则将该参考库文件的查询结果标记为未查找到。
91.例如,假设参考库文件对应的文件标识为f,待加载插件当前关联的待校验库文件分别为待校验库文件1、待校验库文件2、待校验库文件3和待校验库文件4,其中,待校验库文件1对应的文件标识为b,待校验库文件2对应的文件标识为a,待校验库文件3对应的文件标识为v,待校验库文件4对应的文件标识为x,因此,确定待校验库文件1、待校验库文件2、待校验库文件3和待校验库文件4各自对应的文件标识,均与参考库文件对应的文件标识不相同,则确定在各待校验库文件中,无法查找到与参考库文件匹配的库文件,并确定该参考库文件对应的查询结果为未查找到。
92.s102:基于各查询结果,确定待加载插件的文件校验结果。
93.本技术实施例中,基于各参考库文件各自对应的查询结果,确定待加载插件的文件校验结果。
94.可选的,本技术实施例中,为确定待加载插件的文件校验结果提供了一种可能的实施方式,下面对本技术实施例中确定文件校验结果的过程进行详细阐述,具体包括:
95.s1021:若确定各查询结果均为查找到,则确定待加载插件的文件校验结果为通过。
96.本技术实施例中,判断各查询结果是否均为查找到,若确定各查询结果均为查找到,则确定待加载插件的文件校验结果为通过。
97.例如,假设对待加载插件xi执行系统命令ldd后,输出待加载插件xi的各参考库文件,分别为参考库文件1、参考库文件2、参考库文件3和参考库文件4,其中,参考库文件1对应的查询结果为found,参考库文件2对应的查询结果为found,参考库文件3对应的查询结果为found,参考库文件4对应的查询结果为found,则确定待加载插件xi依赖的所有库文件均存在,因此,确定待加载插件的文件校验结果为通过。
98.s1022:若确定各查询结果中的至少一个查询结果为未查找到,则确定待加载插件
的文件校验结果为未通过。
99.本技术实施例中,判断各查询结果是否均为查找到,若确定各查询结果中的至少一个查询结果为未查找到,则确定待加载插件的文件校验结果为未通过。
100.例如,假设对待加载插件xi执行系统命令ldd后,输出待加载插件xi的各参考库文件,分别为参考库文件1、参考库文件2、参考库文件3和参考库文件4,其中,参考库文件1对应的查询结果为not found,参考库文件2对应的查询结果为found,参考库文件3对应的查询结果为found,参考库文件4对应的查询结果为found,则确定待加载插件xi缺少依赖的参考库文件1,因此,确定待加载插件的文件校验结果为未通过。
101.进一步地,若确定待加载插件的文件校验结果为未通过,则确定终止待加载插件的后续加载流程,可重新下载待加载插件所依赖的各个待校验库文件,重新进行加载。
102.s11:确定文件校验结果为通过时,将待加载插件在隐藏配置页面中进行加载,获得待加载插件加载在隐藏配置页面时的位图信息。
103.其中,位图信息表征待加载插件显示在隐藏配置页面时的显示窗口的各像素点各自对应的像素值的集合。
104.本技术实施例中,判断文件校验结果是否为通过,若确定文件校验结果为通过,则将待加载插件在隐藏配置页面中进行加载,从而获得待加载插件加载在隐藏配置页面时的位图信息。
105.可选的,本技术实施例中,为确定待加载插件加载在隐藏配置页面时的位图信息提供了一种可能的实施方式,下面对本技术实施例中获得待加载插件加载在隐藏配置页面时的位图信息进行详细阐述,具体包括:
106.s111:基于待加载插件对应的各原始坐标值,以及预设的隐藏参数,确定待加载插件对应的各隐藏坐标值。
107.本技术实施例中,在加载待加载插件时,能够获得待加载插件加载在配置页面中的显示窗口对应的各原始坐标值,因此,基于待加载插件对应的各原始坐标,以及预设的隐藏参数,对待加载插件对应的各原始坐标进行转化,获得待加载插件对应的各隐藏坐标。
108.其中,隐藏参数例如可以为-1,本技术实施例中对此并不进行限制。
109.例如,待加载插件对应的加载坐标为(a,b),则在隐藏配置页面中,以坐标(-max+|a|,-max+|b|)显示待加载插件,此处取a和b的绝对值,max为坐标最大取值范围。因此,根据计算机领域常用的屏幕坐标系规定,此时待加载插件的坐标位于屏幕区域外的左上角,是不可见区域,用户无法看见。
110.s112:基于各隐藏坐标值,加载待加载插件,获得待加载插件的位图信息。
111.本技术实施例中,基于各隐藏坐标值,加载待加载插件,使得待加载插件能够加载在隐藏配置页面中,同时,获得待加载插件加载在隐藏配置页面时的位图信息。
112.s12:基于位图信息,确定待加载插件的插件预加载结果,并基于插件预加载结果,对待加载插件进行相应的加载处理。
113.可选的,本技术实施例中,为基于位图信息确定待加载插件的插件预加载结果提供可一种可能的实施方式,下面对本技术实施例中确定插件预加载结果的过程进行详细阐述,具体包括:
114.s121:基于待加载插件对应的插件标识,从位图库中查找到与插件标识关联的参
考位图信息。
115.本技术实施例中,在预加载指令中,还包括待加载插件对应的插件标识,因此,可基于待加载插件对应的插件标识,以及插件标识与参考位图信息之间的关联关系,从位图库中查找到与插件标识关联的参考位图信息。
116.需要说明的是,在位图库中,包含有多个插件,以及各插件各自对应的参考位图信息,每个参考位图信息中包括各参考像素点各自对应的像素值。
117.s122:基于位图信息,以及参考位图信息,确定待加载插件的插件预加载结果。
118.本技术实施例中,判断位图信息与参考位图信息是否相同,若确定位图信息与参考位图信息相同,则确定待加载插件的插件预加载结果为正常,若确定位图信息与参考位图信息不同,则确定待加载插件的插件预加载结果为非正常。
119.可选的,本技术实施例中,为确定待加载插件的插件预加载结果提供了一种可能的实施方式,下面对本技术实施例中确定待加载插件的插件预加载结果的过程进行详细阐述,具体包括:
120.s1221:若确定位图信息中的各像素点各自对应的像素值,与参考位图信息中相应的参考像素点对应的像素值均相同,则确定待加载插件的插件预加载结果为通过。
121.本技术实施例中,针对位图信息中的各像素点,分别执行以下操作:
122.确定任意一个像素点对应的像素点标识和像素值,以及,确定参考位图信息中与该像素点标识相同的参考像素点,以及确定出的参考像素点对应的像素值,判断该像素点对应的像素值与参考像素点对应的像素值是否相同,若确定该像素点对应的像素值与参考像素点对应的像素值相同,则确定该像素点对应的像素点校验结果为通过,若确定该像素点对应的像素值与参考像素点对应的像素值不相同,则确定该像素点对应的像素点校验结果为未通过。
123.然后,在确定出位图信息中的各像素点各自对应的像素点校验结果后,判断各像素点校验结果是否均为通过,若确定各像素点校验结果均为通过,则确定位图信息中的各像素点各自对应的像素值,与参考位图信息中相应的参考像素点对应的像素值均相同,确定待加载插件的插件预加载结果为通过。
124.下面以一个例子对本技术实施例中确定待加载插件的插件预加载结果的过程进行详细说明。例如:当隐藏配置页面的待加载插件显示时,保存待加载插件的显示窗口的位图信息,即为bitmapid1,bitmapid1中包含多个像素点各自对应的像素值,在插件正常加载的时候,保存插件的显示窗口的位图信息,即为bitmapid2,并将bitmapid2作为参考位图信息,bitmapid2中包括多个参考像素点各自对应的像素值,因此,参考位图信息为插件正常加载时插件的位图信息,分别比较bitmapid1中的每个像素点的像素值,与bitmapid2中相应的参考像素点对应的像素值是否相同,若确定bitmapid1中的任意一个像素点的像素值,与bitmapid2中的相应的参考像素点对应的像素值不同,则确定待加载插件的插件预加载结果为未通过,若确定bitmapid1中的所有像素点的像素值,与bitmapid2中的相应的参考像素点对应的像素值均相同,则确定待加载插件的插件预加载结果为通过。
125.s1222:若确定位图信息中的至少一个像素点对应的像素值,与参考位图信息中相应的像素点对应的像素值不同,则确定待加载插件的插件预加载结果为未通过。
126.本技术实施例中,在确定出位图信息中的各像素点各自对应的像素点校验结果
后,判断各像素点校验结果是否均为通过,若确定各像素点校验结果均为通过,则确定位图信息中的各像素点各自对应的像素值,与参考位图信息中相应的参考像素点对应的像素值不同,确定待加载插件的插件预加载结果为未通过。
127.需要说明的是,只要确定出位图信息中的任意一个像素点对应的像素值,与参考位图信息中的相应的参考像素点对应的像素值不同,即可确定待加载插件的插件预加载结果为未通过。
128.进一步地,若确定待加载插件的插件预加载结果为未通过,则使用系统命令dlclose卸载待加载插件,并重新设置新的搜索路径,搜索路径例如可以为:export ld_library_path=path。
129.需要说明的是,path属于系统搜索路径集合{/usr/lib;/usr/lib64;/usr/local/lib;/usr/local/lib64;

}。
130.本技术实施例中,通过对待加载插件依赖的各参考库文件是否存在进行校验,并对待加载插件依赖的各参考库文件是否能够正常运行进行校验,能够保证通过校验的待加载插件能够正常运行和使用。
131.基于上述实施例,下面以一个具体的例子对本技术实施例中的插件预加载方法进行详细阐述,参阅图2所示,为本技术实施例中一种插件预加载方法的另一流程示意图,具体包括:
132.s200:创建隐藏配置页面。
133.本技术实施例中,隐藏配置页面用于验证待加载插件的加载是否正常。
134.s201:加载隐藏配置页面,遍历搜索隐藏配置页面列出的所有可能的插件路径下的待加载插件。
135.s202:对待加载插件xi执行系统命令ldd,输出各查询结果。
136.s203:判断各查询结果中是否包含not found,若否,则执行s204,若是,则执行s210。
137.需要说明的是,本技术实施例中,若确定查询结果查找到,则确定查询结果中包含found,若确定查询结果为未查找到,则确定查询结果中包含not found。
138.s204:调用dlopen加载待加载插件xi。
139.s205:基于隐藏参数和各原始坐标,获得各隐藏坐标,并在隐藏配置页面中,以各隐藏坐标显示待加载插件,获得待加载插件的位图信息。
140.s206:判断位图信息与参考位图信息是否相同,若是,则执行s207,若否,则执行s209。
141.s207:通过系统函数dlsym调用插件库内部函数ss,加载待加载插件xi。
142.s208:判断是否包含未校验的待加载插件,若是,则执行s202,若否,则执行s210。
143.s209:设置新的搜索路径,并返回执行s202。
144.s210:结束。
145.基于同一发明构思,本技术实施例中还提供了一种插件预加载装置,该插件预加载装置可以是硬件结构、软件模块、或硬件结构加软件模块。基于上述实施例,参阅图3所示为本技术实施例中一种插件预加载装置的结构示意图,具体包括:
146.第一校验模块300,用于响应于针对待加载插件的预加载指令,基于所述待加载插
件关联的各待校验库文件,结合库文件校验策略,确定所述待加载插件的文件校验结果,其中,所述文件校验结果为所述待加载插件所依赖的参考库文件是否均存在的校验结果;
147.获得模块310,用于确定所述文件校验结果为通过时,将所述待加载插件在所述隐藏配置页面中进行加载,获得所述待加载插件加载在所述隐藏配置页面时的位图信息;
148.第二校验模块320,用于基于所述位图信息,确定所述待加载插件的插件预加载结果,并基于所述插件预加载结果,对所述待加载插件进行相应的加载处理。
149.可选的,所述基于所述待加载插件关联的各待校验库文件,结合库文件校验策略,确定所述待加载插件的文件校验结果时,第一校验模块300具体用于:
150.执行针对所述待加载插件的库文件输出命令,获得所述待加载插件的各参考库文件,以及所述各参考库文件各自对应的查询结果;
151.基于各查询结果,确定所述待加载插件的文件校验结果。
152.可选的,所述获得所述各参考库文件各自对应的查询结果时,第一校验模块300具体用于:
153.针对所述各参考库文件,分别执行以下操作:
154.基于任意一个参考库文件,在所述各待校验库文件中进行匹配,确定是否匹配到与该参考库文件相同的待校验库文件;
155.若确定匹配到与该参考库文件相同的待校验库文件,则确定该参考库文件对应的查询结果为查找到;
156.若确定无法匹配到与该参考库文件相同的待校验库文件,则确定该参考库文件对应的查询结果为未查找到。
157.可选的,基于各查询结果,确定所述待加载插件的文件校验结果时,第一校验模块300具体用于:
158.若确定各查询结果均为查找到,则确定所述待加载插件的文件校验结果为通过;
159.若确定所述各查询结果中的至少一个查询结果为未查找到,则确定所述待加载插件的文件校验结果为未通过。
160.可选的,将所述待加载插件在所述隐藏配置页面中进行加载,获得所述待加载插件加载在所述隐藏配置页面时的位图信息,获得模块310具体用于:
161.基于所述待加载插件对应的各原始坐标值,以及预设的隐藏参数,确定所述待加载插件对应的各隐藏坐标值;
162.基于所述各隐藏坐标值,加载所述待加载插件,获得所述待加载插件的位图信息。
163.可选的,基于所述位图信息,确定所述待加载插件的插件预加载结果,第二校验模块320具体用于:
164.基于所述待加载插件对应的插件标识,从位图库中查找到与所述插件标识关联的参考位图信息;
165.基于所述位图信息,以及所述参考位图信息,确定所述待加载插件的插件预加载结果。
166.可选的,基于所述位图信息,以及所述参考位图信息,确定所述待加载插件的插件预加载结果时,所述第二校验模块320具体用于:
167.若确定所述位图信息中的各像素点各自对应的像素值,与所述参考位图信息中相
应的参考像素点对应的像素值均相同,则确定所述待加载插件的插件预加载结果为通过;
168.若确定所述位图信息中的至少一个像素点对应的像素值,与所述参考位图信息中相应的像素点对应的像素值不同,则确定所述待加载插件的插件预加载结果为未通过。
169.基于上述实施例,参阅图4所示为本技术实施例中电子设备的结构示意图。
170.本技术实施例提供了一种电子设备,该电子设备可以包括处理器410(center processing unit,cpu)、存储器420、输入设备430和输出设备440等,输入设备430可以包括键盘、鼠标、触摸屏等,输出设备440可以包括显示设备,如液晶显示器(liquid crystal display,lcd)、阴极射线管(cathode ray tube,crt)等。
171.存储器420可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器410提供存储器420中存储的程序指令和数据。在本技术实施例中,存储器420可以用于存储本技术实施例中任一种插件预加载方法的程序。
172.处理器410通过调用存储器420存储的程序指令,处理器410用于按照获得的程序指令执行本技术实施例中任一种插件预加载方法。
173.基于上述实施例,本技术实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的任一种插件预加载方法。
174.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
175.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
176.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
177.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
178.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1