释放已占用逻辑空间的方法、装置及虚拟机的制作方法

文档序号:9375335阅读:515来源:国知局
释放已占用逻辑空间的方法、装置及虚拟机的制作方法
【技术领域】
[0001]本公开涉及计算机技术领域,特别涉及一种释放已占用逻辑空间的方法、装置及虚拟机。
【背景技术】
[0002]Android(安卓)是一种基于Linux的自由及开放源代码的操作系统。搭载Android操作系统的终端通过Android虚拟机运行应用程序。
[0003]在搭载Android操作系统的终端中,系统会分配固定大小的逻辑空间用于终端的正常运行。以32位的Android操作系统为例,系统分配的逻辑空间容量为4G,其中有2G的空间用于操作系统和应用程序的运行,操作系统和虚拟机的初始化分别需要占用该空间中的一部分,剩余的空间是应用程序运行时可申请的内存空间。当一个应用程序需要申请的内存空间大于可申请的内存空间时,就可能会导致内存溢出错误。

【发明内容】

[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]可选的,所述空间释放指令中包含待释放的所述部分空间的空间容量,所述空间释放t吴块,包括:
[0044]第二释放子模块,用于根据所述空间容量释放所述部分空间。
[0045]根据本公开的第五方面,提供一种释放已占用逻辑空间的装置,用于通过虚拟机运行应用程序的终端中,所述装置包括:
[0046]处理器;
[0047]用于存储处理器可执行指令的存储器;
[0048]其中,所述处理器被配置为:
[0049]检测所述应用程序是否接收到启动指令;
[0050]若所述应用程序接收到所述启动指令,则获取所述应用程序运行时最多可占用的虚拟机堆空间容量;
[0051]根据所述应用程序运行时最多可占用的虚拟机堆空间容量向所述虚拟机发送空间释放指令,所述空间释放指令用于指示所述虚拟机释放所述虚拟机已占用的逻辑空间中的部分空间。
[0052]本公开的实施例提供的技术方案可以包括以下有益效果:
[0053]通过在检测到应用程序接收到启动指令时,获取该应用程序运行时最多可占用的虚拟机堆空间容量,根据该应用程序运行时最多可占用的虚拟机堆空间容量向该虚拟机发送空间释放指令,使虚拟机释放该虚拟机已占用的逻辑空间中的部分空间,其能给被应用程序申请为内存空间,从而达到扩展应用程序可申请的内存空间的效果。
[0054]应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
【附图说明】
[0055]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
[0056]图1是
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1