System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及终端,特别涉及一种应用程序启动方法、可读存储介质及电子设备。
技术介绍
1、随着移动互联网的高速发展,应用程序集成了越来越多的软件开发工具包(software development kit,sdk),从而实现复用公共代码、提升开发效率、降低开发成本的目的。但这也使得应用程序的安装包占用的内存大幅增加。并且,电子设备上的不同应用程序也会集成相同的sdk,sdk冗余占用大量的存储空间。
2、为此,电子设备中设置了应用间共享库用以存储应用程序中的sdk文件,应用程序可以访问应用间共享库的资源。因此,使用应用间共享库的应用程序无需将sdk打包到安装包中。在应用程序运行时,电子设备的操作系统能够提供一套沙箱挂载机制(例如为应用程序提供一个隔离的虚拟化环境,并保证应用程序所有操作都在这个隔离环境内),将应用间共享库的代码和资源挂载到正在运行的应用程序的进程沙箱中,供应用程序运行时加载。
3、一般来说,应用程序在启动时,电子设备的操作系统会需要将应用程序所依赖的所有应用间共享库都挂载到沙箱中后,再启动应用程序,导致应用程序的启动过程缓慢。并且,应用程序依赖的应用间共享库越多,启动速度越慢。
技术实现思路
1、本申请实施例提供了一种应用程序启动方法、可读存储介质及电子设备。
2、第一方面,本申请实施例提供了一种应用程序启动方法,应用于电子设备中,包括:检测到第一应用的启动指令;挂载第一应用启动所需第一应用间共享库,并基于第一应用间共享库启动第一应用;
3、可以理解,在本申请的实施例中,电子设备上的第一应用在启动时,电子设备的操作系统会创建第一应用的应用进程沙箱,并将第一应用启动时所需的第一应用间共享库挂载到应用进程沙箱中,以便第一应用在启动时加载相应的资源。其中第一应用间共享库在下文中还可以被称为核心依赖共享库。第一应用在运行时,如果需要加载第二应用间共享库,则电子设备的操作系统会将相应的第二应用间共享库挂载到应用进程沙箱中,以便第一应用在运行时加载相应的资源。其中,第二应用间共享库在下文还可以被称为非核心依赖共享库。以此第一应用在启动时不需要挂载第一应用依赖的所有应用间共享库,从而提高第一应用的启动速度,提高用户的使用体验。
4、在上述第一方面的一种可能的实现中,上述挂载第一应用启动所需第一应用间共享库,并基于第一应用间共享库启动第一应用,包括:创建第一应用的应用进程,基于第一应用的应用进程常见第一应用的应用进程沙箱;第一应用的应用进程将第一应用启动时所需的第一应用间共享库挂载到应用进程沙箱中;第一应用的应用进程从应用进程沙箱中获取第一应用间共享库中的资源启动第一应用。
5、可以理解,第一应用在启动时电子设备的操作系统中的应用孵化器可以创建出第一应用的应用进程以及第一应用的应用进程沙箱。由应用进程向应用进程沙箱中挂载相应的第一应用间共享库。第一应用间共享库中包括了第一应用启动时需要加载的资源,因此,第一应用在启动时不需要挂载所有的应用间共享库,从而提高第一应用的启动速度。
6、在上述第一方面的一种可能的实现中,上述第一应用启动时所需的应用间共享库的标识具有第一标记,并且第一应用的应用进程将第一应用启动时所需的第一应用间共享库挂载到应用进程沙箱中,包括:第一应用的应用进程从第一应用的多个应用间共享库中,确定出具有第一标记的第一应用间共享库;第一应用的应用进程基于第一标记将第一应用间共享库挂载到应用进程沙箱中。
7、可以理解,在本申请的一些实施例中,第一应用存储了第一应用所依赖的所有应用间共享库的标识,而第一应用在运行时所需要应用间共享库的标识上具有第一标记。在第一应用启动时,电子设备的操作系统可以挂载标识上具有第一标记的应用间共享库,标识上具有第一标记的应用间共享库即为第一应用共享库。
8、在上述第一方面的一种可能的实现中,上述电子设备存储有第一列表,第一列表包括第一应用启动时所需的应用间共享库的标识;并且第一应用的应用进程将第一应用启动时所需的第一应用间共享库挂载到应用进程沙箱中,包括:第一应用的应用进程从第一列表中确定出第一应用间共享库的第一标识,并将第一应用间共享库挂载到应用进程沙箱中。
9、可以理解,在本申请的一些实施例中,第一应用存储了第一应用所依赖的所有应用间共享库的标识,并且第一应用将第一应用启动时所依赖的应用间共享库表示存储在第一列表中,该第一列表中的应用间共享库的标识对应的应用间共享库即为第一应用间共享库。第一应用在启动时,电子设备的操作系统可以从第一列表中确定需要挂载的第一应用间共享库。
10、在上述第一方面的一种可能的实现中,上述在第一应用的运行过程中,挂载第一应用运行所需的第二应用间共享库,并基于第二应用共享库运行第一应用,包括:向应用进程沙箱中挂载第一应用运行时所需的第二应用间共享库;第一应用的应用进程从应用进程沙箱中获取第二应用间共享库。
11、可以理解,在本申请的一些实施例中,第一应用在运行过程中需要加载第二应用间共享库的资源,电子设备的操作系统即可向应用进程沙箱中挂载第二应用间共享库,以此可以对应用进程沙箱动态扩展,保证第一应用能够正常运行。
12、在上述第一方面的一种可能的实现中,上述向应用进程沙箱中挂载第一应用运行时所需的第二应用间共享库,包括:确定第二应用间共享库属于第一应用所依赖的应用间共享库;向应用进程沙箱中挂载第二应用间共享库;其中,第一应用所依赖的应用间共享库表示第一应用能够获取资源的应用间共享库。
13、可以理解,在本申请的一些实施例中,第一应用在运行需要挂载应用间共享库时,电子设备还会判断第一应用所需的应用间共享库是否合法。例如,判断第一应用所需的应用间共享库是否为第一应用所依赖的应用间共享库,如果是,则电子设备的操作系统将该应用共享库挂载到应用进程沙箱中。如果不是,则不进行挂载。以此可以避免第一应用非法访问其他应用间共享库,保证电子设备的数据安全。
14、在上述第一方面的一种可能的实现中,上述第一应用间共享库和第二应用间共享库独立存储在电子设备中,第一应用间共享库和第二应用间共享库能够独立更新。
15、可以理解,在本申请的一些实施例中应用间共享库是独立存储在电子设备中的,因此应用间共享库出现的问题在修复后可以独立更新,不需要跟随第一应用的版本进行更新。因此,应用间共享库的更新及时,能够提高用户的使用体验。
16、在上述第一方面的一种可能的实现中,上述方法还包括:检测到第一应用间共享库和/或第二应用间共享库更新成第三应用间共享库;第一应用的应用进程需要获取第三应用间共享库时,将第三应用间共享库挂载到应用进程沙箱中;第一应用的应用进程从应用进程沙箱中获取第三应用间共享库。
17、可以理解,在本申请的一些实施例中,由于应用间共享库是独立存储在电子设备中的,因此本文档来自技高网...
【技术保护点】
1.一种应用程序启动方法,应用于电子设备中,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述挂载所述第一应用启动所需第一应用间共享库,并基于所述第一应用间共享库启动所述第一应用,包括:
3.根据权利要求2所述的方法,其特征在于,所述第一应用启动时所需的应用间共享库的标识具有第一标记,并且
4.根据权利要求2所述的方法,其特征在于,所述电子设备存储有第一列表,所述第一列表包括所述第一应用启动时所需的应用间共享库的标识;并且
5.根据权利要求2所述的方法,其特征在于,所述在所述第一应用的运行过程中,挂载所述第一应用运行所需的第二应用间共享库,并基于所述第二应用共享库运行所述第一应用,包括:
6.根据权利要求5所述的方法,其特征在于,所述向所述应用进程沙箱中挂载所述第一应用运行时所需的第二应用间共享库,包括:
7.根据权利要求1所述的方法,其特征在于,所述第一应用间共享库和第二应用间共享库独立存储在所述电子设备中,所述第一应用间共享库和所述第二应用间共享库能够独立更新。
8.根据权利要
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,所述指令在计算机上执行时,使所述计算机执行权利要求1至8中任一项所述的应用程序启动方法。
...【技术特征摘要】
1.一种应用程序启动方法,应用于电子设备中,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述挂载所述第一应用启动所需第一应用间共享库,并基于所述第一应用间共享库启动所述第一应用,包括:
3.根据权利要求2所述的方法,其特征在于,所述第一应用启动时所需的应用间共享库的标识具有第一标记,并且
4.根据权利要求2所述的方法,其特征在于,所述电子设备存储有第一列表,所述第一列表包括所述第一应用启动时所需的应用间共享库的标识;并且
5.根据权利要求2所述的方法,其特征在于,所述在所述第一应用的运行过程中,挂载所述第一应用运行所需的第二应用间共享库,并基于所述第二应用共...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。