调整Zygote堆空间的方法、应用程序的运行方法及电子设备技术

技术编号:35845177 阅读:25 留言:0更新日期:2022-12-07 10:24
本申请实施例涉及计算机技术领域,公开了一种调整Zygote堆空间的方法、装置、基于Android的应用程序的运行方法及电子设备,该方法能够获取待运行的应用程序所需要的Zygote堆空间的大小,然后根据所述应用程序所需要的Zygote堆空间的大小调整当前Zygote堆空间的大小,从而使得Zygote堆空间能够匹配所需要运行的应用程序的大小,避免出现Zygote堆空间过大导致虚拟内存的资源存在浪费的现象,或者Zygote堆空间过小导致应用程序无法正常运行的情况,智能化满足应用程序对Zygote堆空间的需求。间的需求。间的需求。

【技术实现步骤摘要】
调整Zygote堆空间的方法、应用程序的运行方法及电子设备


[0001]本申请实施例涉及计算机
,特别涉及一种调整Zygote堆空间的方法、装置、基于Android的应用程序的运行方法及电子设备。

技术介绍

[0002]在Android中,Zygote(孵化)是整个系统创建新进程的核心进程,是应用的最初来源,所有应用皆来自Zygote的fork,也即是process的复制,Zygote进程在内部会先启动Dalvik虚拟机,继而加载一些必要的系统资源和系统类,最后进入一种监听状态。
[0003]在实现本申请实施例过程中,专利技术人发现以上相关技术中至少存在如下问题:一般情况下,应用程序需要运行时,Android中的java程序会使用到ZygoteHeap(孵化堆空间),目前,该区块的大小通常是预先设置好的,然而,对于不同的应用程序,所需要的Zygote堆空间的大小并不相同,Zygote堆空间过大会导致虚拟内存地址的浪费,过小则会导致程序无法运行,都会导致系统所能运行的程序收到较多限制。

技术实现思路

[0004]本申请实施例提供了一种调整Zygote堆空间的方法、装置、基于Android的应用程序的运行方法及电子设备。
[0005]本申请实施例的目的是通过如下技术方案实现的:
[0006]为解决上述技术问题,第一方面,本申请实施例中提供了一种调整Zygote堆空间的方法,包括:
[0007]获取待运行的应用程序所需要的Zygote堆空间的大小;
[0008]根据所述应用程序所需要的Zygote堆空间的大小调整当前Zygote堆空间的大小。
[0009]在一些实施例中,所述根据所述应用程序所需要的Zygote堆空间的大小调整当前Zygote堆空间的大小,进一步包括:
[0010]判断当前Zygote堆空间的大小是否与所述应用程序所需要的Zygote堆空间的大小相符合;
[0011]若否,根据所述应用程序所需要的Zygote堆空间的大小调整虚拟内存中分配至Zygote堆空间的虚拟内存地址。
[0012]在一些实施例中,所述判断当前Zygote堆空间的大小是否与所述应用程序所需要的Zygote堆空间的大小相符合,进一步包括:
[0013]初步运行所述应用程序并判断是否出现开放式图形库内存溢出错误的异常现象;
[0014]若是,则确定相对于所述应用程序所需要的Zygote堆空间的大小,当前Zygote堆空间的大小较大。
[0015]在一些实施例中,所述判断当前Zygote堆空间的大小是否与所述应用程序所需要的Zygote堆空间的大小相符合,进一步包括:
[0016]初步运行所述应用程序并判断是否出现堆空间内存溢出错误的异常现象;
[0017]若是,则确定相对于所述应用程序所需要的Zygote堆空间的大小,当前Zygote堆空间的大小较小。
[0018]在一些实施例中,在所述判断当前Zygote堆空间的大小是否与所述应用程序所需要的Zygote堆空间的大小相符合之前,所述方法还包括:
[0019]设置所述当前Zygote堆空间的初始值大小,以用于初步运行所述应用程序。
[0020]在一些实施例中,所述方法还包括:
[0021]在出现所述异常现象后,记录并保存所述异常现象的错误数据、所述Zygote堆空间的大小、以及所述应用程序的名称。
[0022]在一些实施例中,在所述根据所述应用程序所需要的Zygote堆空间的大小调整当前Zygote堆空间的大小之前,所述方法还包括:
[0023]判断是否存在所述待运行的应用程序的记录;
[0024]若是,获取所述应用程序出现过所述异常现象的次数,并判断所述次数是否超过阈值;
[0025]若是,调整所述当前Zygote堆空间的大小。
[0026]在一些实施例中,所述获取所述应用程序出现过所述异常现象的次数,并判断所述次数是否超过阈值,进一步包括:
[0027]获取所述应用程序出现过开放式图形库内存溢出错误的异常现象的次数;
[0028]判断出现过开放式图形库内存溢出错误的异常现象的次数是否大于第一阈值;
[0029]若是,所述调整所述当前Zygote堆空间的大小,进一步包括:
[0030]减少所述虚拟内存中分配至Zygote堆空间的虚拟内存地址,以缩小所述当前Zygote堆空间的大小。
[0031]在一些实施例中,所述获取所述应用程序出现过所述异常现象的次数,并判断所述次数是否超过阈值,进一步包括:
[0032]获取所述应用程序出现过堆空间内存溢出错误的异常现象的次数;
[0033]判断出现过堆空间内存溢出错误的异常现象的次数是否大于第二阈值;
[0034]若是,所述调整所述当前Zygote堆空间的大小,进一步包括:
[0035]增加所述虚拟内存中分配至Zygote堆空间的虚拟内存地址,以增大所述当前Zygote堆空间的大小。
[0036]为解决上述技术问题,第二方面,本申请实施例中提供了一种基于Android的应用程序的运行方法,包括:
[0037]通过如第一方面所述的调整Zygote堆空间的方法调整Zygote堆空间的大小;
[0038]通过调整后的Zygote预加载应用程序的资源,以启动所述应用程序。
[0039]为解决上述技术问题,第三方面,本申请实施例提供了一种调整Zygote堆空间的装置,包括:
[0040]获取模块,用于获取待运行的应用程序所需要的Zygote堆空间的大小;
[0041]调整模块,用于根据所述应用程序所需要的Zygote堆空间的大小调整当前Zygote堆空间的大小。
[0042]为解决上述技术问题,第四方面,本申请实施例提供了一种电子设备,包括:
[0043]至少一个处理器;以及,
[0044]与所述至少一个处理器通信连接的存储器;其中,
[0045]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上第一方面所述的方法。
[0046]为解决上述技术问题,第五方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如上第一方面所述的方法。
[0047]为解决上述技术问题,第六方面,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行如上第一方面所述的方法。
[0048]与现有技术相比,本申请的有益效果是:区别于现有技术的情况,本申请实施例中提供了一种调整Zygote堆空间的方法、装置、基于Android的应用程序的运行方法及电子设备,该方法能够获取待运行的应用程序本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种调整Zygote堆空间的方法,其特征在于,包括:获取待运行的应用程序所需要的Zygote堆空间的大小;根据所述应用程序所需要的Zygote堆空间的大小调整当前Zygote堆空间的大小。2.根据权利要求1所述的调整Zygote堆空间的方法,其特征在于,所述根据所述应用程序所需要的Zygote堆空间的大小调整当前Zygote堆空间的大小,进一步包括:判断当前Zygote堆空间的大小是否与所述应用程序所需要的Zygote堆空间的大小相符合;若否,根据所述应用程序所需要的Zygote堆空间的大小调整虚拟内存中分配至Zygote堆空间的虚拟内存地址。3.根据权利要求2所述的调整Zygote堆空间的方法,其特征在于,所述判断当前Zygote堆空间的大小是否与所述应用程序所需要的Zygote堆空间的大小相符合,进一步包括:初步运行所述应用程序并判断是否出现开放式图形库内存溢出错误的异常现象;若是,则确定相对于所述应用程序所需要的Zygote堆空间的大小,当前Zygote堆空间的大小较大。4.根据权利要求2所述的调整Zygote堆空间的方法,其特征在于,所述判断当前Zygote堆空间的大小是否与所述应用程序所需要的Zygote堆空间的大小相符合,进一步包括:初步运行所述应用程序并判断是否出现堆空间内存溢出错误的异常现象;若是,则确定相对于所述应用程序所需要的Zygote堆空间的大小,当前Zygote堆空间的大小较小。5.根据权利要求3或4任一项所述的调整Zygote堆空间的方法,其特征在于,在所述判断当前Zygote堆空间的大小是否与所述应用程序所需要的Zygote堆空间的大小相符合之前,所述方法还包括:设置所述当前Zygote堆空间的初始值大小,以用于初步运行所述应用程序。6.根据权利要求3或4任一项所述的调整Zygote堆空间的方法,其特征在于,所述方法还包括:在出现所述异常现象后,记录并保存所述异常现象的错误数据、所述Zygote堆空间的大小、以及所述应用程序的名称。7.根据权利要求6所述的调整Zygote堆空间的方法,其特征在于,在所述根据所述应用程序所需要的Zygote堆空间的大小调整当前Zygote堆空间的大小之前,所述方法还包括:判断是否存在所述待运行的应用程序的记录;若是,获取所述应用程序出...

【专利技术属性】
技术研发人员:林庚佑施俊宇
申请(专利权)人:深圳市万普拉斯科技有限公司
类型:发明
国别省市:

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

1