System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及嵌入式,尤其涉及一种应用程序启动方法、装置、设备及存储介质。
技术介绍
1、近年来,随着计算机技术以及集成电路技术的发展,嵌入式技术和产品软件普及,在通讯、网络、工控、医疗、电子等领域发挥着重要的作用。
2、启动速度是嵌入式产品的一个重要性能指标,更快的启动速度会让客户有更好的使用体验。目前嵌入式产品在优化应用程序启动速度时,通过在应用程序编译时与动态库进行链接,采用动态链接的方式实现。
3、但是,上述方式由于动态库存储在磁盘中,需要与磁盘进行io调度来加载运行动态库,而频繁的磁盘io调度会消耗较多的时间,导致应用程序的启动速度优化效果欠佳。
4、上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本专利技术的主要目的在于提供了一种应用程序启动方法、装置、设备及存储介质,旨在解决现有技术需要消耗较多的时间与磁盘进行io调度来加载运行动态库,导致应用程序的启动速度优化效果欠佳的技术问题。
2、为实现上述目的,本专利技术提供了一种应用程序启动方法,所述方法应用于应用程序启动设备,所述方法包括:
3、在所述应用程序启动设备的内存条中模拟出根文件系统,所述根文件系统中储存有应用程序启动时所需链接的动态库;
4、在所述应用程序启动过程中,将所述应用程序与所述内存条中所述根文件系统储存的所述动态库链接;
5、利用链接后的所述动态库启动所述应用程序。
>6、可选地,所述在内存条中模拟出根文件系统的步骤,包括:
7、获取包含操作系统核心文件和所需应用程序的根文件系统,并基于所述根文件系统生成根文件系统镜像;
8、根据所述根文件系统镜像在内存条中模拟出所述根文件系统。
9、可选地,所述根据所述根文件系统镜像在内存条中模拟出所述根文件系统的步骤,包括:
10、获取引导加载程序的配置参数,所述配置参数中包含所述根文件系统镜像的内存信息;
11、在所述引导加载程序启动时,读取所述内存信息,并根据所述内存信息在内存条中模拟出所述根文件系统。
12、可选地,所述在所述引导加载程序启动时,根据所述内存信息在内存条中模拟出所述根文件系统的步骤,包括:
13、在所述引导加载程序启动时,根据所述内存信息确定所述根文件系统镜像的镜像大小和所述根文件系统镜像在内存条中的内存地址;
14、根据所述镜像大小和所述内存地址在所述内存条中划分出内存分区;
15、在所述内存分区中挂载所述根文件系统镜像,以在所述内存条中模拟出所述根文件系统。
16、可选地,所述在内存条中模拟出根文件系统的步骤之前,还包括:
17、获取应用程序启动过程中所需使用的各初始库;
18、将所述各初始库中与系统启动相关的初始库编译为静态库;
19、将所述各初始库中所述系统启动不相关的初始库作为所述应用程序启动时所需链接的动态库,并将所述动态库存入根文件系统中。
20、可选地,所述在所述应用程序启动过程中,将所述应用程序与所述内存条中所述根文件系统储存的所述动态库链接的步骤之前,还包括:
21、获取所述应用程序编译生成的目标文件;
22、将所述目标文件与所述静态库链接,生成可执行文件。
23、可选地,所述在所述应用程序启动过程中,将所述应用程序与所述内存条中所述根文件系统储存的所述动态库链接步骤,包括:
24、在所述可执行文件运行时,将所述可执行文件与所述内存条中所述根文件系统储存的所述动态库链接,以使所述可执行文件对应的所述应用程序与所述动态库链接。
25、此外,为实现上述目的,本专利技术还提出一种应用程序启动装置,所述装置包括:
26、内存模拟模块,用于在应用程序启动设备的内存条中模拟出根文件系统,所述根文件系统中储存有应用程序启动时所需链接的动态库;
27、动态链接模块,用于在所述应用程序启动过程中,将所述应用程序与所述内存条中所述根文件系统储存的所述动态库链接;
28、程序启动模块,用于利用链接后的所述动态库启动所述应用程序。
29、此外,为实现上述目的,本专利技术还提出一种应用程序启动设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用程序启动程序,所述应用程序启动程序配置为实现如上文所述的应用程序启动方法的步骤。
30、此外,为实现上述目的,本专利技术还提出一种存储介质,所述存储介质上存储有应用程序启动程序,所述应用程序启动程序被处理器执行时实现如上文所述的应用程序启动方法的步骤。
31、本专利技术提供了一种应用程序启动方法、装置、设备及存储介质,该方法应用于应用程序启动设备,通过在应用程序启动设备的内存条中模拟出根文件系统,根文件系统中储存有应用程序启动时所需链接的动态库;在应用程序启动过程中,将应用程序与内存条中根文件系统储存的动态库链接;利用链接后的动态库启动所述应用程序。本专利技术通过在内存条中模拟出存储动态库的根文件系统,在应用程序启动过程中将应用程序与内存条中的动态库链接,相较于现有技术动态库存储在磁盘中,需要与磁盘进行io调度来加载运行动态库,本专利技术上述方法动态库存储在内存条中,无需与磁盘进行io调度,避免了由于频繁的磁盘io调度所导致的时间消耗,有效提高了应用程序的启动速度优化效果。
本文档来自技高网...【技术保护点】
1.一种应用程序启动方法,其特征在于,所述方法应用于应用程序启动设备,所述方法包括:
2.如权利要求1所述的应用程序启动方法,其特征在于,所述在内存条中模拟出根文件系统的步骤,包括:
3.如权利要求2所述的应用程序启动方法,其特征在于,所述根据所述根文件系统镜像在内存条中模拟出所述根文件系统的步骤,包括:
4.如权利要求3所述的应用程序启动方法,其特征在于,所述在所述引导加载程序启动时,根据所述内存信息在内存条中模拟出所述根文件系统的步骤,包括:
5.如权利要求1所述的应用程序启动方法,其特征在于,所述在内存条中模拟出根文件系统的步骤之前,还包括:
6.如权利要求5所述的应用程序启动方法,其特征在于,所述在所述应用程序启动过程中,将所述应用程序与所述内存条中所述根文件系统储存的所述动态库链接的步骤之前,还包括:
7.如权利要求6所述的应用程序启动方法,其特征在于,所述在所述应用程序启动过程中,将所述应用程序与所述内存条中所述根文件系统储存的所述动态库链接步骤,包括:
8.一种应用程序启动装置,其特
9.一种应用程序启动设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用程序启动程序,所述应用程序启动程序配置为实现如权利要求1至7中任一项所述的应用程序启动方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有应用程序启动程序,所述应用程序启动程序被处理器执行时实现如权利要求1至7任一项所述的应用程序启动方法的步骤。
...【技术特征摘要】
1.一种应用程序启动方法,其特征在于,所述方法应用于应用程序启动设备,所述方法包括:
2.如权利要求1所述的应用程序启动方法,其特征在于,所述在内存条中模拟出根文件系统的步骤,包括:
3.如权利要求2所述的应用程序启动方法,其特征在于,所述根据所述根文件系统镜像在内存条中模拟出所述根文件系统的步骤,包括:
4.如权利要求3所述的应用程序启动方法,其特征在于,所述在所述引导加载程序启动时,根据所述内存信息在内存条中模拟出所述根文件系统的步骤,包括:
5.如权利要求1所述的应用程序启动方法,其特征在于,所述在内存条中模拟出根文件系统的步骤之前,还包括:
6.如权利要求5所述的应用程序启动方法,其特征在于,所述在所述应用程序启动过程中,将所述应用...
【专利技术属性】
技术研发人员:蔡博阳,陈小宽,余渊,王树华,
申请(专利权)人:深圳市汇川技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。