一种基于动态加载组件的应用程序开发方法技术

技术编号:22658449 阅读:55 留言:0更新日期:2019-11-28 03:13
本发明专利技术公开了一种基于动态加载组件的应用程序开发方法,本发明专利技术系统涉及到软件的安装文件夹资源布局,软件启动时加载指定目录的下的组件,并且在软件启动后运行组件以完成软件功能目的模型和系统。基于这种系统可对组件进行动态加载(即也可以在软件运行后指定目录加载组件),卸载,禁用,以方便软件可以在之后的更新时增加小功能或者更新子组件,从而把对软件的整体影响降到最低.而且这种组件是项目独立的,可以多人开发各自的组件,独立运行和单元测试,从而提高软件开发速度和软件质量。使用该开发模型和系统开发的应用程序可以说就是由组件组成的。

An application development method based on dynamic loading components

The invention discloses an application program development method based on dynamic loading components. The system of the invention relates to the installation folder resource layout of the software, the components under the specified directory are loaded when the software is started, and the components are run after the software is started to complete the model and system of the software function. Based on this system, the components can be loaded dynamically (i.e. the components can be loaded in the specified directory after the software is running), unloaded and disabled, so that the software can add small functions or update subcomponents during the later update, so as to minimize the overall impact on the software. Moreover, this component is project independent, and can be developed by multiple people, running independently and testing in a single way Try to improve the speed and quality of software development. The application developed with this development model and system can be said to be composed of components.

【技术实现步骤摘要】
一种基于动态加载组件的应用程序开发方法
本专利技术涉及应用程序组件开发模型,具体的说是涉及一种基于动态加载组件的应用程序开发方法。
技术介绍
常规的应用程序开发模型就是一个项目下,软件开发人员同时在这个项目下进行增改功能。这种开发模型导致多人开发项目时容易造成同时编辑某个功能而造成冲突,当某个功能出问题时,庞大的项目代码会定位问题困难,有可能在底层,界面或存储方面出问题,出问题时只能层层回退找问题,浪费时间不止,修复某个问题也很容易导致关联的部分也出问题,由于是项目关联到的功能多,也导致无法只对某个功能进行测试和运行。在开发大型软件的时,软件在迭代的过程中往往需要增改功能。在以往的项目中,增加功能时必须连整个项目一起编译打包才能运行,不相关的功能如果编译不过,或者依赖的功能出问题,那么需要改动的功能就无法运行。影响开发效率的而还有漫长的编译时间,资源图片只要某个功能需要都得统一加载,即使其他功能不使用。这样不仅会浪费计算资源,还会导致软件启动慢。项目只有一份代码,也无法分开功能独立开发,在一些涉及到公司核心技术的地方也很难隐藏不让非核心人员查看。在这种情况下,需要一个先进的开发模型和系统来满足项目日益增大的引起的开发效率,软件质量,软件保密性的要求。现有的标准技术就是微软提供的把独立功能打包为动态库,通过加载动态库的方式来加载模块。现有技术的缺点体现在以下几点:1、动态库接口的不固定性,往往随着功能的增加和删减,需要重新编译动态库的接口,而调用这个动态库的地方也需要重新编译和修改,系统对它的耦合太大,需要花很多时间.2、一个动态库代表一个独立的功能,但是资源图片,配置文件等还是依赖于主程序或者说全局的环境变量,移除一个功能时无法对资源进行移除,导致没用的资源仍旧占用空间.3、动态库接口的多样性导致调用时非常麻烦,需要针对不同的动态库提供不同的参数,容易出错.4、不能动态加载一个功能或小程序,因为动态库只能放在安装目录的固定位置,需要的资源图片等因为没有规范的存储位置而不能运行或维护。
技术实现思路
针对现有技术中的不足,本专利技术要解决的技术问题在于提供了一种基于动态加载组件的应用程序开发方法。该应用程序开发方法旨在方便项目的维护和迭代开发,赋予动态库更多的职责,打包动态库为组件,让系统新增功能时更容易加载和管理。为解决上述技术问题,本专利技术通过以下方案来实现:一种基于动态加载组件的应用程序开发方法,该应用程序开发方法包括以下步骤:步骤一,创建组件;创造至少一个组件,组件设有多个核心部分,该组件核心部分分成3个部分;第一部分,组件配置信息文件:存储了组件的信息→组件类型→库文件路径→组件ID→组件版本→组件加载后执行的创建的命令标识→组件接收的命令数组标识和组件发送的命令数组;第二部分,组件库文件:动态库文件→组件的逻辑编译为动态库,这个动态库只导出一个组件导出函数接口,在组件的库文件加载后,会调用这个接口进行组件初始化;第三部分,组件资源目录:在和配置文件、库文件同目录下,带一个资源目录,里面存储组件用的图片,配置参数文件等组件运行的资源;步骤二,创建平台;将平台建立后,平台是系统中的核心,由它来管理组件的生命周期,还有对内置组件加载和管理,以便让整个系统先运行起来;一些关键的平台逻辑由平台实现并转发命令到组件;步骤三,加载组件;创造后的组件都依赖一个统一的应用程序平台管理和加载,所述平台通过检索内置目录查找所有符合规则的组件,并加载和进行调用组件导出函数接口的初始化操作;对于外部组件,通过查找软件的配置选项来查找外部组件的目录,并进行加载;加载过的组件存储在组件管理器里,组件管理器存储使用命令观察者的模型存储,通过字符串命令名称关联所能接收该命令的组件,当有某个模块发送命令广播时,监听的观察者组件会收该消息,没有监听的观察者组件不会得到通知;步骤四,组件初始化;所述平台通过调用库文件里的组件导出函数接口进行组件初始化,该函数的原型是通过传递一个参数“基本数据对象”通用类型来传递平台的初始化数据;步骤五,调用组件;所述组件通过在组件配置信息文件里声明的发送命令进行消息传递,组件命令先经过平台进行识别判断,当找到有能够处理该命令的其他组件时,就会转发消息到其他组件中;所述组件通过传递标准数据类型基本数据对象或者通过把通讯数据填充到基本数据对象参数里进行传输;步骤六,禁用组件;当系统禁用一个组件时,会在组件管理器里把该组件设置为禁用,被禁用的组件不会收到其他组件发送的消息,该组件发送的消息也会在平台上被拦截,不会被转发出去;步骤七,卸载组件;系统停止运行时,该卸载组件会卸载所有的组件释放资源。进一步的,步骤一中,组件创建后,是一个文件夹方式组织的组件单元,作为内置组件放入运行目录,由下一步平台进行加载,外部组件不需要放置在软件安装目录,由平台在运行时加载。进一步的,步骤二中,所述关键的平台逻辑由平台实现并转发命令到组件,其具体控制包括系统注册、获取系统名称、系统版本,桌面系统中,所述关键的平台逻辑由平台实现并转发命令到组件还包括控制软件界面的缩小与放大。进一步的,步骤四中,所述组件初始化至少包括资源文件预加载。进一步的,所述组件包含动态库、运行动态库逻辑的资源文件和对组件进行标识的配置文件,通过配置文件里的发送和接收命令数组来限制组件的功能,只接收或只处理配置的命令,便于其他组件访问时能知道如何进行通讯;组件间没有依赖关系,每个组件都是物理隔离独立的,也没有库依赖关系。进一步的,所述平台负责加载和组件的通讯转发、组件加载、组件禁用和组件卸载;平台本身注册为虚拟组件或不注册为虚拟组件,所述平台注册为虚拟组件后并添加可接收组件处理的命令。进一步的,所述组件通过组件导出函数接口进行初始化,并使用通用的初始化参数类型基本数据对象。进一步的,所述组件的通信通过基本数据对象参数进行传输,通过组件配置信息文件定义的字符串命令,发送命令到所述平台,所述平台进行处理或转发;所述组件之间传递的命令类型都是预定义的字符串类型,定义命令时加上组件名称能够避免命令重复。相对于现有技术,本专利技术的有益效果是:1、具有简单唯一的组件导出函数接口,新增的组件只需要实现这个接口即可;2、组件是一个文件夹方式的资源集合,它包含该组件用到的所有资源,组件是独立的,对其他资源或组件不依赖;3、组件和项目可以代码分离,单独开发维护,提供了系统的开发效率。可单独测试,提供了系统的质量;4、组件的通讯方式通过统一的数据参数“基本数据对象”类型,这个类型定义了通用的数据类型属性,当然还可以用文本描述通讯数据类型;5、组件间互相物理隔离,库文件互相之间没有依赖关系,这就避免了组件依赖其他组件不能单独加载运行;6、组件通过平台进行管理通讯,组件只要声明了接收的命令,不要额本文档来自技高网
...

【技术保护点】
1.一种基于动态加载组件的应用程序开发方法,其特征在于,该应用程序开发方法包括以下步骤:/n步骤一,创建组件;/n创造至少一个组件,组件设有多个核心部分,该组件核心部分分成3个部分;/n第一部分,组件配置信息文件:存储了组件的信息→组件类型→库文件路径→组件ID→组件版本→组件加载后执行的创建的命令标识→组件接收的命令数组标识和组件发送的命令数组;/n第二部分,组件库文件:动态库文件→组件的逻辑编译为动态库,这个动态库只导出一个组件导出函数接口,在组件的库文件加载后,会调用这个接口进行组件初始化;/n第三部分,组件资源目录:在和配置文件、库文件同目录下,带一个资源目录,里面存储组件用的图片,配置参数文件等组件运行的资源;/n步骤二,创建平台;/n将平台建立后,平台是系统中的核心,由它来管理组件的生命周期,还有对内置组件加载和管理,以便让整个系统先运行起来;一些关键的平台逻辑由平台实现并转发命令到组件;/n步骤三,加载组件;/n创造后的组件都依赖一个统一的应用程序平台管理和加载,所述平台通过检索内置目录查找所有符合规则的组件,并加载和进行调用组件导出函数接口的初始化操作;对于外部组件,通过查找软件的配置选项来查找外部组件的目录,并进行加载;加载过的组件存储在组件管理器里,组件管理器存储使用命令观察者的模型存储,通过字符串命令名称关联所能接收该命令的组件,当有某个模块发送命令广播时,监听的观察者组件会收该消息,没有监听的观察者组件不会得到通知;/n步骤四,组件初始化;/n所述平台通过调用库文件里的组件导出函数接口进行组件初始化,该函数的原型是通过传递一个参数“基本数据对象”通用类型来传递平台的初始化数据;/n步骤五,调用组件;/n所述组件通过在组件配置信息文件里声明的发送命令进行消息传递,组件命令先经过平台进行识别判断,当找到有能够处理该命令的其他组件时,就会转发消息到其他组件中;/n所述组件通过传递标准数据类型基本数据对象或者通过把通讯数据填充到基本数据对象参数里进行传输;/n步骤六,禁用组件;/n当系统禁用一个组件时,会在组件管理器里把该组件设置为禁用,被禁用的组件不会收到其他组件发送的消息,该组件发送的消息也会在平台上被拦截,不会被转发出去;/n步骤七,卸载组件;/n系统停止运行时,该卸载组件会卸载所有的组件释放资源。/n...

【技术特征摘要】
1.一种基于动态加载组件的应用程序开发方法,其特征在于,该应用程序开发方法包括以下步骤:
步骤一,创建组件;
创造至少一个组件,组件设有多个核心部分,该组件核心部分分成3个部分;
第一部分,组件配置信息文件:存储了组件的信息→组件类型→库文件路径→组件ID→组件版本→组件加载后执行的创建的命令标识→组件接收的命令数组标识和组件发送的命令数组;
第二部分,组件库文件:动态库文件→组件的逻辑编译为动态库,这个动态库只导出一个组件导出函数接口,在组件的库文件加载后,会调用这个接口进行组件初始化;
第三部分,组件资源目录:在和配置文件、库文件同目录下,带一个资源目录,里面存储组件用的图片,配置参数文件等组件运行的资源;
步骤二,创建平台;
将平台建立后,平台是系统中的核心,由它来管理组件的生命周期,还有对内置组件加载和管理,以便让整个系统先运行起来;一些关键的平台逻辑由平台实现并转发命令到组件;
步骤三,加载组件;
创造后的组件都依赖一个统一的应用程序平台管理和加载,所述平台通过检索内置目录查找所有符合规则的组件,并加载和进行调用组件导出函数接口的初始化操作;对于外部组件,通过查找软件的配置选项来查找外部组件的目录,并进行加载;加载过的组件存储在组件管理器里,组件管理器存储使用命令观察者的模型存储,通过字符串命令名称关联所能接收该命令的组件,当有某个模块发送命令广播时,监听的观察者组件会收该消息,没有监听的观察者组件不会得到通知;
步骤四,组件初始化;
所述平台通过调用库文件里的组件导出函数接口进行组件初始化,该函数的原型是通过传递一个参数“基本数据对象”通用类型来传递平台的初始化数据;
步骤五,调用组件;
所述组件通过在组件配置信息文件里声明的发送命令进行消息传递,组件命令先经过平台进行识别判断,当找到有能够处理该命令的其他组件时,就会转发消息到其他组件中;
所述组件通过传递标准数据类型基本数据对象或者通过把通讯数据填充到基本数据对象参数里进行传输;
步骤六,禁用组件;
当系统禁用一个组件时,会在组件管理器里把该组件设置为禁用,被禁用的组件不会收到其他组件发送的消息,该组件发送的消息也会在平台...

【专利技术属性】
技术研发人员:戴辉邓波陈顺妮
申请(专利权)人:深圳市七星石科技有限公司
类型:发明
国别省市:广东;44

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

1