CN103389905A - 插件加载方法及*** - Google Patents
插件加载方法及*** Download PDFInfo
- Publication number
- CN103389905A CN103389905A CN2012101440669A CN201210144066A CN103389905A CN 103389905 A CN103389905 A CN 103389905A CN 2012101440669 A CN2012101440669 A CN 2012101440669A CN 201210144066 A CN201210144066 A CN 201210144066A CN 103389905 A CN103389905 A CN 103389905A
- Authority
- CN
- China
- Prior art keywords
- plug
- file
- add
- unit
- software
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种插件加载方法及***,该方法包括:软件启动时扫描插件文件夹;读取插件文件夹内的插件文件,根据预设的安全条件对读取的插件文件的属性特征进行判断,若插件文件的属性特征满足安全条件则插件文件为安全可用的插件文件;将插件文件夹内安全可用的插件文件的文件名保存到插件列表文件;依次解析插件列表文件内文件名对应的插件文件,提取每个插件文件的插件描述信息,并对插件描述信息的格式是否正确进行判断,将格式正确的插件描述信息保存到插件对象列表文件;创建插件功能树,读取插件对象列表文件,将插件对象列表文件记载的所有插件对象挂载到插件功能树;根据插件功能树将各功能对象添加到软件主窗体界面中实现功能扩展。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种插件加载方法及***。
背景技术
在现实应用场景中,一个软件即使再庞大,也无法满足和覆盖所有需求。因而设置软件具有扩展功能,这样用户可以将自己所需要的功能模块加载到软件中。其中,功能模块可以以插件的形式存在。
中国发明申请CN201010163167.1提出了一种加载插件的方法,当软件初始化时,加载扩展目录中的每个插件,将每个插件的相关信息存储在注册表中,相关信息至少包括插件的ID、接口描述信息、功能描述信息和类加载器;实时监听扩展目录,如果监听出扩展目录出现新插件,将新插件包括的所有类加载到JAVA虚拟机中并激活该新插件,并根据该新插件的相关信息更新注册表。
上述方案解决了普通用户无法加载新插件以及加载新插件后不需要重新初始化就能使用的问题。然而,上述方案存在以下不足:在软件的运行过程中需要实时监听扩展目录,而在软件运行的全过程中,实时监听扩展目录始终占用一定的CPU和内存资源,导致计算机***整体性能下降。
发明内容
本发明提供一种插件加载方法及***,用以节约计算机***的CPU和内存资源,提升***性能。
为达到上述目的,本发明提供了一种插件加载方法,其包括以下步骤:
在软件启动时,扫描插件文件夹,插件文件夹位于软件所在的计算机***的硬盘空间;
读取插件文件夹内的插件文件,根据预设的安全条件对读取的插件文件的属性特征进行判断,若插件文件的属性特征满足安全条件则插件文件为安全可用的插件文件,否则为不可用的插件文件;
将插件文件夹内安全可用的插件文件的文件名保存到插件列表文件;
依次解析插件列表文件内文件名对应的插件文件,提取每个插件文件的插件描述信息,并对提取的插件描述信息的格式是否正确进行判断,将所有格式正确的插件描述信息保存到插件对象列表文件;
创建插件功能树,读取插件对象列表文件,将插件对象列表文件记载的所有插件对象挂载到插件功能树;
根据插件功能树将各功能对象添加到软件主窗体界面中实现业务功能扩展。
进一步地,插件文件夹的文件路径置于预先设置的插件目录中且处于插件目录的顶层,插件目录是软件的根目录的子目录。
进一步地,当需要添加新的插件时,重启软件对已拷贝新的插件文件的插件文件夹进行加载。
进一步地,当需要去除插件时,重启软件对已删除该插件对应的插件文件的插件文件夹进行加载。
为达到上述目的,本发明还提供了一种插件加载***,其包括:
插件资源扫描模块,用于在软件启动时扫描插件文件夹,插件文件夹位于软件所在的计算机***的硬盘空间;
插件资源安全验证模块,用于读取插件文件夹内的插件文件,根据预设的安全条件对读取的插件文件的属性特征进行判断,若插件文件的属性特征满足安全条件则插件文件为安全可用的插件文件,否则为不可用的插件文件,并将插件文件夹内安全可用的插件文件的文件名保存到插件列表文件;
插件资源解析模块,用于依次解析插件列表文件内文件名对应的插件文件,提取每个插件文件的插件描述信息,并对提取的插件描述信息的格式是否正确进行判断,将所有格式正确的插件描述信息保存到插件对象列表文件;
插件功能树创建模块,用于创建插件功能树,读取插件对象列表文件,将插件对象列表文件记载的所有插件对象挂载到插件功能树;
插件功能树加载模块,用于根据插件功能树将各功能对象添加到软件主窗体界面中实现业务功能扩展。
进一步地,插件文件夹的文件路径置于预先设置的插件目录中且处于插件目录的顶层,插件目录是软件的根目录的子目录。
进一步地,当需要添加新的插件时,重启软件对已拷贝新的插件文件的插件文件夹进行加载。
进一步地,当需要去除插件时,重启软件对已删除该插件对应的插件文件的插件文件夹进行加载。
上述实施例中,在待加载插件的软件所在的计算机***的硬盘空间建立一个插件文件夹,将用户所需的插件文件拷贝至插件文件夹,软件启动时执行上述步骤自动完成加载插件功能,不需要用户做任何专门的操作,同时计算机***不用实时监控插件文件目录,节约了***的CPU和内存资源,提升了***性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例的插件加载方法流程图;
图2为本发明一实施例的插件加载***模块图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例的插件加载方法流程图;如图1所示,该方法包括以下步骤:
S102,在软件启动时,扫描插件文件夹,插件文件夹位于软件所在的计算机***的硬盘空间;
S104,读取插件文件夹内的插件文件,根据预设的安全条件对读取的插件文件的属性特征进行判断,若插件文件的属性特征满足安全条件则插件文件为安全可用的插件文件,否则为不可用的插件文件;
S106,将插件文件夹内安全可用的插件文件的文件名保存到插件列表文件;
S108,依次解析插件列表文件内文件名对应的插件文件,提取每个插件文件的插件描述信息,并对提取的插件描述信息的格式是否正确进行判断,将所有格式正确的插件描述信息保存到插件对象列表文件;
S110,创建插件功能树,读取插件对象列表文件,将插件对象列表文件记载的所有插件对象挂载到插件功能树;
S112,根据插件功能树将各功能对象添加到软件主窗体界面中实现业务功能扩展。
本实施例中,在待加载插件的软件所在的计算机***的硬盘空间建立一个插件文件夹,将用户所需的插件文件拷贝至插件文件夹,软件启动时执行上述步骤自动完成加载插件功能,不需要用户做任何专门的操作,同时计算机***不用实时监控插件文件目录,节约了***的CPU和内存资源,提升了***性能。
例如,为便于在软件启动时加载所有插件,插件文件夹的文件路径置于预先设置的插件目录中且处于插件目录的顶层,插件目录是软件的根目录的子目录。
例如,当需要添加新的插件时,用户将新增的插件文件拷贝到插件文件夹,重启软件对已拷贝新的插件文件的插件文件夹进行加载,即可完成新的插件的添加。
例如,当需要去除插件时,用户将要去除的插件文件从插件文件夹删除,重启软件对已删除该插件对应的插件文件的插件文件夹进行加载。
图2为本发明一实施例的插件加载***模块图。如图2所示,该***包括:
插件资源扫描模块10,用于在软件启动时扫描插件文件夹,插件文件夹位于软件所在的计算机***的硬盘空间;
插件资源安全验证模块20,用于读取插件文件夹内的插件文件,根据预设的安全条件对读取的插件文件的属性特征进行判断,若插件文件的属性特征满足安全条件则插件文件为安全可用的插件文件,否则为不可用的插件文件,并将插件文件夹内安全可用的插件文件的文件名保存到插件列表文件;
插件资源解析模块30,用于依次解析插件列表文件内文件名对应的插件文件,提取每个插件文件的插件描述信息,并对提取的插件描述信息的格式是否正确进行判断,将所有格式正确的插件描述信息保存到插件对象列表文件;
插件功能树创建模块40,用于创建插件功能树,读取插件对象列表文件,将插件对象列表文件记载的所有插件对象挂载到插件功能树;
插件功能树加载模块50,用于根据插件功能树将各功能对象添加到软件主窗体界面中实现业务功能扩展。
本实施例中,在待加载插件的软件所在的计算机***的硬盘空间建立一个插件文件夹,将用户所需的插件文件拷贝至插件文件夹,软件启动时执行上述步骤自动完成加载插件功能,不需要用户做任何专门的操作,同时计算机***不用实时监控插件文件目录,节约了***的CPU和内存资源,提升了***性能。
例如,当需要添加新的插件时,用户将新增的插件文件拷贝到插件文件夹,重启软件对已拷贝新的插件文件的插件文件夹进行加载,即可完成新的插件的添加。
例如,当需要去除插件时,用户将要去除的插件文件从插件文件夹删除,重启软件对已删除该插件对应的插件文件的插件文件夹进行加载。
本领域普通技术人员可以理解,关于插件如何实现是本领域的公知技术,而这并非本发明的重点,在此不再赘述。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (8)
1.一种插件加载方法,其特征在于,包括以下步骤:
在软件启动时,扫描插件文件夹,所述插件文件夹位于所述软件所在的计算机***的硬盘空间;
读取所述插件文件夹内的插件文件,根据预设的安全条件对读取的所述插件文件的属性特征进行判断,若所述插件文件的属性特征满足所述安全条件则所述插件文件为安全可用的插件文件,否则为不可用的插件文件;
将所述插件文件夹内安全可用的插件文件的文件名保存到插件列表文件;
依次解析所述插件列表文件内文件名对应的插件文件,提取每个插件文件的插件描述信息,并对提取的所述插件描述信息的格式是否正确进行判断,将所有格式正确的插件描述信息保存到插件对象列表文件;
创建插件功能树,读取所述插件对象列表文件,将所述插件对象列表文件记载的所有插件对象挂载到所述插件功能树;
根据所述插件功能树将各功能对象添加到软件主窗体界面中实现业务功能扩展。
2.根据权利要求1所述的插件加载方法,其特征在于,所述插件文件夹的文件路径置于预先设置的插件目录中且处于所述插件目录的顶层,所述插件目录是所述软件的根目录的子目录。
3.根据权利要求1所述的插件加载方法,其特征在于,当需要添加新的插件时,重启所述软件对已拷贝新的插件文件的所述插件文件夹进行加载。
4.根据权利要求1所述的插件加载方法,其特征在于,当需要去除插件时,重启所述软件对已删除该插件对应的插件文件的所述插件文件夹进行加载。
5.一种插件加载***,其特征在于,包括:
插件资源扫描模块,用于在软件启动时扫描插件文件夹,所述插件文件夹位于所述软件所在的计算机***的硬盘空间;
插件资源安全验证模块,用于读取所述插件文件夹内的插件文件,根据预设的安全条件对读取的所述插件文件的属性特征进行判断,若所述插件文件的属性特征满足所述安全条件则所述插件文件为安全可用的插件文件,否则为不可用的插件文件,并将所述插件文件夹内安全可用的插件文件的文件名保存到插件列表文件;
插件资源解析模块,用于依次解析所述插件列表文件内文件名对应的插件文件,提取每个插件文件的插件描述信息,并对提取的所述插件描述信息的格式是否正确进行判断,将所有格式正确的插件描述信息保存到插件对象列表文件;
插件功能树创建模块,用于创建插件功能树,读取所述插件对象列表文件,将所述插件对象列表文件记载的所有插件对象挂载到所述插件功能树;
插件功能树加载模块,用于根据所述插件功能树将各功能对象添加到软件主窗体界面中实现业务功能扩展。
6.根据权利要求5所述的插件加载***,其特征在于,所述插件文件夹的文件路径置于预先设置的插件目录中且处于所述插件目录的顶层,所述插件目录是所述软件的根目录的子目录。
7.根据权利要求5所述的插件加载***,其特征在于,当需要添加新的插件时,重启所述软件对已拷贝新的插件文件的所述插件文件夹进行加载。
8.根据权利要求5所述的插件加载***,其特征在于,当需要去除插件时,重启所述软件对已删除该插件对应的插件文件的所述插件文件夹进行加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210144066.9A CN103389905B (zh) | 2012-05-10 | 2012-05-10 | 插件加载方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210144066.9A CN103389905B (zh) | 2012-05-10 | 2012-05-10 | 插件加载方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103389905A true CN103389905A (zh) | 2013-11-13 |
CN103389905B CN103389905B (zh) | 2016-08-17 |
Family
ID=49534185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210144066.9A Active CN103389905B (zh) | 2012-05-10 | 2012-05-10 | 插件加载方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103389905B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536733A (zh) * | 2014-12-10 | 2015-04-22 | 广东欧珀移动通信有限公司 | 描述插件安装包的方法及移动终端 |
CN105786562A (zh) * | 2016-02-04 | 2016-07-20 | 百度在线网络技术(北京)有限公司 | 一种集成插件的方法和装置 |
CN108563472A (zh) * | 2018-04-03 | 2018-09-21 | 北京奇虎科技有限公司 | 基于多开应用的服务插件加载方法及装置 |
CN108959935A (zh) * | 2018-06-25 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种漏洞插件批量执行方法及装置 |
CN111949280A (zh) * | 2020-08-12 | 2020-11-17 | 深圳市友华软件科技有限公司 | 确保预装插件在出厂时正确安装的方法和装置 |
CN112148287A (zh) * | 2020-08-21 | 2020-12-29 | 烽火通信科技股份有限公司 | 一种表格动态显示方法、装置以及电子设备 |
WO2023022652A3 (zh) * | 2021-08-20 | 2023-05-04 | 阿里巴巴新加坡控股有限公司 | 开发方法、控制方法及计算设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937353A (zh) * | 2010-09-20 | 2011-01-05 | 中兴通讯股份有限公司 | 一种插件部署和加载的方法及装置 |
CN102214109A (zh) * | 2010-04-08 | 2011-10-12 | 深圳市金蝶中间件有限公司 | 一种加载插件的方法及装置 |
CN102262541A (zh) * | 2011-08-12 | 2011-11-30 | 北京思创银联科技股份有限公司 | 动态配置插件启动的方法 |
-
2012
- 2012-05-10 CN CN201210144066.9A patent/CN103389905B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214109A (zh) * | 2010-04-08 | 2011-10-12 | 深圳市金蝶中间件有限公司 | 一种加载插件的方法及装置 |
CN101937353A (zh) * | 2010-09-20 | 2011-01-05 | 中兴通讯股份有限公司 | 一种插件部署和加载的方法及装置 |
CN102262541A (zh) * | 2011-08-12 | 2011-11-30 | 北京思创银联科技股份有限公司 | 动态配置插件启动的方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563429B (zh) * | 2014-12-10 | 2021-06-29 | Oppo广东移动通信有限公司 | 描述插件安装包的方法及移动终端 |
CN104536733B (zh) * | 2014-12-10 | 2018-05-11 | 广东欧珀移动通信有限公司 | 描述插件安装包的方法及移动终端 |
CN108563429A (zh) * | 2014-12-10 | 2018-09-21 | Oppo广东移动通信有限公司 | 描述插件安装包的方法及移动终端 |
CN104536733A (zh) * | 2014-12-10 | 2015-04-22 | 广东欧珀移动通信有限公司 | 描述插件安装包的方法及移动终端 |
CN105786562A (zh) * | 2016-02-04 | 2016-07-20 | 百度在线网络技术(北京)有限公司 | 一种集成插件的方法和装置 |
CN108563472B (zh) * | 2018-04-03 | 2021-07-09 | 北京奇虎科技有限公司 | 基于多开应用的服务插件加载方法及装置 |
CN108563472A (zh) * | 2018-04-03 | 2018-09-21 | 北京奇虎科技有限公司 | 基于多开应用的服务插件加载方法及装置 |
CN108959935A (zh) * | 2018-06-25 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种漏洞插件批量执行方法及装置 |
CN108959935B (zh) * | 2018-06-25 | 2021-08-20 | 郑州云海信息技术有限公司 | 一种漏洞插件批量执行方法及装置 |
CN111949280A (zh) * | 2020-08-12 | 2020-11-17 | 深圳市友华软件科技有限公司 | 确保预装插件在出厂时正确安装的方法和装置 |
CN111949280B (zh) * | 2020-08-12 | 2023-11-14 | 深圳市友华软件科技有限公司 | 确保预装插件在出厂时正确安装的方法和装置 |
CN112148287A (zh) * | 2020-08-21 | 2020-12-29 | 烽火通信科技股份有限公司 | 一种表格动态显示方法、装置以及电子设备 |
WO2023022652A3 (zh) * | 2021-08-20 | 2023-05-04 | 阿里巴巴新加坡控股有限公司 | 开发方法、控制方法及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103389905B (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103389905A (zh) | 插件加载方法及*** | |
US11243792B2 (en) | Image file conversion method and apparatus | |
CN111338854B (zh) | 基于Kubernetes集群快速恢复数据的方法及*** | |
US8627033B2 (en) | Storage device migration and redirection | |
CN102360410B (zh) | 一种文件***的用户操作发现方法和装置 | |
CN103369003A (zh) | 一种利用云计算扫描移动设备的冗余文件的方法和*** | |
CN103425468B (zh) | 插件式软件集成方法及装置 | |
CN101944129B (zh) | 无盘***及其工作站,工作站构建本地根文件***的方法 | |
CN102841802B (zh) | 移动终端的软件升级方法 | |
WO2017005126A1 (zh) | 一种面向多硬件平台的应用程序管理方法 | |
CN104035842A (zh) | 一种删除和恢复内置应用程序的方法 | |
KR20140053998A (ko) | 모바일 단말의 픽처들을 관리하기 위한 방법 및 디바이스 | |
US20170371894A1 (en) | Samba configuration management method and system for network device | |
CN112579202B (zh) | Windows***的服务性程序编辑方法、装置、设备及存储介质 | |
CN112596951A (zh) | 一种nas数据容灾方法、装置、设备及存储介质 | |
CN102393848A (zh) | 获取数据终端设备识别信息的方法和*** | |
CN103984621B (zh) | 日志分离方法和*** | |
CN103577554A (zh) | 触发Android设备多媒体数据库扫描的方法及装置 | |
WO2019237822A1 (zh) | 一种安卓***开机速度控制方法、智能设备及存储介质 | |
CN101986662B (zh) | 一种widget实例运行方法及*** | |
CN105207830A (zh) | 一种终端信息的检测方法、装置及终端 | |
US10007529B2 (en) | Data terminal running mode switching method, device, and data terminal | |
CN103176832B (zh) | 一种类unix操作***运行虚拟操作***的方法及装置 | |
CN105787359A (zh) | 进程守护方法和装置 | |
CN102760212B (zh) | 一种基于存储镜像克隆机制虚拟桌面恶意代码检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |