CN104407981B - 内存管理方法和装置 - Google Patents
内存管理方法和装置 Download PDFInfo
- Publication number
- CN104407981B CN104407981B CN201410589843.XA CN201410589843A CN104407981B CN 104407981 B CN104407981 B CN 104407981B CN 201410589843 A CN201410589843 A CN 201410589843A CN 104407981 B CN104407981 B CN 104407981B
- Authority
- CN
- China
- Prior art keywords
- resource
- application
- internal memory
- display resource
- display
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
本发明是关于一种内存管理方法和装置,属于计算机技术领域。所述方法包括:确定在后台运行的应用;获取该应用存放于内存中的显示资源;将显示资源存储至移动终端的其它存储器中,并将显示资源从内存中清除。本发明通过将后台运行的应用存放于内存中的显示资源存储至移动终端的其它存储器中,并将这些显示资源从内存中释放;解决了相关技术在释放内存资源时,将一些有用的进程杀掉,而导致影响设备的正常使用的问题;既达到了释放内存资源的目的,同时保证了设备的正常使用。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种内存管理方法和装置。
背景技术
内存是电子设备的一个重要组成部件,电子设备中所有程序的运行都是在内存中进行的,内存的性能对电子设备的整体性能而言至关重要。
由于系统的内存资源是有限的,当系统内运行的应用较多时,会出现内存资源不足的情况。相关技术提供了一套内存管理机制,以应对上述内存资源不足的情况。当内存资源不足时,通过选择一个或多个正在运行的应用所对应的进程并将其杀掉,以释放内存资源。
公开人在实现本公开的过程中,发现上述方式至少存在如下缺陷:系统在选择需要杀掉的进程时,通常选择一些内存资源占用比较大的进程,然而这很有可能将一些有用的进程杀掉,导致影响设备的正常使用。
发明内容
为了解决上述技术在释放内存资源时,将一些有用的进程杀掉,而导致影响设备的正常使用的问题,本公开实施例提供了一种内存管理方法和装置。所述技术方案如下:
根据本公开实施例的第一方面,提供了一种内存管理方法,用于移动终端中,所述方法包括:
确定在后台运行的应用;
获取所述应用存放于内存中的显示资源,所述显示资源为图片的内容信息,所述应用在所述内存中还存放有文字、所述图片的状态信息;
将所述显示资源存储至所述移动终端的其它存储器中,并将所述显示资源从所述内存中释放;
在所述应用被调用至前台运行时,通过异步加载方式从所述其它存储器中获取所述应用对应的显示资源;
将所述应用对应的显示资源加载至所述内存中;
通过操作系统中的绘制进程将所述重新加载至内存的显示资源绘制到屏幕上。
可选的,所述将所述显示资源存储至所述移动终端的其它存储器中,并将所述显示资源从所述内存中释放,包括:
将所述显示资源存储至所述移动终端的Flash存储器中,并将所述显示资源从所述内存中释放。
可选的,所述通过异步加载方式从所述其它存储器中获取所述应用对应的显示资源,将所述应用对应的显示资源加载至所述内存中,包括:
若所述移动终端为安卓Android操作系统的移动终端,则在所述应用的Activity组件中的onResume方法开始被调用时,通过所述onResume方法调用预定函数;
通过所述预定函数启动新线程,所述新线程用于从所述其它存储器中获取所述应用对应的显示资源,并将所述应用对应的显示资源加载至所述内存中。
可选的,所述方法还包括:
建立所述应用的显示资源的索引,所述索引用于表示所述显示资源在所述内存中的存储地址和在所述其它存储器中的存储地址的对应关系。
根据本公开实施例的第二方面,提供了一种内存管理装置,用于移动终端中,所述装置包括:
应用确定模块,被配置为确定在后台运行的应用;
资源获取模块,被配置为获取所述应用存放于内存中的显示资源,所述显示资源为图片的内容信息,所述应用在所述内存中还存放有文字、所述图片的状态信息;
资源存储模块,被配置为将所述显示资源存储至所述移动终端的其它存储器中,并将所述显示资源从所述内存中释放;
资源加载模块,被配置为在所述应用被调用至前台运行时,通过异步加载方式从所述其它存储器中获取所述应用对应的显示资源,将所述应用对应的显示资源加载至所述内存中;
资源绘制模块,被配置为通过操作系统中的绘制进程将所述重新加载至内存的显示资源绘制到屏幕上。
可选的,所述资源存储模块,还被配置为将所述显示资源存储至所述移动终端的Flash存储器中,并将所述显示资源从所述内存中释放。
可选的,所述资源加载模块,包括:函数调用子模块和线程启动子模块;
所述函数调用子模块,被配置为当所述移动终端为安卓Android操作系统的移动终端,则在所述应用的Activity组件中的onResume方法开始被调用时,通过所述onResume方法调用预定函数;
所述线程启动子模块,被配置为通过所述预定函数启动新线程,所述新线程用于从所述其它存储器中获取所述应用对应的显示资源,并将所述应用对应的显示资源加载至所述内存中。
可选的,所述装置还包括:
索引建立模块,被配置为建立所述应用的显示资源的索引,所述索引用于表示所述显示资源在所述内存中的存储地址和在所述其它存储器中的存储地址的对应关系。
根据本公开实施例的第三方面,提供了一种内存管理装置,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
确定在后台运行的应用;
获取所述应用存放于内存中的显示资源,所述显示资源为图片的内容信息,所述应用在所述内存中还存放有文字、所述图片的状态信息;
将所述显示资源存储至移动终端的其它存储器中,并将所述显示资源从所述内存中释放;
在所述应用被调用至前台运行时,通过异步加载方式从所述其它存储器中获取所述应用对应的显示资源;
将所述应用对应的显示资源加载至所述内存中;
通过操作系统中的绘制进程将所述重新加载至内存的显示资源绘制到屏幕上。
根据本公开实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令由处理器加载并执行以实现如第一方面所述的内存管理方法。
本公开实施例提供的技术方案可以包括以下有益效果:
通过将后台运行的应用存放于内存中的显示资源存储至移动终端的其它存储器中,并将这些显示资源从内存中释放;解决了相关技术在释放内存资源时,将一些有用的进程杀掉,而导致影响设备的正常使用的问题;既达到了释放内存资源的目的,同时保证了设备的正常使用。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种内存管理方法的流程图;
图2是根据另一示例性实施例示出的一种内存管理方法的流程图;
图3是根据一示例性实施例示出的一种内存管理装置的框图;
图4是根据另一示例性实施例示出的一种内存管理装置的框图;
图5是根据一示例性实施例示出的一种装置的框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种内存管理方法的流程图,本实施例以该内存管理方法应用于诸如手机、平板电脑、多媒体播放器之类的移动终端中进行举例说明。该内存管理方法可以包括如下几个步骤:
在步骤102中,确定在后台运行的应用。
在步骤104中,获取该应用存放于内存中的显示资源。
在步骤106中,将显示资源存储至移动终端的其它存储器中,并将显示资源从内存中释放。
综上所述,本实施例提供的内存管理方法,通过将后台运行的应用存放于内存中的显示资源存储至移动终端的其它存储器中,并将这些显示资源从内存中释放;解决了相关技术在释放内存资源时,将一些有用的进程杀掉,而导致影响设备的正常使用的问题;既达到了释放内存资源的目的,同时保证了设备的正常使用。
图2是根据另一示例性实施例示出的一种内存管理方法的流程图,本实施例以该内存管理方法应用于诸如手机、平板电脑、多媒体播放器之类的移动终端中进行举例说明。该内存管理方法可以包括如下几个步骤:
在步骤201中,确定在后台运行的应用。
在移动终端内的应用被切换至后台后,其对应的进程仍然正常运行,占用内存资源。移动终端监听应用在前后台之间的切换,在应用被切换至后台运行时,执行下述步骤202。
可选的,若移动终端为安卓Android操作系统的移动终端,在应用被切换至后台运行时,该应用的Activity组件中的onPause方法会被调用,在onPause方法被调用时,执行下述步骤202。
在步骤202中,获取该应用存放于内存中的显示资源。
在应用被切换至后台运行时,移动终端获取该应用存放于内存中的显示资源。其中,内存通常是指RAM(Random Access Memory,随机存取存储器)。应用的显示资源是指用于显示需要的内容,显示资源包括但不限于图片、视频、文字中的至少一种。在通常情况下,由于文字所占用的内存本身就较小,因此本步骤可不获取应用存放于内存中的文字。
当显示资源为图片时,移动终端获取应用存放于内存中的图片的内容信息,也即移动终端获取应用存放于内存中的用于显示需要的视图内容。需要说明的一点是:移动终端仅获取图片的内容信息,并不获取图片的大小、位置等状态信息。
在步骤203中,将显示资源存储至移动终端的其它存储器中,并将显示资源从内存中释放。
移动终端将获取到的显示资源存储至其它存储器中,并将这些显示资源从内存中释放,达到减少内存占用的目的。其中,移动终端的其它存储器可以是硬盘,也可以是Flash存储器。相比于硬盘,Flash存储器具有更快的数据读取速度,同时具有抗衰、抗震、数据存储安全性更高等优势。因此,考虑到后续应用被调用至前台运行时,显示资源加载回内存的速度,这里选择将显示资源存储至移动终端的Flash存储器中更为合适。
另外,当显示资源为图片时,移动终端仅将图片的内容信息从内存中释放,而将这些图片的状态信息保留在内存中,使得后续应用被调用至前台运行时,在显示这些图片时无需重新进行测量、布局,提高应用在显示时的流畅性和效率。
另外,在上述步骤203之前,移动终端可建立应用的显示资源的索引,该索引用于表示显示资源在内存中的存储地址和在其它存储器中的存储地址之间的对应关系。移动终端在将显示资源存储至其它存储器中时,根据显示资源在内存中的存储地址和上述索引,查询确定显示资源在其它存储器中的存储地址,并将显示资源存储至所确定的存储地址处。移动终端建立各个应用的显示资源的索引的时机可根据实际需求预先确定。比如,在应用被启动运行时建立该应用的显示资源的索引,或者在应用被启动运行的预定时间间隔后建立该应用的显示资源的索引。对此,本实施例不作具体限定。
在一个例子中,假设某一应用的显示资源包括图片1、图片2和图片3。在该应用被启动运行时,移动终端分别建立上述三张图片的索引。以其它存储器为Flash存储器为例,上述索引所包含的对应关系可如下表-1所示:
图片在内存中的存储地址 | 图片在Flash存储器中的存储地址 | |
图片1的索引 | 存储地址a | 存储地址B |
图片2的索引 | 存储地址b | 存储地址C |
图片3的索引 | 存储地址c | 存储地址D |
表-1
当该应用被切换至后台运行时,移动终端根据图片1的索引从内存的存储地址a获取图片1,并将图片1存储至Flash存储器的存储地址B;根据图片2的索引从内存的存储地址b获取图片2,并将图片2存储至Flash存储器的存储地址C;根据图片3的索引从内存的存储地址c获取图片3,并将图片3存储至Flash存储器的存储地址D。另外,移动终端可依次将三张图片从内存中释放,或者也可同时将三张图片从内存中释放。
需要说明的一点是:在应用被切换至后台运行时,移动终端可立即执行上述步骤202和203,将该应用存放于内存中的显示资源释放。或者,移动终端也可在应用被切换至后台的时长达到预定时长时,执行上述步骤202和203,将该应用存放于内存中的显示资源释放。其中,预定时长是预先设定的经验值,比如3秒。
在步骤204中,在应用被调用至前台运行时,通过异步加载方式从其它存储器中获取应用对应的显示资源。
在应用被调用至前台时,移动终端通过异步加载方式从其它存储器中获取应用对应的显示资源。移动终端根据之前建立的索引,查询获取应用对应的显示资源在其它存储器中的存储地址,并根据查询到的存储地址从其它存储器中获取应用对应的显示资源。可选的,当其它存储器为Flash存储器时,移动终端从Flash存储器中获取应用对应的显示资源。
在步骤205中,将应用对应的显示资源加载至内存中。
移动终端从其它存储器中获取应用对应的显示资源后,将这些显示资源加载回内存中,确保应用的正常显示。
需要说明的一点是:移动终端从其它存储器中获取应用对应的显示资源后,可根据该显示资源在其它存储设备中的存储地址以及之前建立的索引,查询确定该显示资源在内存中的存储地址,并将显示资源存储至确定的存储地址处。或者,移动终端从其它存储器中获取应用对应的显示资源后,将该显示资源存储至内存的目标存储地址处,并重新建立显示资源的索引。
在一种可能的实施方式中,若移动终端为安卓Android操作系统的移动终端,上述步骤204和步骤205中涉及的将显示资源重新加载至内存的过程如下:在应用被调用至前台运行时,应用的Activity组件中的onResume方法会被调用,在onResume方法开始被调用时,也即在onResume方法被调用之初,通过onResume方法调用预定函数,并通过该预定函数启动新线程,该新线程用于从其它存储器中获取应用对应的显示资源,并将其加载回内存中。通过在onResume方法被调用之初即启动显示资源的加载,可以确保加载效率,尽可能地保证应用在显示时的流畅性。
在步骤206中,通过操作系统中的绘制进程将重新加载至内存的显示资源绘制到屏幕上。
移动终端在将应用的显示资源重新加载至内存的过程中,通过操作系统中的绘制进程将重新加载至内存的显示资源绘制到屏幕上。采用异步加载方式,可以使得显示资源的重新加载和显示资源的绘制同时进行。比如,当显示资源为图片时,启动的新线程负责将图片从其它存储器重新加载至内存中,与此同时,操作系统中的绘制进程负责将重新加载至内存的图片绘制到屏幕上进行显示。采用异步加载方式可确保应用在显示时的流畅性和效率。
需要说明的一点是:当显示资源为图片时,应用在显示的过程中,如果某个图片的内容信息暂未被加载回内存,应用可先显示该图片的轮廓,并通过新线程主动从其它存储器中将该图片的内容信息加载回内存。在图片的内容信息加载回内存后,通过操作系统中的绘制进程完成绘制。
另外,移动终端可以在系统底层实现上述内存管理方法,包括在应用被切换至后台运行时将后台运行的应用的显示资源从内存中释放,以及在应用被调用至前台运行时通过异步加载方式将应用的显示资源调回内存,无需对各个应用分别进行修改。
综上所述,本实施例提供的内存管理方法,通过将后台运行的应用存放于内存中的显示资源存储至移动终端的其它存储器中,并将这些显示资源从内存中释放;解决了相关技术在释放内存资源时,将一些有用的进程杀掉,而导致影响设备的正常使用的问题;既达到了释放内存资源的目的,同时保证了设备的正常使用。
另外,当显示资源为图片时,仅将图片的内容信息从内存中释放,而将图片的状态信息保留在内存中,使得后续应用被调用至前台运行时,在显示这些图片时无需重新进行测量、布局,确保图片的加载效率,提高应用从后台调用至前台的流畅性和效率。同时,本实施例提供的内存管理方法,可以较大幅度地减小后台应用的内存占用,使得移动终端能够支持更多的应用在后台运行。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图3是根据一示例性实施例示出的一种内存管理装置的框图,该内存管理装置可以通过软件、硬件或者两者的结合实现成为移动终端的部分或者全部。该内存管理装置可以包括:应用确定模块310、资源获取模块320和资源存储模块330。
应用确定模块310,被配置为确定在后台运行的应用。
资源获取模块320,被配置为获取该应用存放于内存中的显示资源。
资源存储模块330,被配置为将显示资源存储至移动终端的其它存储器中,并将显示资源从内存中释放。
综上所述,本实施例提供的内存管理装置,通过将后台运行的应用存放于内存中的显示资源存储至移动终端的其它存储器中,并将这些显示资源从内存中释放;解决了相关技术在释放内存资源时,将一些有用的进程杀掉,而导致影响设备的正常使用的问题;既达到了释放内存资源的目的,同时保证了设备的正常使用。
图4是根据另一示例性实施例示出的一种内存管理装置的框图,该内存管理装置可以通过软件、硬件或者两者的结合实现成为移动终端的部分或者全部。该内存管理装置可以包括:应用确定模块310、资源获取模块320和资源存储模块330。
应用确定模块310,被配置为确定在后台运行的应用。
资源获取模块320,被配置为获取该应用存放于内存中的显示资源。
资源存储模块330,被配置为将显示资源存储至移动终端的其它存储器中,并将显示资源从内存中释放。
在一种可能的实施方式中,资源存储模块330,还被配置为将显示资源存储至移动终端的Flash存储器中,并将显示资源从内存中释放。
可选的,该装置还包括:资源加载模块340和资源绘制模块350。
资源加载模块340,被配置为在应用被调用至前台运行时,通过异步加载方式从其它存储器中获取应用对应的显示资源,将应用对应的显示资源加载至内存中。
资源绘制模块350,被配置为通过操作系统中的绘制进程将重新加载至内存的显示资源绘制到屏幕上。
可选的,资源加载模块340,包括:函数调用子模块340a和线程启动子模块340b。
函数调用子模块340a,被配置为当移动终端为安卓Android操作系统的移动终端,则在应用的Activity组件中的onResume方法开始被调用时,通过onResume方法调用预定函数。
线程启动子模块340b,被配置为通过预定函数启动新线程,该新线程用于从其它存储器中获取应用对应的显示资源,并将应用对应的显示资源加载至内存中。
可选的,该装置还包括:索引建立模块302。
索引建立模块302,被配置为建立应用的显示资源的索引,该索引用于表示显示资源在内存中的存储地址和在其它存储器中的存储地址的对应关系。
综上所述,本实施例提供的内存管理装置,通过将后台运行的应用存放于内存中的图片资源存储至移动终端的其它存储器中,并将这些图片资源从内存中清楚;解决了相关技术在释放内存资源时,将一些有用的进程杀掉,而导致影响设备的正常使用的问题;既达到了释放内存资源的目的,同时保证了设备的正常使用。
同时,本实施例提供的内存管理装置,可以较大幅度地减小后台应用的内存占用,使得移动终端能够支持更多的应用在后台运行。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的一种用于管理内存的装置500的框图。例如,装置500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,装置500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件508,音频组件510,输入/输出(I/O)的接口512,传感器组件514,以及通信组件516。
处理组件502通常控制装置500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理组件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。
存储器504被配置为存储各种类型的数据以支持在装置500的操作。这些数据的示例包括用于在装置500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件506为装置500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为装置500生成、管理和分配电力相关联的组件。
多媒体组件508包括在所述装置500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当装置500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(MIC),当装置500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
I/O接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件514包括一个或多个传感器,用于为装置500提供各个方面的状态评估。例如,传感器组件514可以检测到装置500的打开/关闭状态,组件的相对定位,例如所述组件为装置500的显示器和小键盘,传感器组件514还可以检测装置500或装置500一个组件的位置改变,用户与装置500接触的存在或不存在,装置500方位或加速/减速和装置500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件516被配置为便于装置500和其他设备之间有线或无线方式的通信。装置500可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由装置500的处理器520执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置500的处理器执行时,使得装置500能够执行如上述图1或图2所示实施例提供的内存管理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种内存管理方法,其特征在于,用于移动终端中,所述方法包括:
确定在后台运行的应用;
获取所述应用存放于内存中的显示资源,所述显示资源为图片的内容信息,所述应用在所述内存中还存放有文字、所述图片的状态信息;
将所述显示资源存储至所述移动终端的其它存储器中,并将所述显示资源从所述内存中释放;
在所述应用被调用至前台运行时,通过异步加载方式从所述其它存储器中获取所述应用对应的显示资源;
将所述应用对应的显示资源加载至所述内存中;
通过操作系统中的绘制进程将所述重新加载至内存的显示资源绘制到屏幕上。
2.根据权利要求1所述的方法,其特征在于,所述将所述显示资源存储至所述移动终端的其它存储器中,并将所述显示资源从所述内存中释放,包括:
将所述显示资源存储至所述移动终端的Flash存储器中,并将所述显示资源从所述内存中释放。
3.根据权利要求1所述的方法,其特征在于,所述通过异步加载方式从所述其它存储器中获取所述应用对应的显示资源,将所述应用对应的显示资源加载至所述内存中,包括:
若所述移动终端为安卓Android操作系统的移动终端,则在所述应用的Activity组件中的onResume方法开始被调用时,通过所述onResume方法调用预定函数;
通过所述预定函数启动新线程,所述新线程用于从所述其它存储器中获取所述应用对应的显示资源,并将所述应用对应的显示资源加载至所述内存中。
4.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
建立所述应用的显示资源的索引,所述索引用于表示所述显示资源在所述内存中的存储地址和在所述其它存储器中的存储地址的对应关系。
5.一种内存管理装置,其特征在于,用于移动终端中,所述装置包括:
应用确定模块,被配置为确定在后台运行的应用;
资源获取模块,被配置为获取所述应用存放于内存中的显示资源,所述显示资源为图片的内容信息,所述应用在所述内存中还存放有文字、所述图片的状态信息;
资源存储模块,被配置为将所述显示资源存储至所述移动终端的其它存储器中,并将所述显示资源从所述内存中释放;
资源加载模块,被配置为在所述应用被调用至前台运行时,通过异步加载方式从所述其它存储器中获取所述应用对应的显示资源,将所述应用对应的显示资源加载至所述内存中;
资源绘制模块,被配置为通过操作系统中的绘制进程将所述重新加载至内存的显示资源绘制到屏幕上。
6.根据权利要求5所述的装置,其特征在于,
所述资源存储模块,还被配置为将所述显示资源存储至所述移动终端的Flash存储器中,并将所述显示资源从所述内存中释放。
7.根据权利要求5所述的装置,其特征在于,所述资源加载模块,包括:函数调用子模块和线程启动子模块;
所述函数调用子模块,被配置为当所述移动终端为安卓Android操作系统的移动终端,则在所述应用的Activity组件中的onResume方法开始被调用时,通过所述onResume方法调用预定函数;
所述线程启动子模块,被配置为通过所述预定函数启动新线程,所述新线程用于从所述其它存储器中获取所述应用对应的显示资源,并将所述应用对应的显示资源加载至所述内存中。
8.根据权利要求5至7任一所述的装置,其特征在于,所述装置还包括:
索引建立模块,被配置为建立所述应用的显示资源的索引,所述索引用于表示所述显示资源在所述内存中的存储地址和在所述其它存储器中的存储地址的对应关系。
9.一种内存管理装置,其特征在于,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
确定在后台运行的应用;
获取所述应用存放于内存中的显示资源,所述显示资源为图片的内容信息,所述应用在所述内存中还存放有文字、所述图片的状态信息;
将所述显示资源存储至移动终端的其它存储器中,并将所述显示资源从所述内存中释放;
在所述应用被调用至前台运行时,通过异步加载方式从所述其它存储器中获取所述应用对应的显示资源;
将所述应用对应的显示资源加载至所述内存中;
通过操作系统中的绘制进程将所述重新加载至内存的显示资源绘制到屏幕上。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,所述指令由处理器加载并执行以实现如权利要求1至4任一项所述的内存管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410589843.XA CN104407981B (zh) | 2014-10-28 | 2014-10-28 | 内存管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410589843.XA CN104407981B (zh) | 2014-10-28 | 2014-10-28 | 内存管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104407981A CN104407981A (zh) | 2015-03-11 |
CN104407981B true CN104407981B (zh) | 2018-03-20 |
Family
ID=52645614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410589843.XA Active CN104407981B (zh) | 2014-10-28 | 2014-10-28 | 内存管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104407981B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106033397A (zh) * | 2015-03-17 | 2016-10-19 | 小米科技有限责任公司 | 内存缓冲区调整方法、装置及终端 |
CN104765646B (zh) * | 2015-03-18 | 2018-02-23 | 小米科技有限责任公司 | 组件调用方法及装置 |
CN104965708B (zh) * | 2015-06-30 | 2018-09-28 | 北京奇艺世纪科技有限公司 | 一种应用程序运行过程的内存管理方法及装置 |
CN105404551A (zh) * | 2015-12-11 | 2016-03-16 | Tcl移动通信科技(宁波)有限公司 | 移动终端的应用前后台切换处理方法、系统及移动终端 |
CN109891390B (zh) * | 2017-08-11 | 2021-12-14 | 华为技术有限公司 | 一种应用切换方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004699A (zh) * | 2010-11-25 | 2011-04-06 | 康佳集团股份有限公司 | 一种基于mtk平台的内存共享方法 |
US10631246B2 (en) * | 2011-02-14 | 2020-04-21 | Microsoft Technology Licensing, Llc | Task switching on mobile devices |
CN102253893A (zh) * | 2011-04-02 | 2011-11-23 | 赵悦 | 一种内存扩展方法 |
CN102331934B (zh) * | 2011-10-21 | 2013-07-31 | 广州市久邦数码科技有限公司 | 一种基于go桌面系统的桌面组件的实现方法 |
-
2014
- 2014-10-28 CN CN201410589843.XA patent/CN104407981B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104407981A (zh) | 2015-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105893136B (zh) | 多任务管理方法和装置 | |
CN105845124B (zh) | 音频处理方法及装置 | |
CN104407981B (zh) | 内存管理方法和装置 | |
CN104951335B (zh) | 应用程序安装包的处理方法及装置 | |
US20170185988A1 (en) | Mpayment method and apparatus | |
CN110555333A (zh) | 指纹识别方法、电子设备和存储介质 | |
CN105955765A (zh) | 应用预加载方法及装置 | |
CN104503740A (zh) | 内存管理方法和装置 | |
US11281363B2 (en) | Method and device for setting identity image | |
US11222223B2 (en) | Collecting fingerprints | |
CN107193653A (zh) | 带宽资源分配方法、装置及存储介质 | |
CN109254849A (zh) | 应用程序的运行方法及装置 | |
CN106354504A (zh) | 消息显示方法及装置 | |
CN106648730A (zh) | 异常应用的处理方法和装置 | |
CN106851695A (zh) | 一种测试网速的方法、装置和系统 | |
CN107423378A (zh) | 图片显示方法及装置 | |
CN110989902A (zh) | 信息处理方法及装置、书写设备、终端设备 | |
CN107404429A (zh) | 朋友圈回复方法、装置及计算机可读存储介质 | |
CN110321042B (zh) | 界面信息展示方法、装置及电子设备 | |
CN104899059B (zh) | 操作系统升级方法及装置 | |
CN104899151B (zh) | 内存数据读写方法及装置 | |
CN107491238A (zh) | 推送信息的显示方法和装置 | |
CN107423059A (zh) | 页面的显示方法、装置及终端 | |
CN105183326B (zh) | 列表显示方法及装置 | |
CN106933111A (zh) | 一种控制设备的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |