一种创建插件方法及装置制造方法及图纸

技术编号:8215479 阅读:131 留言:0更新日期:2013-01-17 12:44
本申请提供了一种创建插件方法及装置,其中,所述方法包括:生成待创建插件的配置文件,所述配置文件中包括定义的插件调用接口和回调接口;依据所述插件的配置文件实现所述定义的插件调用接口和回调接口;生成用于描述所述插件个性化信息的属性文件;根据所述插件调用接口和回调接口以及所述属性文件生成插件;对所述插件进行签名。本申请可以提高插件的完整性和安全性,避免插件被非法篡改,保证加载的插件在实际中的有效应用。

【技术实现步骤摘要】

本申请涉及插件处理的
,特别是涉及一种创建插件方法及装置
技术介绍
在软件开发中,为了方便对软件进行功能扩展,往往采用插件方式进行开发,将软件所能实现的一个一个功能封装在插件中,最后将各个插件集成在软件主程序包中,通过与主程序代码文件一同发布实现插件的加载。插件使得程序运行时具有较高的运行效率,因此在现有的很多操作系统,例如Android系统,都具有相当广泛的应用。现有的创建插件的方式是在程序初始化和运行中对源文件进行编译,并打包生成插件包,得到所要加载的插件。目前插件使用过程中的一个问题是缺乏安全性,因为插件在创建的过程中没有任何安全机制,极有可能被外部的脚本文件修改而添加一些不安全或恶意的代码,而且其安全性只能通过调试人员查看源文件来保证。但对于插件的广泛运用,通过这种方式保证安全性几乎是不可能的。因而,目前本领域技术人员迫切需要解决的一个技术问题就是如何保证创建的插件完整性和安全性,以确保用户使用插件的有效性。
技术实现思路
本申请提供了一种创建插件方法及装置,用以保证所述插件的完整性和安全性,保证所述插件在实际中的有效应用。为了解决上述问题,本申请公开了一种创建插件方法,包括生成待创建插件的配置文件,所述配置文件中包括定义的插件调用接口和回调接Π ;依据所述插件的配置文件实现所述定义的插件调用接口和回调接口 ;生成用于描述所述插件个性化信息的属性文件;根据所述插件调用接口和回调接口以及所述属性文件生成插件;对所述插件进行签名。优选地,所述调用接口包括插件环境配置接口和插件主调接口,所述回调接口包括插件生命周期接口和事件监听接口 ;其中,所述插件环境配置接口包括用于插件配置信息的配置接口 PluginEnv,用于插件初始化操作的初始化接口 prepare,用于当前插件版本信息的版本接口getVersion,用于验证插件正确性的验证接口 verifyPlugin,以及用于测试插件完整性的测试接口 testPlugin ;所述插件主调接口包括插件的主体部分PluginMain,用于插件初始化操作的初始化接口 prepare,用于构造插件UI界面的界面接口 buiIdMainView,以及用于关联插件的生命周期与主程序的关联接口 registePluginLifeCycle ;所述插件生命周期接口包括用于插件初始化数据时回调的初始化接口onPluginCreate,用于插件开始运行时回调的运行接口 onPluginStart,用于插件运行界面已经准备完毕时回调的准备接口 onPluginResume,用于当插件处于暂停状态时回调的暂停接口 onPluginPause,用于插件停止运行时回调的停止接口 onPluginStop,用于插件运行过程中出现错误时回调的错误接口 onPluginEiror,用于插件销毁时回调用的销毁接口 onPluginDestory,以及用于插件内部产生操作事件后回调到主程序的事件接口SetOnPluginEventListener ;所述事件监听接口包括用于插件内部产生操作事件后回调到主程序的事件接口SetOnPluginEventListenerο优选地,在所述依据插件的配置文件实现所述定义的插件调用接口和回调接口的步骤之前,还包括在操作系统平台上,新建一个空的工程;在所述工程中导入相关联库文件。优选地,所述操作系统平台为Android系统平台,所述插件为JAR插件,所述根据插件调用接口和回调接口以及所述属性文件生成插件的步骤包括将所述调用接口和回调接口编译成Java源程序.Java文件,将所述Java源程序.java文件转换成Java字节代码.Class文件;将所述Java字节代码.class文件打包成可执行文件classes, dex ;将所述可执行文件classes, dex和属性文件打包成JAR插件。优选地,在所述对插件进行签名的步骤之后,还包括将所述插件中的冗余数据和无效数据进行删除。本申请实施例还公开了一种创建插件的装置,包括接口定义模块,用于生成待创建插件的配置文件,所述配置文件中定义的插件调用接口和回调接口;接口实现模块,用于依据所述插件的配置文件实现所述定义的插件调用接口和回调接口 ;属性文件生成模块,用于生成属性文件,所述属性文件用于描述所述插件的个性化信息;插件生成模块,用于根据所述插件调用接口和回调接口以及所述属性文件生成插件; 签名模块,用于对所述插件进行签名。优选地,所述调用接口包括插件环境配置接口和插件主调接口,所述回调接口包括插件生命周期接口和事件监听接口 ;其中,所述插件环境配置接口包括用于插件配置信息的配置接口 PluginEnv,用于插件初始化操作的初始化接口 prepare,用于当前插件版本信息的版本接口getVersion,用于验证插件正确性的验证接口 verifyPlugin,以及用于测试插件完整性的测试接口 testPlugin ;所述插件主调接口包括插件的主体部分PluginMain,用于插件初始化操作的初始化接口 prepare,用于构造插件UI界面的界面接口 buiIdMainView,以及用于关联插件的生命周期与主程序的关联接口 registePluginLifeCycle ;所述插件生命周期接口包括用于插件初始化数据时回调的初始化接口onPluginCreate,用于插件开始运行时回调的运行接口 onPluginStart,用于插件运行界面已经准备完毕时回调的准备接口 onPluginResume,用于当插件处于暂停状态时回调的暂停接口 onPluginPause,用于插件停止运行时回调的停止接口 onPluginStop,用于插件运行过程中出现错误时回调的错误接口 onPluginEiror,用于插件销毁时回调用的销毁接口 onPluginDestory,以及用于插件内部产生操作事件后回调到主程序的事件接口SetOnPluginEventListener ;所述事件监听接口包括用于插件内部产生操作事件后回调到主程序的事件接口SetOnPluginEventListenerο优选地,还包括工程新建模块,用于在操作系统平台上,新建一个空的工程;关联库导入模块,用于在所述工程中导入相关联库文件。优选地,操作系统平台为Android系统平台,所述插件为JAR插件,所述插件生成模块包括编译子模块,用于将所述调用接口和回调接口编译成Java源程序.java文件;转换子模块,用于将所述Java源程序.java文件转换成Java字节代码.Class文件;可执行文件打包子模块,用于将所述Java字节代码.class文件打包成可执行文件 classes, dex ;插件打包子模块,用于将所述可执行文件classes, dex和属性文件打包成JAR插件。优选地,所述装置还包括优化模块,用于将所述插件中的冗余数据和无效数据进行删除。与现有技术相比,本申请包括以下优点本申请通过在创建插件的过程中,针对插件整体进行签名,具体通过定义和实现所述插件的调用接口和回调接口,并根据该调用接口和回调接口,运用jar命令生成插件,最后对所述插件进行数字签名,使得主程序在加载插件时可以依据所述签名对插件进行验证,并只在验证通过的情况下加本文档来自技高网...

【技术保护点】
一种创建插件方法,其特征在于,包括:生成待创建插件的配置文件,所述配置文件中包括定义的插件调用接口和回调接口;依据所述插件的配置文件实现所述定义的插件调用接口和回调接口;生成用于描述所述插件个性化信息的属性文件;根据所述插件调用接口和回调接口以及所述属性文件生成插件;对所述插件进行签名。

【技术特征摘要】

【专利技术属性】
技术研发人员:王鑫张建法
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1