CN103218307A - 内存管理系统和内存管理方法 - Google Patents

内存管理系统和内存管理方法 Download PDF

Info

Publication number
CN103218307A
CN103218307A CN2013101366951A CN201310136695A CN103218307A CN 103218307 A CN103218307 A CN 103218307A CN 2013101366951 A CN2013101366951 A CN 2013101366951A CN 201310136695 A CN201310136695 A CN 201310136695A CN 103218307 A CN103218307 A CN 103218307A
Authority
CN
China
Prior art keywords
application program
current operation
application
memory
internal memory
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.)
Granted
Application number
CN2013101366951A
Other languages
English (en)
Other versions
CN103218307B (zh
Inventor
高同庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hisense Group Co Ltd
Original Assignee
Hisense Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hisense Group Co Ltd filed Critical Hisense Group Co Ltd
Priority to CN201310136695.1A priority Critical patent/CN103218307B/zh
Publication of CN103218307A publication Critical patent/CN103218307A/zh
Application granted granted Critical
Publication of CN103218307B publication Critical patent/CN103218307B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供了一种内存管理系统和一种内存管理方法,其中,内存管理系统包括:判断单元,用于在当前运行的应用程序退出前台时,判断所述当前运行的应用程序是否是预设的核心服务应用程序;内存管理单元,在所述应用程序不是所述核心服务应用程序时,关闭所述应用程序,以释放所占内存。通过本发明的技术方案,可使小内存电子设备既可以保证系统关键服务和应用的实时性,又可保证非核心应用程序的正常运行和系统稳定性。

Description

内存管理系统和内存管理方法
技术领域
本发明涉及信息技术领域,具体而言,涉及一种内存管理系统和一种内存管理方法。
背景技术
内存成本是影响电子器件物料清单(BOM)成本的一个重要因素,所以通常要减少物理内存的大小和其它一些硬件成本来降低整个产品的成本,因此这样的产品的内存较小。分辨率是衡量手机、平板和电视等智能电子设备品质的一个重要指标,1080P的分辨率已经是智能电视的主流,即便是小内存机型也不能改变这个指标,但相同的内容所占用的内存空间,1080P(视频显示格式,有效显示格式为:1920×1080)是720P(视频显示格式,有效显示格式为:1280×720)的2.5倍。1080P分辨率的一页用户界面至少需要8MB以上的内存,所以大多的网络和多媒体应用至少占用几十MB,多则达100MB以上,因此对于小内存机型,其用于运行其他应用的剩余内存已经很少。
如图1所示,一个低端智能电子设备,它只有512MB内存,但为了保证用户体验,用户界面的分辨率仍然和高端产品一样为1080P,这就导致了所有应用的用户界面依然和高内存设备的应用一样占用同样大小的内存空间。就电视产品而言,因为电视信号的帧缓冲区和其它的数字信号处理元件需要占用大约150MB的物理内存,所以软件系统使用的物理内存空间只有360MB。操作系统本身以及相关的系统服务要正常运行起来至少需要250MB内存。所以,最后供应用程序使用的内存空间只有100MB左右,通常一般的多媒体服务应用都会占用50MB~100MB的内存,所以系统没有办法保证两个应用同时正常地运行,否则系统服务就有可能受到影响,从而影响到整机的正常功能。
所以如何让小内存的智能电子设备稳定地、顺畅地运行高分辨率的用户界面,并保证系统各种运行场景连贯地、平滑地过渡已成为急需解决的技术问题。
发明内容
考虑到上述背景技术,本发明的一个目的是提供一种新的内存管理技术,可使小内存电子设备既可以保证系统关键服务和应用的实时性,又可保证非核心应用程序的正常运行和系统稳定性。
有鉴于此,根据本发明的一个方面,提供了一种内存管理系统,包括:判断单元,用于在当前运行的应用程序退出前台时,判断所述当前运行的应用程序是否是预设的核心服务应用程序;内存管理单元,在所述判断单元确定所述应用程序不是所述核心服务应用程序时,关闭所述应用程序,以释放所占内存。
在使用电子设备的过程中,系统的某些应用是不能随便被关闭的,否则可能出现不能正常使用电子设备的故障,因此在本方案中为系统服务应用进行了划分,区分核心应用和非核心应用。由于小内存电子设备的内存非常有限,因此在当前运行的应用程序退出前台(例如,将当前运行的应用切换到已启动的核心应用,那么当前应用将退出前台)时,为了保证下一个应用可以顺利运行而不会影响到整机性能,需关闭该当前运行的应用程序,释放内存资源,但有个前提条件是该当前运行的应用程序不是核心服务应用,否则将会影响电子设备的正常使用。因此,采用该技术方案之后,即便是小内存电子设备,也能够保证应用的正常运行,还可以让小内存电子设备稳定地、顺畅地运行高分辨率的用户界面。
在上述技术方案中,优选的,所述判断单元还用于在启动新的应用程序时,判断所述当前运行的应用程序是否是所述核心服务应用程序,并将判断结果发送至所述内存管理单元。
在该场景下,为了保证新启动的应用程序可正常顺利运行,同样由于内存有限,那么当前运行的应用程序将被关闭,以释放其所占用的内存资源,当然在关闭之前仍需要判断是否是核心应用,如果不是核心应用,则可以关闭该当前运行的应用程序。
在上述任一技术方案中,优选的,所述判断单元在确定所述当前运行的应用程序不是所述核心服务应用程序时,进一步判断所述当前运行的应用程序所占内存是否小于等于预设内存值;所述内存管理单元还用于在所述判断单元确定所述当前运行的应用程序所占内存大于所述预设内存值的情况下,在启动所述新的应用程序时,关闭所述当前运行的应用程序,否则允许暂停所述当前运行的应用程序。
小内存电子设备的内存在除去核心应用可能占用的内存之后,剩余内存可能供两个或三个非核心应用运行,该两个或三个应用同时运行所占的内存总和即预设内存值,那么当启动新的应用时,可以判断当前运行的应用程序实际所占的内存是否小于等于该预设内存值,如果小于等于预设内存值,说明即便不关闭当前运行的应用程序,也能够保证新启动的应用程序的正常运行,如果大于预设内存值,说明已不能保证新启动的应用程序的运行了,则在启动新的应用时,必须关闭该当前运行的应用程序,释放所占内存资源。
在上述任一技术方案中,优选的,所述预设内存值根据系统总内存和所有核心服务应用程序的所占内存确定。前面已经说明预设内存值是系统所能保证非核心应用正常运行的内存值,而该内存值与系统总内存以及核心服务应用所占内存有关。
在上述任一技术方案中,优选的,所述核心服务应用程序包括系统服务应用和/或厂商服务应用。
系统服务/应用和厂商专用服务/应用对特定产品来说是非常重要的,这些服务、应用的运行错误会引起整个设备功能失常。但对通用操作系统来说,这些服务和应用是一样的。可以将专用设备的特殊应用和服务放到“专用核心服务名单”之中。“专用核心服务名单”中应用和服务的确定原则是:属于系统和厂商核心的服务和应用,如系统媒体核心服务、系统设置服务、输入法、厂商云账号服务和电视核心服务等等;这些服务通常需要在后台监控和执行一些任务,如果这些应用或者服务被杀掉,可能导致整机功能不能正常执行或者服务再次启动时间比较长,而在这段时间内会导致系统核心功能工作不正常或者严重影响用户体验。
根据本发明的另一方面,还提供了一种内存管理方法,包括:在当前运行的应用程序退出前台时,判断所述当前运行的应用程序是否是核心服务应用程序;若所述应用程序不是所述核心服务应用程序,则关闭所述应用程序,以释放所占内存。
在使用电子设备的过程中,系统的某些应用是不能随便被关闭的,否则可能出现不能正常使用电子设备的故障,因此在本方案中为系统服务应用进行了划分,区分核心应用和非核心应用。由于小内存电子设备的内存非常有限,因此在当前运行的应用程序退出前台(例如,将当前运行的应用切换到已启动的核心应用,那么当前应用将退出前台)时,为了保证下一个应用可以顺利运行而不会影响到整机性能,需关闭该当前运行的应用程序,释放内存资源,但有个前提条件是该当前运行的应用程序不是核心服务应用,否则将会影响电子设备的正常使用。因此,采用该技术方案之后,即便是小内存电子设备,也能够保证应用的正常运行,还可以让小内存电子设备稳定地、顺畅地运行高分辨率的用户界面。
在上述技术方案中,优选的,还可以包括:在启动新的应用程序时,判断所述当前运行的应用程序是否是所述核心服务应用程序,若确定所述当前运行的应用程序不是所述核心服务应用程序,则关闭所述当前运行的应用程序。
在该场景下,为了保证新启动的应用程序可正常顺利运行,同样由于内存有限,那么当前运行的应用程序将被关闭,以释放其所占用的内存资源,当然在关闭之前仍需要判断是否是核心应用,如果不是核心应用,则可以关闭该当前运行的应用程序。
在上述任一技术方案中,优选的,在确定所述当前运行的应用程序不是所述核心服务应用程序时,进一步还包括:判断所述当前运行的应用程序所占内存是否小于等于预设内存值,若所述当前运行的应用程序所占内存大于所述预设内存值,则在启动所述新的应用程序时,关闭所述当前运行的应用程序,否则允许暂停所述当前运行的应用程序。
小内存电子设备的内存在除去核心应用可能占用的内存之后,剩余内存可能供两个或三个非核心应用运行,该两个或三个应用同时运行所占的内存总和即预设内存值,那么当启动新的应用时,可以判断当前运行的应用程序实际所占的内存是否小于等于该预设内存值,如果小于等于预设内存值,说明即便不关闭当前运行的应用程序,也能够保证新启动的应用程序的正常运行,如果大于预设内存值,说明已不能保证新启动的应用程序的运行了,则在启动新的应用时,必须关闭该当前运行的应用程序,释放所占内存资源。
在上述任一技术方案中,优选的,所述预设内存值根据系统总内存和所有核心服务应用程序的所占内存确定。前面已经说明预设内存值是系统所能保证非核心应用正常运行的内存值,而该内存值与系统总内存以及核心服务应用所占内存有关。
在上述任一技术方案中,优选的,所述核心服务应用程序包括系统服务应用和/或厂商服务应用。
系统服务/应用和厂商专用服务/应用对特定产品来说是非常重要的,这些服务、应用的运行错误会引起整个设备功能失常。但对通用操作系统来说,这些服务和应用是一样的。可以将专用设备的特殊应用和服务放到“专用核心服务名单”之中。“专用核心服务名单”中应用和服务的确定原则是:属于系统和厂商核心的服务和应用,如系统媒体核心服务、系统设置服务、输入法、厂商云账号服务和电视核心服务等等;这些服务通常需要在后台监控和执行一些任务,如果这些应用或者服务被杀掉,可能导致整机功能不能正常执行或者服务再次启动时间比较长,而在这段时间内会导致系统核心功能工作不正常或者严重影响用户体验。
附图说明
图1小内存电子设备的内存占用分布示意图;
图2是根据本发明的实施例的内存管理系统的示意图;
图3是根据本发明的实施例的系统应用服务分类示意图;
图4是根据本发明的实施例的核心服务应用程序的进程状态示意图;
图5是根据本发明的实施例的非核心服务应用程序的进程状态示意图;
图6是根据本发明的实施例的内存管理系统的应用示意图;
图7是根据本发明的实施例的内存管理系统的异步处理示意图;
图8是根据本发明的一个实施例的内存管理方法的流程图;
图9是根据本发明的又一实施例的内存管理方法的流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
下面结合附图和实施例对本发明做进一步说明。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
图2是根据本发明的实施例的内存管理系统的示意图。该内存管理系统可应用于任何电子设备,例如平板电脑、平板电视、手机等。
如图2所示,根据本发明的实施例的内存管理系统200,包括:判断单元202和内存管理单元204,其中判断单元202用于在当前运行的应用程序退出前台时,判断当前运行的应用程序是否是预设的核心服务应用程序,在本实施例中,可设置一个核心服务应用程序名单,将所有核心服务器应用程序包含在该名单之内,通过该名单可以判断当前运行的应用程序是否是核心应用;内存管理单元204用于在判断单元202确定应用程序不是核心服务应用程序时,关闭应用程序,以释放所占内存。
在使用电子设备的过程中,系统的某些应用是不能随便被关闭的,否则可能出现不能正常使用电子设备的故障,因此在本方案中为系统服务应用进行了划分,区分核心应用和非核心应用。由于小内存电子设备的内存非常有限,因此在当前运行的应用程序退出前台(例如,将当前运行的应用切换到已启动的核心应用,那么当前应用将退出前台)时,为了保证下一个应用可以顺利运行而不会影响到整机性能,需关闭该当前运行的应用程序,释放内存资源,但有个前提条件是该当前运行的应用程序不是核心服务应用,否则将会影响电子设备的正常使用。因此,采用该技术方案之后,即便是小内存电子设备,也能够保证应用的正常运行,还可以让小内存电子设备稳定地、顺畅地运行高分辨率的用户界面。
在上述技术方案中,优选的,判断单元202还用于在启动新的应用程序时,判断当前运行的应用程序是否是核心服务应用程序,并将判断结果发送至内存管理单元204。
在该场景下,为了保证新启动的应用程序可正常顺利运行,同样由于内存有限,那么当前运行的应用程序将被关闭,以释放其所占用的内存资源,当然在关闭之前仍需要判断该当前运行的应用程序是否是核心应用,如果不是核心应用,则可以关闭该当前运行的应用程序。
在上述任一技术方案中,优选的,上述判断单元202在确定当前运行的应用程序不是核心服务应用程序时,进一步判断当前运行的应用程序所占内存是否小于等于预设内存值;内存管理单元204还用于在判断单元202确定当前运行的应用程序所占内存大于预设内存值的情况下,在启动新的应用程序时,关闭当前运行的应用程序,否则允许暂停当前运行的应用程序。
小内存电子设备的内存在除去核心应用可能占用的内存之后,剩余内存可能供两个或三个非核心应用运行,该两个或三个应用同时运行所占的内存总和即预设内存值,那么当启动新的应用时,可以判断当前运行的应用程序实际所占的内存是否小于等于该预设内存值,如果小于等于预设内存值,说明即便不关闭当前运行的应用程序,也能够保证新启动的应用程序的正常运行,如果大于预设内存值,说明已不能保证新启动的应用程序的顺利运行了,则在启动新的应用时,须关闭该当前运行的应用程序,释放所占内存资源。
若系统可保证同时运行两个非核心应用,那么在检测出当前运行的应用所占的内存大于预设内存值时,说明已不能保证新启动的应用的正常运行,那么可选择关闭上述两个非核心应用或选择关闭其中一个非核心应用,选择的原则可以是就近原则或将占用内存资源大的应用被杀掉。
在上述任一技术方案中,优选的,预设内存值根据系统总内存和所有核心服务应用程序的所占内存确定。前面已经说明预设内存值是系统所能保证非核心应用正常运行的内存值,而该内存值与系统总内存以及核心服务应用所占内存有关。
在上述任一技术方案中,优选的,核心服务应用程序包括系统服务应用和/或厂商服务应用。
系统服务/应用和厂商专用服务/应用对特定产品来说是非常重要的,这些服务、应用的运行错误会引起整个设备功能失常。但对通用操作系统来说,这些服务和应用是一样的。可以将专用设备的特殊应用和服务放到“专用核心服务名单”之中。“专用核心服务名单”中应用和服务的确定原则是:属于系统和厂商核心的服务和应用,如系统媒体核心服务、系统设置服务、输入法、厂商云账号服务和电视核心服务等等;这些服务通常需要在后台监控和执行一些任务,如果这些应用或者服务被杀掉,可能导致整机功能不能正常执行或者服务再次启动时间比较长,而在这段时间内会导致系统核心功能工作不正常或者严重影响用户体验。
本发明还提供了一种电子设备包括上述任一技术方案中所描述的内存管理系统。该电子设备包括便携式移动终端如平板电脑、手机,以及固定终端如平板电视等固定显示设备。
在介绍本发明的又一实施例之前,首先结合图3来说明系统应用的分类,然后结合图4和图5来说明应用程序的进程状态。
如图3所示为智能操作系统应用分类图,任何智能电子设备中的服务和应用可以按照其功能、归属和重要程度分为以下三大类别:系统服务/应用、厂商服务/应用以及用户应用。通用嵌入式智能操作系统维护进程生命周期的原则是尽量长时间地维持进程的生存周期,以作为缓冲,减少下一次应用启动的时间。但最终会将老的进程移除来回收内存,以供更新、更重要的进程使用。操作系统由自己的原则如LRU(LeastRecently Used,最近最少使用算法)原则和进程重要性层次结构来决定哪些进程要被杀掉,哪些是要被保护的。通常这些原则是以应用进程的运行状态来决定的,例如是否正在前台运行,是否是可见进程、服务进程、后台进程,还是缓冲空进程。这在资源比较充分的条件下,是可以运行良好的。但当内存资源受到限制时,系统已经不能够支撑多个具有相同运行状态的进程并存,在这种情况下,就必须借助于辅助方式来管理内存才能保证系统的正常运行。
在本实施例中,整个系统服从的一个设计原则是:除了“专用核心服务名单”中的应用和服务之外,系统任何时候只有一个非核心应用在运行。当此应用退出后,在下一个应用启动之前,前一个应用一定要被“内存辅助管理引擎”(即内存管理单元)杀掉,释放出所占用的内存资源。
如图4所示,为应用在通用操作系统中的生命状态图,在本发明的实施例中,程序的进程状态如图5所示。在图4中,空闲状态(IDLE)不是一个真正的状态,它表示此应用没有处于运行状态。为了延长应用的生命周期,当前应用的用户界面被部分挡住或者全部退出前台时,系统为其设置了“暂停”(Paused)和“停止”(Stopped)两种状态,虽然已退出前台,但应用所占的资源还没有完全释放出来,这样在下次被调用的时候,会很快地处于工作状态。但如果在一个小内存的系统中,这个调度机制反而成为导致系统崩溃的原因。为此,在本实施例中,设计了如图5所示的进程状态图。对有些应用和服务(即非核心服务应用)而言,其生命周期缩短了,只要它退出前台,就会马上被杀掉,释放出内存给其它应用使用。因此图5与图4相比,该图5少了“暂停”(Paused)和“停止”(Stopped)两个状态,与图4相比,由于进程在运行状态(Resumed)时,因为被杀掉,所以可以直接返回到IDLE状态,释放出所占用的系统资源。
因此,在采用本发明的方案之后,“专用核心服务名单”中的服务和应用进程的状态图依然使用图4所示的逻辑,名单外的服务和应用的进程状态图将为图4所示的逻辑。
前面已经说明了本发明的一个系统设计原则:除了“专用核心服务名单”中的应用和服务,系统任何时候只有一个非核心应用在运行。所以,要保证这一点,必须在系统和应用启动的入口处,触发内存辅助管理引擎(即内存管理系统),如图6所示,示出了内存辅助管理引擎与当前系统的交互情况。
1)系统主页面
系统主页面是指当系统启动结束后,第一个进入的系统页面,通常系统还会定义相关热键来让用户在任何运行应用场景下,回到该系统主页面。对智能电视来说,大部分情况下,此主页面为TV电视的播放页面。
在用户使用电子设备的过程中,如果用户通过热键回到系统主页面,则在其启动过程中,需要触发内存辅助管理引擎来做辅助内存管理。例如用户是从一个非核心应用转移到系统主页面,那么此非核心应用将被杀掉,释放出内存以提供足够的空间让下一个应用使用。
2)应用主页
智能电子设备可以装载很多智能应用。通常系统会有一个应用主页,其主要功能是定制、推荐及浏览各种应用。用户在应用浏览器上可以随意地启动/退出应用,在回到应用主页面上时,需要触发内存辅助管理引擎来做辅助内存管理。例如用户是从一个非核心应用转移到系统主页面,那么此非核心应用将被杀掉,释放出内存以提供足够的空间让下一个应用使用。
3)遥控器的热键方式
电子设备需要支持人机交互,通过热键可以调用出经常使用的应用程序,大多数情况下,热键所对应的应用服务也是在“专用核心服务名单”。对智能电视来说,很多热键是通过遥控器完成的。有一些特殊的热键,如调出应用历史,在这种情况下,需要触发内存辅助管理引擎来做辅助内存管理。在调用出新的应用服务之前,需要关闭当前运行的非核心应用,以释放当前应用的内存。
4)外部设备
为了提高用户体验,当一些外部设备插入到智能设备时,通常会有通知界面,然后用户可以从此界面直接转到与外设相关的应用。U盘是一个比较典型的例子,当U盘插到系统中时,用户界面弹出,帮助用户直接播放多媒体。如果此时用户正在使用一个非核心应用,然后转到多媒体播放应用,则需要触发内存辅助管理引擎来做辅助内存管理。在调用出新的多媒体应用之前,需要关闭释放当前非核心应用的内存。
为了不影响系统的响应速度和用户体验,当内存辅助管理引擎与系统交互时,采用的是异步处理方式,如图7所示。也就是系统主页面、应用主页、热键和外部设备调用引擎接口后,会立即返回,继续执行下一个指令。“内存辅助管理引擎”会启动一个新的线程完成后面的任务,这种机制会提高系统的响应速度。
需说明的是,在上面的实施例中,限定了除了核心应用之外,系统在任何时候只有一个非核心应用在运行,本领域技术人员应理解,在小内存的电子设备除了核心应用之外,可以允许两个或三个应用同时运行,因此,若当前运行的应用程序没有超出设定内存,则可以不杀掉当前运行的应用程序,当然若当前运行的应用程序所占内存超出设定内存,则需杀掉当前运行的应用程序,采用哪种方案需要考虑电子设备的内存实际总大小以及核心应用所占的内存。因此,针对小内存的电子设备,采用本发明的技术方案之后,既可以保证系统关键服务和应用的实时性,又可以保证所有非核心应用程序的正常运行和系统稳定性,从而保证小内存智能电子设备的整机品质。
图8是根据本发明的实施例的内存管理方法的流程图。
如图8所示,根据本发明的实施例的内存管理方法可以包括以下步骤:步骤802,在当前运行的应用程序退出前台时,判断当前运行的应用程序是否是核心服务应用程序;步骤804,若应用程序不是核心服务应用程序,则关闭应用程序,以释放所占内存。
在使用电子设备的过程中,系统的某些应用是不能随便被关闭的,否则可能出现不能正常使用电子设备的故障,因此在本方案中为系统服务应用进行了划分,区分核心应用和非核心应用。由于小内存电子设备的内存非常有限,因此在当前运行的应用程序退出前台(例如,将当前运行的应用切换到已启动的核心应用,那么当前应用将退出前台)时,为了保证下一个应用可以顺利运行而不会影响到整机性能,需关闭该当前运行的应用程序,释放内存资源,但有个前提条件是该当前运行的应用程序不是核心服务应用,否则将会影响电子设备的正常使用。因此,采用该技术方案之后,即便是小内存电子设备,也能够保证应用的正常运行,还可以让小内存电子设备稳定地、顺畅地运行高分辨率的用户界面。
在上述技术方案中,优选的,还可以包括:在启动新的应用程序时,判断当前运行的应用程序是否是核心服务应用程序,若确定当前运行的应用程序不是核心服务应用程序,则关闭当前运行的应用程序。
在该场景下,为了保证新启动的应用程序可正常顺利运行,同样由于内存有限,那么当前运行的应用程序将被关闭,以释放其所占用的内存资源,当然在关闭之前仍需要判断是否是核心应用,如果不是核心应用,则可以关闭该当前运行的应用程序。
在上述任一技术方案中,优选的,在确定所述当前运行的应用程序不是所述核心服务应用程序时,进一步还可以包括:判断所述当前运行的应用程序所占内存是否小于等于预设内存值,若所述当前运行的应用程序所占内存大于所述预设内存值,则在启动所述新的应用程序时,关闭所述当前运行的应用程序,否则允许暂停所述当前运行的应用程序。
小内存电子设备的内存在除去核心应用可能占用的内存之后,剩余内存可能供两个或三个非核心应用运行,该两个或三个应用同时运行所占的内存总和即预设内存值,那么当启动新的应用时,可以判断当前运行的应用程序实际所占的内存是否小于等于该预设内存值,如果小于等于预设内存值,说明即便不关闭当前运行的应用程序,也能够保证新启动的应用程序的正常运行,如果大于预设内存值,说明已不能保证新启动的应用程序的运行了,则在启动新的应用时,必须关闭该当前运行的应用程序,释放所占内存资源。
在上述任一技术方案中,优选的,所述预设内存值根据系统总内存和所有核心服务应用程序的所占内存确定。前面已经说明预设内存值是系统所能保证非核心应用正常运行的内存值,而该内存值与系统总内存以及核心服务应用所占内存有关。
在上述任一技术方案中,优选的,所述核心服务应用程序包括系统服务应用和/或厂商服务应用。
系统服务/应用和厂商专用服务/应用对特定产品来说是非常重要的,这些服务、应用的运行错误会引起整个设备功能失常。但对通用操作系统来说,这些服务和应用是一样的。可以将专用设备的特殊应用和服务放到“专用核心服务名单”之中。“专用核心服务名单”中应用和服务的确定原则是:属于系统和厂商核心的服务和应用,如系统媒体核心服务、系统设置服务、输入法、厂商云账号服务和电视核心服务等等;这些服务通常需要在后台监控和执行一些任务,如果这些应用或者服务被杀掉,可能导致整机功能不能正常执行或者服务再次启动时间比较长,而在这段时间内会导致系统核心功能工作不正常或者严重影响用户体验。
图9是根据本发明的又一实施例的内存管理方法的流程图。
在具体实现时,若要启动新的应用,则可采用如图9所示的方法来进行内存管理。步骤902,获取当前系统正在运行的所有应用。步骤904,获取系统专用核心服务名单。步骤906,检测每一个运行应用是否在核心服务名单之内。若是,则结束该流程,若否,则进入步骤908,杀掉这个正在运行的非核心应用,释放其所占用的内存以供下一个启动的新应用使用。
本发明的技术方案可应用于多任务操作系统,只要非核心应用不在前台运行,在一定的场景下,就会被内存辅助管理引擎杀掉,释放出内存,提供给下一个即将运行的应用使用,这样可保证所有应用(包括系统内嵌应用和第三方应用)在有限的内存空间可以正常运行,从而使小内存电子设备既可以保证系统关键服务和应用的实时性,又可以保证所有非核心应用程序的正常运行和系统稳定性,进而保证小内存智能电子设备的整机品质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种内存管理系统,其特征在于,包括:
判断单元,用于在当前运行的应用程序退出前台时,判断所述当前运行的应用程序是否是预设的核心服务应用程序;
内存管理单元,在所述判断单元确定所述应用程序不是所述核心服务应用程序时,关闭所述应用程序,以释放所占内存。
2.根据权利要求1所述的内存管理系统,其特征在于,所述判断单元还用于在启动新的应用程序时,判断所述当前运行的应用程序是否是所述核心服务应用程序,并将判断结果发送至所述内存管理单元。
3.根据权利要求2所述的内存管理系统,其特征在于,所述判断单元还用于在确定所述当前运行的应用程序不是所述核心服务应用程序时,进一步判断所述当前运行的应用程序所占内存是否小于等于预设内存值;
所述内存管理单元还用于在所述判断单元确定所述当前运行的应用程序所占内存大于所述预设内存值的情况下,在启动所述新的应用程序时,关闭所述当前运行的应用程序,否则允许暂停所述当前运行的应用程序。
4.根据权利要求3所述的内存管理系统,其特征在于,所述预设内存值根据系统总内存和所有核心服务应用程序的所占内存确定。
5.根据权利要求1至4中任一项所述的内存管理系统,其特征在于,所述核心服务应用程序包括系统服务应用和/或厂商服务应用。
6.一种内存管理方法,其特征在于,包括:
在当前运行的应用程序退出前台时,判断所述当前运行的应用程序是否是核心服务应用程序;
若所述应用程序不是所述核心服务应用程序,则关闭所述应用程序,以释放所占内存。
7.根据权利要求6所述的内存管理方法,其特征在于,还包括:在启动新的应用程序时,判断所述当前运行的应用程序是否是所述核心服务应用程序;
若确定所述当前运行的应用程序不是所述核心服务应用程序,则关闭所述当前运行的应用程序。
8.根据权利要求7所述的内存管理方法,其特征在于,在确定所述当前运行的应用程序不是所述核心服务应用程序时,进一步还包括:
判断所述当前运行的应用程序所占内存是否小于等于预设内存值,若所述当前运行的应用程序所占内存大于所述预设内存值,则在启动所述新的应用程序时,关闭所述当前运行的应用程序,否则允许暂停所述当前运行的应用程序。
9.根据权利要求8所述的内存管理方法,其特征在于,所述预设内存值根据系统总内存和所有核心服务应用程序的所占内存确定。
10.根据权利要求6至9中任一项所述的内存管理方法,其特征在于,所述核心服务应用程序包括系统服务应用和/或厂商服务应用。
CN201310136695.1A 2013-04-18 2013-04-18 内存管理系统和内存管理方法 Active CN103218307B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310136695.1A CN103218307B (zh) 2013-04-18 2013-04-18 内存管理系统和内存管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310136695.1A CN103218307B (zh) 2013-04-18 2013-04-18 内存管理系统和内存管理方法

Publications (2)

Publication Number Publication Date
CN103218307A true CN103218307A (zh) 2013-07-24
CN103218307B CN103218307B (zh) 2016-03-30

Family

ID=48816123

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310136695.1A Active CN103218307B (zh) 2013-04-18 2013-04-18 内存管理系统和内存管理方法

Country Status (1)

Country Link
CN (1) CN103218307B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487822A (zh) * 2015-12-03 2016-04-13 海信集团有限公司 一种扫描控制方法和智能设备
CN105786519A (zh) * 2016-03-17 2016-07-20 福州瑞芯微电子股份有限公司 安卓设备程序管理方法和安卓设备
CN105808440A (zh) * 2016-03-14 2016-07-27 腾讯科技(深圳)有限公司 应用程序的低内存测试方法、装置和系统
CN105912398A (zh) * 2016-04-06 2016-08-31 北京小米移动软件有限公司 内存检测方法及装置
CN106104482A (zh) * 2014-03-10 2016-11-09 微软技术许可有限责任公司 应用到应用的调用期间的应用脱水和再水合
CN107315635A (zh) * 2016-04-26 2017-11-03 华为技术有限公司 手持设备和该手持设备的资源量的调整方法
CN107912063A (zh) * 2016-04-27 2018-04-13 华为技术有限公司 一种内存回收方法及装置
CN107943545A (zh) * 2017-12-15 2018-04-20 深圳市沃特沃德股份有限公司 车载系统启动核心应用程序的方法与车载系统
CN109274991A (zh) * 2018-09-07 2019-01-25 苏宁智能终端有限公司 智能电视的内存管理方法及系统
CN112835689A (zh) * 2019-11-25 2021-05-25 航天信息股份有限公司 一种控制应用进程的方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101403981A (zh) * 2008-11-07 2009-04-08 中兴通讯股份有限公司 手机应用程序运行状态的管理方法和系统
US20110154364A1 (en) * 2009-12-22 2011-06-23 International Business Machines Corporation Security system to protect system services based on user defined policies
CN102156675A (zh) * 2010-02-12 2011-08-17 中兴通讯股份有限公司 一种内存分配方法及装置
CN102306095A (zh) * 2011-07-21 2012-01-04 宇龙计算机通信科技(深圳)有限公司 应用程序管理方法和终端
CN102760080A (zh) * 2011-04-26 2012-10-31 腾讯科技(深圳)有限公司 一种内存管理的方法和装置
CN102946486A (zh) * 2012-11-20 2013-02-27 惠州Tcl移动通信有限公司 一种基于手机的后台应用自动清理方法及手机
CN102968337A (zh) * 2012-11-28 2013-03-13 康佳集团股份有限公司 一种应用程序清理方法及系统
CN103024538A (zh) * 2012-11-12 2013-04-03 北京奇虎科技有限公司 内存管理方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101403981A (zh) * 2008-11-07 2009-04-08 中兴通讯股份有限公司 手机应用程序运行状态的管理方法和系统
US20110154364A1 (en) * 2009-12-22 2011-06-23 International Business Machines Corporation Security system to protect system services based on user defined policies
CN102156675A (zh) * 2010-02-12 2011-08-17 中兴通讯股份有限公司 一种内存分配方法及装置
CN102760080A (zh) * 2011-04-26 2012-10-31 腾讯科技(深圳)有限公司 一种内存管理的方法和装置
CN102306095A (zh) * 2011-07-21 2012-01-04 宇龙计算机通信科技(深圳)有限公司 应用程序管理方法和终端
CN103024538A (zh) * 2012-11-12 2013-04-03 北京奇虎科技有限公司 内存管理方法及系统
CN102946486A (zh) * 2012-11-20 2013-02-27 惠州Tcl移动通信有限公司 一种基于手机的后台应用自动清理方法及手机
CN102968337A (zh) * 2012-11-28 2013-03-13 康佳集团股份有限公司 一种应用程序清理方法及系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106104482A (zh) * 2014-03-10 2016-11-09 微软技术许可有限责任公司 应用到应用的调用期间的应用脱水和再水合
CN105487822A (zh) * 2015-12-03 2016-04-13 海信集团有限公司 一种扫描控制方法和智能设备
CN105808440A (zh) * 2016-03-14 2016-07-27 腾讯科技(深圳)有限公司 应用程序的低内存测试方法、装置和系统
CN105786519A (zh) * 2016-03-17 2016-07-20 福州瑞芯微电子股份有限公司 安卓设备程序管理方法和安卓设备
CN105786519B (zh) * 2016-03-17 2021-04-09 瑞芯微电子股份有限公司 安卓设备程序管理方法和安卓设备
CN105912398A (zh) * 2016-04-06 2016-08-31 北京小米移动软件有限公司 内存检测方法及装置
CN107315635A (zh) * 2016-04-26 2017-11-03 华为技术有限公司 手持设备和该手持设备的资源量的调整方法
CN107912063A (zh) * 2016-04-27 2018-04-13 华为技术有限公司 一种内存回收方法及装置
CN107943545A (zh) * 2017-12-15 2018-04-20 深圳市沃特沃德股份有限公司 车载系统启动核心应用程序的方法与车载系统
CN109274991A (zh) * 2018-09-07 2019-01-25 苏宁智能终端有限公司 智能电视的内存管理方法及系统
CN109274991B (zh) * 2018-09-07 2020-11-10 苏宁智能终端有限公司 智能电视的内存管理方法及系统
CN112835689A (zh) * 2019-11-25 2021-05-25 航天信息股份有限公司 一种控制应用进程的方法及装置

Also Published As

Publication number Publication date
CN103218307B (zh) 2016-03-30

Similar Documents

Publication Publication Date Title
CN103218307B (zh) 内存管理系统和内存管理方法
US11132219B2 (en) Starting method for applications which are closed automatically based on the insufficient memory of the system
CN105701025B (zh) 一种内存回收方法及装置
CN101794567B (zh) 图片加载的方法及终端
CN105302637B (zh) 系统进程运行异常引起卡顿的恢复方法、装置及移动终端
CN103984598B (zh) 用于线程调度的方法以及系统
US10871985B2 (en) Displaying media files between changes in states of an application client
CN102027453B (zh) 用于在虚拟环境中优化中断处理的系统和方法
CN103645950B (zh) 一种计算机的加速方法和装置
CN111966492B (zh) 内存回收方法、装置、电子设备及计算机可读存储介质
US20140317639A1 (en) Method and System for Implementing Function Extension of Open Platform
CN110704184B (zh) 一种应用内存优化方法、装置和移动终端
CN105550041A (zh) 一种移动终端控制方法及控制装置
CN103257893B (zh) 一种获取输入事件状态的方法、装置和系统
CN107071284A (zh) 一种拍照方法及终端
CN107783633A (zh) 一种管理应用程序的方法、终端及计算机可读存储介质
CN115587049A (zh) 内存回收方法、装置、电子设备及存储介质
CN111628895B (zh) 一种配置数据同步方法、装置、设备及可读存储介质
CN108459858B (zh) 一种应用程序的功能调整方法、装置、设备及存储介质
CN113687942A (zh) 检测方法、装置及电子设备
CN106326049A (zh) 一种故障定位方法及终端
CN113032290A (zh) 闪存配置方法、装置、电子设备和存储介质
US20030126135A1 (en) Remote resource management of local devices
CN117742929A (zh) 内存回收方法、电子设备以及存储介质
CN118057337A (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
C14 Grant of patent or utility model
GR01 Patent grant