一种多语言运行库按需调用方法和系统技术方案

技术编号:39799669 阅读:9 留言:0更新日期:2023-12-22 02:30
本发明专利技术属于软件开发技术领域,提供一种多语言运行库按需调用方法和系统

【技术实现步骤摘要】
一种多语言运行库按需调用方法和系统
[0001]本专利技术涉及软件开发
,特别涉及一种多语言运行库按需调用方法和系统


技术介绍

[0002]运行库调用技术是指在软件开发中使用运行库(也称为库或库文件)来访问和执行库中提供的功能和服务

[0003]按需调用库(
lazy loading
)是一种优化技术,它在程序运行时延迟加载和链接共享库,直到真正需要使用库中的函数或符号时才进行加载

运行库是一组预编译的可重用代码模块,包含了常用的功能实现,如输入输出功能

网络通信功能

数据库连接功能等

对于大型应用程序,其可能包含多个共享库文件,而不是所有函数都会在每次执行中被用到,只有在需要时才加载所需的库文件;对于应用程序支持插件或动态加载模块,按需调用库可确保只在需要时加载插件所需的库,这样可以实现灵活的扩展性,同时减少了对特定插件的依赖;对于可能需要相对较长的初始化时间的库,按需调用库可以将初始化步骤推迟到实际使用时,避免不必要的初始化开销,提高程序的响应性能

总之,按需调用库适用于那些具有复杂性

大型性或需要灵活加载库的应用场景

它可以提高程序的启动速度

减少内存占用,并在需要时确保所需的函数和符号可用,以优化应用程序的性能和资源利用

[0004]此外,在进行软件开发时,会有一些常用的功能和代码需要编写,重复编写较为影响开发效率;还会有一些常用的应用程序包括相同的代码,会重复占用内存空间

当这些重复的代码需要更新或修复时,工作量较大

而且,应用程序若是想要在不同操作系统和平台上运行,涉及跨平台迁移与支持,较为不便

[0005]因此,有必要提供一种改进了的多语言运行库按需调用方法,以解决上述问题


技术实现思路

[0006]本专利技术意在提供一种多语言运行库按需调用方法和系统,以解决现有技术中在进行软件开发时,存在因一些常用的功能和代码需要编写进而导致开发效率低,因一些常用的应用程序包括相同的代码进而重复占用内存空间,以及因这些重复的代码需要更新或修复导致的工作量较大,无法实现在不同操作系统和平台上运行时的跨平台迁移与支持等的技术问题,本专利技术要解决的技术问题通过以下技术方案来实现

[0007]本专利技术的第一方面提出一种多语言运行库按需调用方法,包括:当
Linux
操作系统中指定应用在运行阶段运行

且根据需要进行待加载库的加载处理时,根据预设库加载路径策略,控制
Linux
操作系统中指定应用在运行阶段加载到所需要使用的库;所述库加载路径策略包括不同优先级的路径控制点以及各路径控制点所指向的搜索路径,其中,应用沙箱提前放置有路径控制点以及
C/C++
按需调用时所需的不同版本的应用程序,且控制点信息可编辑更新

应用程序可上传更新;通过使用以下特定参数中至少两者,在编译阶段和链接阶段限定共享库的搜索路径:路径参数

命令参数

编译参数

链接参数

系统参数;通过使用以下特定参数中至少两者,在编译阶段和链接阶段限定共享库的搜索路径:路径参数

命令参数

编译参数

链接参数

系统参数;在
java
库多版本按需调用时,利用应用沙箱的运行环境,使应用程序可以在不同发行版本的操作系统所对应的机器上运行;在
Java
系统中创建代理类来加载和代理原始类的代理加载机制,基于所述代理加载机制在不修改原始类的情况下对原始类进行扩展

增强或拦截,通过定制化的加载策略及沙箱定制类加载器,在应用框架里面
Java
应用程序根据需要进行待加载类的加载处理;根据所确定的加载路径,获取待加载类或待加载库的文件

[0008]根据可选的实施方式,在进行加载处理之前,先判断预设库加载路径策略中是否包含与待加载库或待加载类的定制加载顺序

[0009]根据可选的实施方式,如果包含与待加载库或待加载类的定制加载顺序,则按照指定加载路径来加载待加载类或待加载库;如果未包含与待加载库或待加载类的定制加载顺序,则按照默认加载路径查找待加载类或待加载库所对应的文件

[0010]根据可选的实施方式,进一步包括:在第一按需调用方式里,应用安装

运行过程中,通过指定路径的方式,使应用在加载时优先从自身封装的库中加载相关文件,再是从应用框架和依赖库中加载相关文件;在第二按需调用方式中,按照应用的需要,能够不受次序限制地加载应用实现层的类

应用框架层的类以及基础类

[0011]根据可选的实施方式,进一步包括:配设不同优先级的多个路径控制点,控制点提前放置在应用沙箱中且可编辑更新,具体包括配设用于编译阶段的第一优先级路径控制点

用于运行阶段的第二优先级路径控制点

用于配置文件的第三优先级控制点

用于默认查找路径的第四优先级控制点;所述路径控制点用于控制要执行的指定应用程序

应用程序自带系统库或基础库搜索路径,指定应用程序

应用程序自带系统库
/
基础库搜索路径

运行时基础库搜索路径

运行时系统库的搜索路径

[0012]根据可选的实施方式,在需要运行应用程序时,且在同一机器上同时存在与所述应用程序相对应的多个版本时,则优先加载指定加载路径所对应的版本

[0013]根据可选的实施方式,在
Java
系统应用程序的运行依赖于应用沙箱所提供的运行环境;所述应用沙箱利用沙箱定制类加载器隔离,以使在
Java
虚拟机中,不同的沙箱定制类加载器负责加载不同的类来形成类的加载隔离

[0014]本专利技术的第二方面提出一种多语言运行库按需调用系统,包括:第一加载处理模块,当
Linux
操作系统中指定应用在运行阶段运行

且根据需要进行待加载库的加载处理时,根据预设库加载路径策略,控制
Linux
操作系统中指定应用在运行阶段加载到所需要使用的库;所述库加载路径策略包括不同优先级的路径控制点以及各路径控制点所指向的搜索路径,其中,路径控制点的控制点信息提前放置在应用沙箱中且可编辑更新,通过使用以下特定参数中至少两者,在编译阶段和链接阶段限定共享库的搜索路径:路径参数

命令参数

编本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种多语言运行库按需调用方法,其特征在于,包括:当
Linux
操作系统中指定应用在运行阶段运行

且根据需要进行待加载库的加载处理时,根据预设库加载路径策略,控制
Linux
操作系统中指定应用在运行阶段加载到所需要使用的库;所述库加载路径策略包括不同优先级的路径控制点以及各路径控制点所指向的搜索路径,其中,应用沙箱提前放置有路径控制点以及
C/C++
按需调用时所需的不同版本的应用程序,且控制点信息可编辑更新

应用程序可上传更新;通过使用以下特定参数中至少两者,在编译阶段和链接阶段限定共享库的搜索路径:路径参数

命令参数

编译参数

链接参数

系统参数;在
java
库多版本按需调用时,利用应用沙箱的运行环境,使得应用程序可在不同发行版本的操作系统所对应的机器上运行;在
Java
系统中创建代理类来加载和代理原始类的代理加载机制,基于所述代理加载机制在不修改原始类的情况下对原始类进行扩展

增强或拦截,通过定制化的加载策略及沙箱定制类加载器,在应用框架里面
Java
应用程序根据需要进行待加载类的加载处理;根据所确定的加载路径,获取待加载类或待加载库的文件
。2.
根据权利要求1所述的多语言运行库按需调用方法,其特征在于,包括:在进行加载处理之前,先判断预设库加载路径策略中是否包含与待加载库或待加载类的定制加载顺序
。3.
根据权利要求2所述的多语言运行库按需调用方法,其特征在于,包括:如果包含与待加载库或待加载类的定制加载顺序,则按照指定加载路径来加载待加载类或待加载库;如果未包含与待加载库或待加载类的定制加载顺序,则按照默认加载路径查找待加载类或待加载库所对应的文件
。4.
根据权利要求3所述的多语言运行库按需调用方法,其特征在于,进一步包括:在第一按需调用方式里,应用安装

运行过程中,通过指定路径的方式,使应用在加载时优先从自身封装的库中加载相关文件,再是从应用框架和依赖库中加载相关文件;在第二按需调用方式中,按照应用的需要,能够不受次序限制地加载应用实现层的类

应用框架层的类以及基础类
。5.
根据权利要求1所述的多语言运行库按需调用方法,其特征在于,进一步包括:配设不同优先级的多个路径控制点,其中,所述多个路径控制点的控制点信息提前放置在应用沙箱中且控制点信息可编辑更新,具体包括配设用于编译阶段的第一优先级路径控制点

用于运行阶段的第二优先级路径控制点

用于配置文件的第三优先级控制点

用于默认查找路径的第四优先级控制点;所述路径控制点用于控制要执行的指定应用程序

应用程序自带系统库或基础库搜索路径,指定应用程序

应用程序自带系统库
/
基础...

【专利技术属性】
技术研发人员:唐稳焦港欣王弈宸王强王峰赵廉王福喜
申请(专利权)人:中国电子科技集团公司第十五研究所
类型:发明
国别省市:

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

1