CN103389905B - 插件加载方法及系统 - Google Patents
插件加载方法及系统 Download PDFInfo
- Publication number
- CN103389905B CN103389905B CN201210144066.9A CN201210144066A CN103389905B CN 103389905 B CN103389905 B CN 103389905B CN 201210144066 A CN201210144066 A CN 201210144066A CN 103389905 B CN103389905 B CN 103389905B
- Authority
- CN
- China
- Prior art keywords
- file
- plug
- 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.)
- Active
Links
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 (6)
1.一种插件加载方法,其特征在于,包括以下步骤:
在软件启动时,扫描插件文件夹,所述插件文件夹位于所述软件所在的计算机系统的硬盘空间;
读取所述插件文件夹内的插件文件,根据预设的安全条件对读取的所述插件文件的属性特征进行判断,若所述插件文件的属性特征满足所述安全条件则所述插件文件为安全可用的插件文件,否则为不可用的插件文件;
将所述插件文件夹内安全可用的插件文件的文件名保存到插件列表文件;
依次解析所述插件列表文件内文件名对应的插件文件,提取每个插件文件的插件描述信息,并对提取的所述插件描述信息的格式是否正确进行判断,将所有格式正确的插件描述信息保存到插件对象列表文件;
创建插件功能树,读取所述插件对象列表文件,将所述插件对象列表文件记载的所有插件对象挂载到所述插件功能树;
根据所述插件功能树将各功能对象添加到软件主窗体界面中实现业务功能扩展;
所述插件文件夹的文件路径置于预先设置的插件目录中且处于所述插件目录的顶层,所述插件目录是所述软件的根目录的子目录。
2.根据权利要求1所述的插件加载方法,其特征在于,当需要添加新的插件时,重启所述软件对已拷贝新的插件文件的所述插件文件夹进行加载。
3.根据权利要求1所述的插件加载方法,其特征在于,当需要去除插件时,重启所述软件对已删除该插件对应的插件文件的所述插件文件夹进行加载。
4.一种插件加载系统,其特征在于,包括:
插件资源扫描模块,用于在软件启动时扫描插件文件夹,所述插件文件夹位于所述软件所在的计算机系统的硬盘空间;
插件资源安全验证模块,用于读取所述插件文件夹内的插件文件,根据预设的安全条件对读取的所述插件文件的属性特征进行判断,若所述插件文件的属性特征满足所述安全条件则所述插件文件为安全可用的插件文件,否则为不可用的插件文件,并将所述插件文件夹内安全可用的插件文件的文件名保存到插件列表文件;
插件资源解析模块,用于依次解析所述插件列表文件内文件名对应的插件文件,提取每个插件文件的插件描述信息,并对提取的所述插件描述信息的格式是否正确进行判断,将所有格式正确的插件描述信息保存到插件对象列表文件;
插件功能树创建模块,用于创建插件功能树,读取所述插件对象列表文件,将所述插件对象列表文件记载的所有插件对象挂载到所述插件功能树;
插件功能树加载模块,用于根据所述插件功能树将各功能对象添加到软件主窗体界面中实现业务功能扩展;
其中,所述插件文件夹的文件路径置于预先设置的插件目录中且处于所述插件目录的顶层,所述插件目录是所述软件的根目录的子目录。
5.根据权利要求4所述的插件加载系统,其特征在于,当需要添加新的插件时,重启所述软件对已拷贝新的插件文件的所述插件文件夹进行加载。
6.根据权利要求4所述的插件加载系统,其特征在于,当需要去除插件时,重启所述软件对已删除该插件对应的插件文件的所述插件文件夹进行加载。
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 CN103389905A (zh) | 2013-11-13 |
CN103389905B true 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) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563429B (zh) * | 2014-12-10 | 2021-06-29 | Oppo广东移动通信有限公司 | 描述插件安装包的方法及移动终端 |
CN105786562A (zh) * | 2016-02-04 | 2016-07-20 | 百度在线网络技术(北京)有限公司 | 一种集成插件的方法和装置 |
CN108563472B (zh) * | 2018-04-03 | 2021-07-09 | 北京奇虎科技有限公司 | 基于多开应用的服务插件加载方法及装置 |
CN108959935B (zh) * | 2018-06-25 | 2021-08-20 | 郑州云海信息技术有限公司 | 一种漏洞插件批量执行方法及装置 |
CN111949280B (zh) * | 2020-08-12 | 2023-11-14 | 深圳市友华软件科技有限公司 | 确保预装插件在出厂时正确安装的方法和装置 |
CN112148287B (zh) * | 2020-08-21 | 2022-05-27 | 烽火通信科技股份有限公司 | 一种表格动态显示方法、装置以及电子设备 |
CN113849320A (zh) * | 2021-08-20 | 2021-12-28 | 阿里巴巴新加坡控股有限公司 | 开发方法、控制方法及计算设备 |
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 | 北京思创银联科技股份有限公司 | 动态配置插件启动的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103389905A (zh) | 2013-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103389905B (zh) | 插件加载方法及系统 | |
CN105376277B (zh) | 一种数据同步方法及装置 | |
CN110096476A (zh) | 数据备份方法、装置及计算机可读存储介质 | |
CN106021031B (zh) | 一种btrfs文件系统的删除数据恢复方法和装置 | |
CN103064738B (zh) | Linux下本地应用程序窗体嵌入浏览器的方法及系统 | |
CN103425468B (zh) | 插件式软件集成方法及装置 | |
CN105068856A (zh) | 基于镜像快照的虚拟机备份系统及备份方法 | |
CN110162517A (zh) | 数据迁移方法、装置、设备及计算机可读存储介质 | |
CN102724184B (zh) | 一种网页收藏分享方法及服务器 | |
CN104143069B (zh) | 一种保护系统文件的方法及系统 | |
CN105447072B (zh) | 可配置的界面框架及利用该框架的搜索方法和系统 | |
RU2608676C2 (ru) | Способ и устройство для резервного копирования данных и электронное устройство | |
CN103646072A (zh) | 文件自动分类方法及移动终端 | |
CN105391587A (zh) | 一种网络设备的Samba配置管理方法及系统 | |
CN103677517A (zh) | 一种图片查找方法和装置 | |
CN103595742B (zh) | 调试网页css的方法及装置 | |
CN103226603A (zh) | 一种基于移动存储设备的文件同步更新方法及其系统 | |
CN102932476B (zh) | 网络存储同步系统 | |
CN104580298B (zh) | 文件上传处理方法及装置 | |
CN108108478B (zh) | 数据格式转换方法、系统及电子设备 | |
CN106708479B (zh) | 一种页面渲染方法及装置 | |
US20160277477A1 (en) | Information processing apparatus, terminal device, information processing method, and non-transitory computer readable recording medium | |
CN105404663A (zh) | 一种Android设备文件列表的显示方法及系统 | |
CN111552956B (zh) | 一种用于后台管理的角色权限控制方法及装置 | |
CN102750391A (zh) | 一种基于Hadoop分布式文件预览方法及其系统 |
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 |