本说明书提供了一种应用程序的启动方法及装置,在应用程序的启动过程中,在检测到所述应用程序运行所在的操作系统存在动态链接库限制的情况下,确定空闲列表指令特征,所述空闲列表用于表征可用于加载所述动态链接库的剩余内存空间,所述空闲列表指令特征为可以修改所述空闲列表的内存地址的指令码所对应的特征;所述应用程序包括多个用于对应应用业务功能的动态链接库;在内存中寻找所述空闲列表指令特征;基于寻找到的空闲列表指令特征,对所述空闲列表进行扩容,以继续在所述操作系统启动所述应用程序。统启动所述应用程序。统启动所述应用程序。
【技术实现步骤摘要】
一种应用程序启动方法及装置
[0001]本说明书一个或多个实施例涉及计算机应用
,尤其涉及一种应用程序启动方法及装置。
技术介绍
[0002]为了方便开发,有些情况下在开发应用程序时,会将各个业务功能分隔开来,通过不同的动态链接库来实现不同的业务功能。而有些老旧的操作系统不允许进程同时启动过多的动态链接库,这可能导致应用程序无法正常启动,影响用户的使用体验。
技术实现思路
[0003]有鉴于此,本说明书一个或多个实施例提供一种应用程序启动方法及装置。
[0004]根据本说明书一个或多个实施例的第一方面,提出了一种应用内程序启动方法,包括:
[0005]在应用程序的启动过程中,在检测到所述应用程序运行所在的操作系统存在动态链接库限制的情况下,确定空闲列表指令特征;所述空闲列表用于表征可用于加载所述动态链接库的剩余内存空间,所述空闲列表指令特征为可以修改所述空闲列表的内存地址的指令码所对应的特征;所述应用程序包括多个用于对应应用业务功能的动态链接库;
[0006]在内存中寻找所述空闲列表指令特征;
[0007]基于寻找到的空闲列表指令特征,对所述空闲列表进行扩容基于寻找到的空闲列表指令特征,对所述空闲列表进行扩容,以继续在所述操作系统启动所述应用程序。
[0008]根据本说明书一个或多个实施例的第二方面,提出了一种应用程序的启动装置,包括:
[0009]空闲列表指令特征确定单元,用于在应用程序的启动过程中,在检测到所述应用程序运行所在的操作系统存在动态链接库限制的情况下,确定空闲列表指令特征;所述空闲列表用于表征可用于加载所述动态链接库的剩余内存空间,所述空闲列表指令特征为可以修改所述空闲列表的内存地址的指令码所对应的特征;所述应用程序包括多个用于对应应用业务功能的动态链接库;
[0010]空闲列表指令特征寻找单元,用于在内存中寻找所述空闲列表指令特征;
[0011]空闲列表扩容单元,用于基于寻找到的空闲列表指令特征,对所述空闲列表进行扩容基于寻找到的空闲列表指令特征,对所述空闲列表进行扩容,以继续在所述操作系统启动所述应用程序。
[0012]根据本说明书实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述的应用程序启动方法。
[0013]根据本说明书实施例的第四方面,提供一种电子,所述计算机设备包括:
[0014]处理器;
[0015]用于存储处理器可执行指令的存储器;
[0016]其中,所述处理器通过运行所述可执行指令以实现上述的应用程序启动方法。
[0017]本说明书提供了一种应用程序的启动方法及装置,在应用程序的启动过程中,在检测到所述应用程序运行所在的操作系统存在动态链接库限制的情况下,确定空闲列表指令特征,所述空闲列表用于表征可用于加载所述动态链接库的剩余内存空间,所述空闲列表指令特征为可以修改所述空闲列表的内存地址的指令码所对应的特征;所述应用程序包括多个用于对应应用业务功能的动态链接库;在内存中寻找所述空闲列表指令特征;基于寻找到的空闲列表指令特征,对所述空闲列表进行扩容,以继续在所述操作系统启动所述应用程序。
[0018]由于动态链接库能否被加载是依赖于空闲列表中是否存在剩余的可用内存空间,通过扩容所述空闲列表,使得动态链接库的可用内存空间变多,从而可以加载的动态链接库数量增多,使得动态链接库可以被正常使用,进而应用程序可以正常启动。
[0019]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
[0020]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
[0021]图1是本说明书根据一示例性实施例示出的一种应用程序启动方法的流程图。
[0022]图2是本说敏舒根据一具体实施例示出的一种应用程序启动方法的流程图。
[0023]图3是本说明书根据一示例性实施例示出的一种应用程序启动装置的框图。
[0024]图4是本说明书根据一示例性实施例示出的一种应用程序启动装置所在电子设备的一种硬件结构图。
具体实施方式
[0025]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
[0026]需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
[0027]动态链接库是一种代码分离的组件形式,它允许程序共享执行特殊任务所必需的代码和其他资源。通过使用动态链接库进行编程,相比于静态链接库,可以更好地缩减动态链接库所占用的空间。
[0028]此外,通过动态链接库进行编程,可以将应用程序的不同业务功能分割开来,很好地提高了灵活性,方便动态组织业务功能。具体而言,比如A需要具有业务功能1
‑
3的应用程
序,B需要具有业务功能1
‑
2的应用程序。为了方便同时针对需求不同的A和B进行应用程序的开发,往往会通过不同的动态链接库实现不同的业务功能,这样,在面对需求不同的A和B时,可以方便的根据需求来动态组织业务功能,比如对于A,将业务功能1
‑
3对应的动态链接库组织成针对A的应用程序,对于B,将业务功能1
‑
2对应的动态链接库组织成针对B的应用程序。
[0029]虽然这种开发应用程序的方式提高了灵活性,但是发现这种由多个动态链接库组成的应用程序在某些老旧的操作系统上无法正常启动。寻其原因,发现这些老旧的操作系统对于一个进程中可以加载的动态链接库的数量进行了限制。比如对于安卓(Android)4.2的操作系统,该操作系统规定了一个进程中加载的动态链接库不能超过128个,这其中也包含了系统自带的动态链接库,这使得一个进程可以加载的对应于自己业务功能的动态链接库数量不足128个,而动态链接库一般在应用程序启动时会一起加载,这可能使得应用程序无法正常启动。
[0030]比如操作系统为车机系统(即车辆上安装的操作系统),应用程序为车载导航应用,由于车辆使用年限较久,导致某些安装有老旧操作系统的车辆仍然在使用,而这些车辆上安装的车机系统,存在对于可以加载的动态链接库的数量的限制,这使得车载导航应用在这些系统上可能无法正常启动。
[0031]为了解决上述问本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种应用程序的启动方法,包括:在应用程序的启动过程中,在检测到所述应用程序运行所在的操作系统存在动态链接库限制的情况下,确定空闲列表指令特征;所述空闲列表用于表征可用于加载所述动态链接库的剩余内存空间,所述空闲列表指令特征为可以修改所述空闲列表的内存地址的指令码所对应的特征;所述应用程序包括多个用于对应应用业务功能的动态链接库;在内存中寻找所述空闲列表指令特征;基于寻找到的空闲列表指令特征,对所述空闲列表进行扩容,以继续在所述操作系统启动所述应用程序。2.根据权利要求1所述的方法,所述检测到所述应用程序运行所在的操作系统存在动态链接库限制,包括:检测动态链接库管理器对应的内存空间中是否存在空间超限特征,所述空间超限特征用于表征所述操作系统已加载的动态链接库的数量超过了操作系统的动态链接库数量限制;在所述内存空间中存在空间超限特征的情况下,确定所述应用程序运行所在的操作系统存在动态链接库限制。3.根据权利要求1所述的方法,所述在内存中寻找所述空闲列表指令特征,包括:将所述空闲列表指令特征与内存中存储的指令码进行特征比对;所述空闲列表指令特征是多个版本的操作系统中的动态链接库管理器可以修改所述空闲列表内存地址的指令码所对应的共有特征;响应于特征比对成功,确定所述指令码为所述空闲列表指令特征。4.根据权利要求1所述的方法,所述在内存中寻找所述空闲列表指令特征,包括:确定动态链接库管理器的指令码所占用的内存空间范围;在确定的内存空间范围中寻找所述空闲列表指令特征。5.根据权利要求1所述的方法,所述基于寻找到的空闲列表指...
【专利技术属性】
技术研发人员:段利军,廖秋华,
申请(专利权)人:阿里巴巴中国有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。