一种应用启动方法、装置、电子设备及存储介质制造方法及图纸

技术编号:33550021 阅读:12 留言:0更新日期:2022-05-26 22:45
本公开关于一种应用启动方法、装置、电子设备及存储介质,包括:当检测到应用程序的启动指令,确定应用程序对应的当前主执行文件,对当前主执行文件中的代码进行加载,启动应用程序,当前主执行文件中的代码包括基础动态库的代码,基础动态库为历史主执行文件加载时依赖的动态库,历史主执行文件为当前主执行文件修改前的文件。本申请实施例通过将主执行文件依赖的基础动态库的代码集成到主执行文件中,可以避免应用程序启动时,因为系统额外的操作导致的过多时间消耗的问题,进而缓解了应用程序启动慢的问题。序启动慢的问题。序启动慢的问题。

【技术实现步骤摘要】
一种应用启动方法、装置、电子设备及存储介质


[0001]本公开涉及互联网
,尤其涉及一种应用启动方法、装置、电子设备及存储介质。

技术介绍

[0002]由于启动应用程序的主执行文件和应用程序中的其他事件对应的动态库通常可能依赖同样的动态库,这就导致应用程序启动时,不可避免地进行其他事件对应的动态库的加载,从而使得启动应用程序时消耗大量的时间。

技术实现思路

[0003]本公开提供一种应用启动方法、装置、电子设备及存储介质,本公开的技术方案如下:
[0004]根据本公开实施例的第一方面,提供一种应用启动方法,包括:
[0005]当检测到应用程序的启动指令,确定应用程序对应的当前主执行文件;
[0006]对当前主执行文件中的代码进行加载,启动应用程序;
[0007]当前主执行文件中的代码包括基础动态库的代码;基础动态库为历史主执行文件加载时依赖的动态库;历史主执行文件为当前主执行文件修改前的文件。
[0008]在一些可能的实施例中,方法还包括:
[0009]当检测到应用程序中业务事件的启动指令时,确定业务事件对应的业务动态库;
[0010]若基础动态库为业务动态库加载时依赖的动态库,调用基础动态库;
[0011]基于基础动态库的代码和业务动态库的代码加载业务动态库;
[0012]启动业务事件。
[0013]在一些可能的实施例中,当检测到应用程序的启动指令,确定应用程序对应的当前主执行文件之前,还包括:
[0014]确定历史主执行文件加载时依赖的基础动态库;
[0015]将基础动态库中的代码集成到历史主执行文件中,得到当前主执行文件。
[0016]在一些可能的实施例中,在将基础动态库中的代码集成到主执行文件中之后,还包括:
[0017]删除基础动态库。
[0018]在一些可能的实施例中,方法还包括:
[0019]将当前主执行文件中的代码保存至内存中;
[0020]当检测到应用程序中业务事件的启动指令时,确定业务事件对应的业务动态库;
[0021]若基础动态库为业务动态库加载时依赖的动态库,通过动态查询方式对内存中的代码进行查询,得到基础动态库的代码;
[0022]基于基础动态库的代码和业务动态库的代码加载业务动态库;
[0023]启动业务事件。
[0024]在一些可能的实施例中,若基础动态库为业务动态库加载时依赖的动态库,通过动态查询方式对内存中的代码进行查询,得到基础动态库的代码,基于基础动态库的代码和业务动态库的代码加载业务动态库,启动业务事件包括:
[0025]基于业务动态库中的代码进行编译,得到业务事件对应的程序包;
[0026]若基础动态库为业务动态库加载时依赖的动态库,通过动态查询方式对内存中的代码进行查询,得到基础动态库的代码;
[0027]基于基础动态库的代码启动程序包;
[0028]启动业务事件。
[0029]在一些可能的实施例中,将当前主执行文件中的代码保存至内存中包括:
[0030]确定当前主执行文件中的代码的预设删除方式;
[0031]基于预设删除方式删除当前主执行文件的代码中的预设代码,保留当前主执行文件的代码中的基础动态库中的代码;
[0032]将当前主执行文件的代码中的基础动态库中的代码保存至内存中。
[0033]根据本公开实施例的第二方面,提供一种应用启动装置,包括:
[0034]文件确定模块,被配置为执行当检测到应用程序的启动指令,确定应用程序对应的当前主执行文件;
[0035]启动模块,被配置为执行对当前主执行文件中的代码进行加载,启动应用程序;
[0036]当前主执行文件中的代码包括基础动态库的代码;基础动态库为历史主执行文件加载时依赖的动态库;历史主执行文件为当前主执行文件修改前的文件。
[0037]在一些可能的实施例中,装置还包括:
[0038]业务动态库确定模块,被配置为执行当检测到应用程序中业务事件的启动指令时,确定业务事件对应的业务动态库;
[0039]调用模块,被配置为执行若基础动态库为业务动态库加载时依赖的动态库,调用基础动态库;
[0040]加载模块,被配置为执行基于基础动态库的代码和业务动态库的代码加载业务动态库;
[0041]启动模块,被配置为执行启动业务事件。
[0042]在一些可能的实施例中,装置还包括:
[0043]基础动态库确定模块,被配置为执行确定历史主执行文件加载时依赖的基础动态库;
[0044]集成模块,被配置为执行将基础动态库中的代码集成到历史主执行文件中,得到当前主执行文件。
[0045]在一些可能的实施例中,装置还包括:
[0046]删除模块,被配置为执行删除基础动态库。
[0047]在一些可能的实施例中,装置还包括:
[0048]保存模块,被配置为执行将当前主执行文件中的代码保存至内存中;
[0049]业务动态库确定模块,被配置为执行当检测到应用程序中业务事件的启动指令时,确定业务事件对应的业务动态库;
[0050]代码获取模块,被配置为执行若基础动态库为业务动态库加载时依赖的动态库,
通过动态查询方式对内存中的代码进行查询,得到基础动态库的代码;
[0051]加载模块,被配置为执行基于基础动态库的代码和业务动态库的代码加载业务动态库;
[0052]启动模块,被配置为执行启动业务事件。
[0053]在一些可能的实施例中,装置还包括:
[0054]编译模块,被配置为执行基于业务动态库中的代码进行编译,得到业务事件对应的程序包;
[0055]代码获取模块,被配置为执行若基础动态库为业务动态库加载时依赖的动态库,通过动态查询方式对内存中的代码进行查询,得到基础动态库的代码;
[0056]启动模块,被配置为执行基于基础动态库的代码启动程序包;启动业务事件。
[0057]在一些可能的实施例中,保存模块,被配置为执行:
[0058]确定当前主执行文件中的代码的预设删除方式;
[0059]基于预设删除方式删除当前主执行文件的代码中的预设代码,保留当前主执行文件的代码中的基础动态库中的代码;
[0060]将当前主执行文件的代码中的基础动态库中的代码保存至内存中。
[0061]根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现如上述第一方面中任一项的方法。
[0062]根据本公开实施例的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本公开实施例的第一方面中任一项的方法。
[0063]根据本公开实施例的第五方面,提供一种计算机程序产品,计算机程序产品包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用启动方法,其特征在于,包括:当检测到应用程序的启动指令,确定所述应用程序对应的当前主执行文件;对所述当前主执行文件中的代码进行加载,启动所述应用程序;所述当前主执行文件中的代码包括基础动态库的代码;所述基础动态库为历史主执行文件加载时依赖的动态库;所述历史主执行文件为所述当前主执行文件修改前的文件。2.根据权利要求1所述的应用启动方法,其特征在于,所述方法还包括:当检测到所述应用程序中业务事件的启动指令时,确定所述业务事件对应的业务动态库;若所述基础动态库为所述业务动态库加载时依赖的动态库,调用所述基础动态库;基于所述基础动态库的代码和所述业务动态库的代码加载所述业务动态库;启动所述业务事件。3.根据权利要求1所述的应用启动方法,其特征在于,所述当检测到应用程序的启动指令,确定所述应用程序对应的当前主执行文件之前,还包括:确定所述历史主执行文件加载时依赖的所述基础动态库;将所述基础动态库中的代码集成到所述历史主执行文件中,得到所述当前主执行文件。4.根据权利要求3所述的应用启动方法,其特征在于,所述在所述将所述基础动态库中的代码集成到所述主执行文件中之后,还包括:删除所述基础动态库。5.根据权利要求4所述的应用启动方法,其特征在于,所述方法还包括:将所述当前主执行文件中的代码保存至内存中;当检测到所述应用程序中业务事件的启动指令时,确定所述业务事件对应的业务动态库;若所述基础动态库为所述业务动态库加载时依赖的动态库,通过动态查询方式对所述内存中的代码进行查询,得到所述基础动态库的代码;基于所述基础动态库的代码和所述业务动态库的代码加载所述业务动态库;启动所述业务事件。6.根据权利要求5所述的应用启动方法,其...

【专利技术属性】
技术研发人员:周学运
申请(专利权)人:北京达佳互联信息技术有限公司
类型:发明
国别省市:

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

1