[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN107133097A - 内存优化方法及装置 - Google Patents

内存优化方法及装置 Download PDF

Info

Publication number
CN107133097A
CN107133097A CN201710246754.9A CN201710246754A CN107133097A CN 107133097 A CN107133097 A CN 107133097A CN 201710246754 A CN201710246754 A CN 201710246754A CN 107133097 A CN107133097 A CN 107133097A
Authority
CN
China
Prior art keywords
application program
resource
internal memory
mobile terminal
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
CN201710246754.9A
Other languages
English (en)
Other versions
CN107133097B (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.)
Shenzhen Qianhai caixinyun Technology Co., Ltd.
Original Assignee
Nubia Technology 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 Nubia Technology Co Ltd filed Critical Nubia Technology Co Ltd
Priority to CN201710246754.9A priority Critical patent/CN107133097B/zh
Publication of CN107133097A publication Critical patent/CN107133097A/zh
Application granted granted Critical
Publication of CN107133097B publication Critical patent/CN107133097B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

本发明公开了一种内存优化方法及装置,该装置包括:检测模块,用于在系统启动后,检测移动终端后台运行的各应用程序;第一判断模块,用于根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问;获取模块,用于在所述判断模块的判断结果为否时,获取所述应用程序在内存中占用的资源;比对模块,用于将所述应用程序在内存中占用的资源与预设的资源黑白名单进行比对,其中所述资源黑白名单中存储有所述应用程序占用的关键资源和非关键资源;清理模块,用于根据比对结果清理所述应用程序在内存占用的资源中的非关键资源以释放相应的内存。与现有技术相比,本发明实现了静默清理资源,优化了内存。

Description

内存优化方法及装置
技术领域
本发明涉及移动通信技术领域,尤其涉及一种内存优化方法及装置。
背景技术
随着移动终端的普及和基于移动终端的应用与日常生活的紧密关联,用户的移动终端上通常会安装较多的应用,但是随着用户开启应用数量的增多和用户对移动终端使用习惯的差异,用户移动终端中内存的容量在用户使用一段时间后因为用户开启较多应用且在使用完应用后没有及时关闭应用而导致内存可使用容量不足。由于移动终端的内存具有不可随需进行动态扩展性,用户移动终端的内存容量大小会受到出厂时的大小的局限性,导致内存资源严重稀缺。
具体的,用户通常习惯打开比较多的应用,而当用户结束访问应用后通常又没有彻底关掉应用,该应用往往是继续占用着系统中的宝贵内存资源。当用户打开移动终端再次访问其他应用时,由于之前访问的应用在系统内存中没有彻底关闭,在系统内存中仍然占用一定的内存资源,随着用户打开应用越来越多,系统的内存资源的占用也越来越多,最终累计到一定阶段,会导致新应用打开时,由于没有足够的内存资源而出现错误。而用户可感知的对内存的依赖即是在使用手机时是否出现卡顿,当用户打开太多应用而没有及时关闭进行内存释放时,由于有限的内存资源已经被占用,导致后来开启的应用可以申请到的内存资源越来越有限,当内存不足时,用户再次开启应用会触发系统对内存的强制回收,只有等待完成对系统内存资源的强制回收后用户开启的应用才会被打开,在系统对内存进行强制回收过程中,用户需要等待,导致用户点击应用后等待一段时间才可以看到预期的应用界面,给用户造成卡顿、短暂黑屏或闪退等问题体验。
因此,有必要提供一种内存优化方法及装置来解决上述技术问题。
发明内容
本发明的主要目的在于提出一种内存优化方法及装置,旨在解决移动终端上打开大量应用程序、访问结束时应用程序仍占用大量内存,导致终端内存不足而出现卡顿、短暂黑屏或闪退的问题。
为实现上述目的,本发明提供一种内存优化装置,应用于移动终端,所述内存优化装置包括:
检测模块,用于在系统启动后,检测移动终端后台运行的各应用程序;
第一判断模块,用于根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问;
获取模块,用于在所述判断模块的判断结果为否时,获取所述应用程序在内存中占用的资源;
比对模块,用于将所述应用程序在内存中占用的资源与预设的资源黑白名单进行比对,其中所述资源黑白名单中存储有所述应用程序占用的关键资源和非关键资源;
清理模块,用于根据比对结果清理所述应用程序在内存占用的资源中的非关键资源以释放相应的内存。
可选地,所述内存优化装置还包括:
标记模块,用于对释放内存的所述应用程序进行标记;
第二判断模块,用于根据标记后的所述应用程序的历史统计数据实时检测并判断所述应用程序是否即将访问;
加载模块,用于在所述第二判断模块的判断结果为是时,根据所述应用程序的资源黑白名单加载所述应用程序占用的非关键资源。
可选地,所述内存优化装置还包括:
历史数据统计模块,用于实时扫描并记录移动终端上运行的各应用程序的使用信息,所述使用信息包括使用频率、使用时长和使用时间段;以及
数据处理模块,用于根据所述使用频率和使用时长计算并存储所述应用程序的类型,并根据所述应用程序的所有使用时间段确定所述应用程序的高频使用时间段,其中所述类型包括经常访问和不常访问;
所述第一判断模块具体用于:
依次判断系统启动的当前时刻与各所述应用程序的高频使用时间段的差值是否小于预设时间值,若判断结果为是,则判定所述应用程序即将访问;
所述内存优化装置还包括:
类型获取模块,用于获取各所述应用程序的类型,并依次对类型为不常访问、经常访问的应用程序调用所述第一判断模块直至所述移动终端的内存满足预设条件。
可选地,所述历史数据统计模块还用于:
实时扫描并记录移动终端上运行的各应用程序在内存中占用的资源信息;
所述数据处理模块还用于:
根据各应用程序在内存中占用的资源信息为各所述应用程序生成所述资源黑白名单。
可选地,所述内存优化装置还包括:
优先级判断模块,用于获取各所述应用程序的进程等级、ADJ等级以及进程状态等级,并根据所述进程等级、ADJ等级以及进程状态等级确定所述应用程序的优先级;
所述第一判断模块具体用于:
按照所述应用程序的优先级由低至高的顺序,依次根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问。
相较于现有技术,本发明所提出的内存优化装置在系统启动后,根据历史统计数据判断后台运行的各应用程序是否即将访问,对于短期内不会访问的应用程序,将其在内存中的非关键资源进行清理以释放相应的内存,由于仅清理了部分不重要的资源,该清理过程用户不会感知到,因此实现了静默清理,且优化了内存,可以有效解决移动终端上打开大量应用程序、访问结束时应用程序仍占用大量内存,导致终端内存不足而出现卡顿、短暂黑屏或闪退的问题。
此外,为实现上述目的,本发明还提供一种内存优化方法,应用于移动终端,所述内存优化方法包括以下步骤:
系统启动后,检测移动终端后台运行的各应用程序;
根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问;
若判断结果为否,则获取所述应用程序在内存中占用的资源;
将所述应用程序在内存中占用的资源与预设的资源黑白名单进行比对,其中所述资源黑白名单中存储有所述应用程序占用的关键资源和非关键资源;
根据比对结果清理所述应用程序在内存占用的资源中的非关键资源以释放相应的内存。
可选地,所述根据比对结果清理所述应用程序在内存占用的资源中的非关键资源以释放相应的内存的步骤之后还包括:
对释放内存的所述应用程序进行标记;
根据标记后的所述应用程序的历史统计数据实时检测并判断所述应用程序是否即将访问;
若判断结果为是,则根据所述应用程序的资源黑白名单加载所述应用程序占用的非关键资源。
可选地,所述检测移动终端后台运行的各应用程序的步骤之前还包括:
实时扫描并记录移动终端上运行的各应用程序的使用信息,所述使用信息包括使用频率、使用时长和使用时间段;以及
根据所述使用频率和使用时长计算并存储所述应用程序的类型,并根据所述应用程序的所有使用时间段确定所述应用程序的高频使用时间段,其中所述类型包括经常访问和不常访问;
所述根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问的步骤具体为:
依次判断系统启动的当前时刻与各所述应用程序的高频使用时间段的差值是否小于预设时间值,若判断结果为是,则判定所述应用程序即将访问;
所述根据各所述应用程序的历史统计数据判断各所述应用程序是否即将访问的步骤之前还包括:
获取各所述应用程序的类型;
依次对类型为不常访问、经常访问的应用程序执行所述根据各所述应用程序的历史统计数据判断各所述应用程序是否即将访问的步骤,直至所述移动终端的内存满足预设条件。
可选地,所述检测移动终端后台运行的各应用程序的步骤之前还包括:
实时扫描并记录移动终端上运行的各应用程序在内存中占用的资源信息;
根据各应用程序在内存中占用的资源信息为各所述应用程序生成所述资源黑白名单。
可选地,所述检测移动终端后台运行的各应用程序的步骤之前还包括:
获取各所述应用程序的进程等级、ADJ等级以及进程状态等级;
根据所述进程等级、ADJ等级以及进程状态等级确定所述应用程序的优先级;
所述根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问具体为:
按照所述应用程序的优先级由低至高的顺序,依次根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问。
相较于现有技术,本发明所提出的内存优化方法在系统启动后,根据历史统计数据判断后台运行的各应用程序是否即将访问,对于短期内不会访问的应用程序,将其在内存中的非关键资源进行清理以释放相应的内存,由于仅清理了部分不重要的资源,该清理过程用户不会感知到,因此实现了静默清理,且优化了内存,可以有效解决移动终端上打开大量应用程序、访问结束时应用程序仍占用大量内存,导致终端内存不足而出现卡顿、短暂黑屏或闪退的问题。
附图说明
图1为实现本发明各个实施例一可选的移动终端的硬件结构示意图;
图2为如图1所示的移动终端的无线通信系统示意图;
图3为本发明所述的内存优化装置第一实施例的功能模块示意图;
图4为本发明所述的内存优化装置第二实施例的功能模块示意图;
图5为本发明所述的内存优化方法第一实施例的实施流程示意图;
图6为本发明所述的内存优化方法第二实施例的实施流程示意图;
图7为某一时刻移动终端上后台运行的应用程序列表;
图8为图7所示移动终端的内存分配示意图;
图9为对图7和图8所示实施例的移动终端进行内存优化后移动终端上各应用程序对内存的分配列表;
图10为对图7和图8所示实施例的移动终端进行内存优化后移动终端的内存分配示意图。
附图标记:
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现在将参考附图描述实现本发明各个实施例的移动终端100。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
图1为实现本发明各个实施例的移动终端的硬件结构示意。
移动终端100可以包括,但不限于感测单元10、存储器20、控制器30、无线通信单元40、输出单元50、输入单元60、接口单元70及电源单元80。图1示出了具有各种组件的移动终端100,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述移动终端100的元件。
感测单元10用于检测移动终端100的当前状态,(例如,移动终端100的打开或关闭状态)、移动终端100的位置、用户对于移动终端100的接触(即,触摸输入)的有无、移动终端100的取向、移动终端100的加速或减速移动和方向等等,并且生成用于控制移动终端100的操作的命令或信号。例如,当移动终端100实施为滑动型移动电话时,感测单元10可以感测该滑动型电话是打开还是关闭。另外,感测单元10能够检测电源单元190是否提供电力或者接口单元170是否与外部装置耦接。
无线通信单元40通常包括一个或多个组件,其允许移动终端100与无线通信系统或网络之间的无线电通信。例如,无线通信单元可以包括广播接收模块、移动通信模块、无线互联网模块、短程通信模块和位置信息模块中的至少一个。
广播接收模块经由广播信道从外部广播管理服务器接收广播信号和/或广播相关信息。广播信道可以包括卫星信道和/或地面信道。广播管理服务器可以是生成并发送广播信号和/或广播相关信息的服务器或者接收之前生成的广播信号和/或广播相关信息并且将其发送给终端的服务器。广播信号可以包括TV广播信号、无线电广播信号、数据广播信号等等。而且,广播信号可以进一步包括与TV或无线电广播信号组合的广播信号。广播相关信息也可以经由移动通信网络提供,并且在该情况下,广播相关信息可以由移动通信模块来接收。广播信号可以以各种形式存在,例如,其可以以数字多媒体广播(DMB)的电子节目指南(EPG)、数字视频广播手持(DVB-H)的电子服务指南(ESG)等等的形式而存在。广播接收模块可以通过使用各种类型的广播系统接收信号广播。特别地,广播接收模块可以通过使用诸如多媒体广播-地面(DMB-T)、数字多媒体广播-卫星(DMB-S)、数字视频广播-手持(DVB-H),前向链路媒体(MediaFLO@)的数据广播系统、地面数字广播综合服务(ISDB-T)等等的数字广播系统接收数字广播。广播接收模块可以被构造为适合提供广播信号的各种广播系统以及上述数字广播系统。经由广播接收模块接收的广播信号和/或广播相关信息可以存储在存储器20(或者其它类型的存储介质)中。
移动通信模块将无线电信号发送到基站(例如,接入点、节点B等等)、外部终端以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。
无线互联网模块支持移动终端的无线互联网接入。该模块可以内部或外部地耦接到终端。该模块所涉及的无线互联网接入技术可以包括WLAN(无线LAN)(Wi-Fi)、Wibro(无线宽带)、Wimax(全球微波互联接入)、HSDPA(高速下行链路分组接入)等等。
短程通信模块是用于支持短程通信的模块。短程通信技术的一些示例包括蓝牙TM、射频识别(RFID)、红外数据协会(IrDA)、超宽带(UWB)、紫蜂TM等等。
位置信息模块是用于检查或获取移动终端的位置信息的模块。位置信息模块的典型示例是GPS(全球定位系统)。根据当前的技术,GPS模块计算来自三个或更多卫星的距离信息和准确的时间信息并且对于计算的信息应用三角测量法,从而根据经度、纬度和高度准确地计算三维当前位置信息。当前,用于计算位置和时间信息的方法使用三颗卫星并且通过使用另外的一颗卫星校正计算出的位置和时间信息的误差。此外,GPS模块能够通过实时地连续计算当前位置信息来计算速度信息。
输出单元50被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。输出单元50可以包括显示单元51、音频输出模块52、警报单元53等等。
显示单元51可以显示在移动终端100中处理的信息。例如,当移动终端100处于电话通话模式时,显示单元51可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(UI)或图形用户界面(GUI)。当移动终端100处于视频通话模式或者图像捕获模式时,显示单元51可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的UI或GUI等等。
同时,当显示单元51和触摸板以层的形式彼此叠加以形成触摸屏时,显示单元51可以用作输入装置和输出装置。显示单元51可以包括液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、有机发光二极管(OLED)显示器、柔性显示器、三维(3D)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为TOLED(透明有机发光二极管)显示器等等。根据特定想要的实施方式,移动终端100可以包括两个或更多显示单元(或其它显示装置),例如,移动终端可以包括外部显示单元(未示出)和内部显示单元(未示出)。触摸屏可用于检测触摸输入压力以及触摸输入位置和触摸输入面积。
音频输出模块52可以在移动终端处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将无线通信单元40接收的或者在存储器20中存储的音频数据转换音频信号并且输出为声音。而且,音频输出模块52可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出模块52可以包括扬声器、蜂鸣器等等。
警报单元53可以提供输出以将事件的发生通知给移动终端100。典型的事件可以包括呼叫接收、消息接收、键信号输入、触摸输入等等。除了音频或视频输出之外,警报单元53可以以不同的方式提供输出以通知事件的发生。例如,警报单元53可以以振动的形式提供输出,当接收到呼叫、消息或一些其它进入通信(incoming communication)时,警报单元53可以提供触觉输出(即,振动)以将其通知给用户。通过提供这样的触觉输出,即使在用户的移动电话处于用户的口袋中时,用户也能够识别出各种事件的发生。警报单元53也可以经由显示单元51或音频输出模块52提供通知事件的发生的输出。
输入单元60可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。输入单元60允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。特别地,当触摸板以层的形式叠加在显示单元50上时,可以形成触摸屏。
接口单元70用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。识别模块可以是存储用于验证用户使用移动终端100的各种信息并且可以包括用户识别模块(UIM)、客户识别模块(SIM)、通用客户识别模块(USIM)等等。另外,具有识别模块的装置(下面称为"识别装置")可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与移动终端100连接。接口单元170可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端和外部装置之间传输数据。
另外,当移动终端100与外部底座连接时,接口单元70可以用作允许通过其将电力从底座提供到移动终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到移动终端的路径。从底座输入的各种命令信号或电力可以用作用于识别移动终端是否准确地安装在底座上的信号。
存储器20可以存储由控制器30执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器20可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。
存储器20可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等等。而且,移动终端10可以与通过网络连接执行存储器20的存储功能的网络存储装置协作。
控制器30通常控制移动终端的总体操作。例如,控制器30执行与语音通话、数据通信、视频通话等等相关的控制和处理。另外,控制器30可以包括用于再现(或回放)多媒体数据的多媒体模块,多媒体模块可以构造在控制器30内,或者可以构造为与控制器30分离。控制器30可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。
电源单元80在控制器30的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器180中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器160中并且由控制器180执行。
至此,己经按照其功能描述了移动终端。下面,为了简要起见,将描述诸如折叠型、直板型、摆动型、滑动型移动终端等等的各种类型的移动终端中的滑动型移动终端作为示例。因此,本发明能够应用于任何类型的移动终端,并且不限于滑动型移动终端。
如图1中所示的移动终端100可以被构造为利用经由帧或分组发送数据的诸如有线和无线通信系统以及基于卫星的通信系统来操作。
现在将参考图2描述其中根据本发明的移动终端能够操作的通信系统。
这样的通信系统可以使用不同的空中接口和/或物理层。例如,由通信系统使用的空中接口包括例如频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)和通用移动通信系统(UMTS)(特别地,长期演进(LTE))、全球移动通信系统(GSM)等等。作为非限制性示例,下面的描述涉及CDMA通信系统,但是这样的教导同样适用于其它类型的系统。
参考图2,CDMA无线通信系统可以包括多个移动终端100、多个基站(BS)270、基站控制器(BSC)275和移动交换中心(MSC)280。MSC280被构造为与公共电话交换网络(PSTN)290形成接口。MSC280还被构造为与可以经由回程线路耦接到基站270的BSC275形成接口。回程线路可以根据若干己知的接口中的任一种来构造,所述接口包括例如E1/T1、ATM,IP、PPP、帧中继、HDSL、ADSL或xDSL。将理解的是,如图2中所示的系统可以包括多个BSC2750。
每个BS270可以服务一个或多个分区(或区域),由多向天线或指向特定方向的天线覆盖的每个分区放射状地远离BS270。或者,每个分区可以由用于分集接收的两个或更多天线覆盖。每个BS270可以被构造为支持多个频率分配,并且每个频率分配具有特定频谱(例如,1.25MHz,5MHz等等)。
分区与频率分配的交叉可以被称为CDMA信道。BS270也可以被称为基站收发器子系统(BTS)或者其它等效术语。在这样的情况下,术语"基站"可以用于笼统地表示单个BSC275和至少一个BS270。基站也可以被称为"蜂窝站"。或者,特定BS270的各分区可以被称为多个蜂窝站。
如图2中所示,广播发射器(BT)295将广播信号发送给在系统内操作的移动终端100。如图1中所示的广播接收模块111被设置在移动终端100处以接收由BT295发送的广播信号。在图2中,示出了几个全球定位系统(GPS)卫星300。卫星300帮助定位多个移动终端100中的至少一个。
在图2中,描绘了多个卫星300,但是理解的是,可以利用任何数目的卫星获得有用的定位信息。如图1中所示的无线通信单元40中的GPS模块通常被构造为与卫星300配合以获得想要的定位信息。替代GPS跟踪技术或者在GPS跟踪技术之外,可以使用可以跟踪移动终端的位置的其它技术。另外,至少一个GPS卫星300可以选择性地或者额外地处理卫星DMB传输。
作为无线通信系统的一个典型操作,BS270接收来自各种移动终端100的反向链路信号。移动终端100通常参与通话、消息收发和其它类型的通信。特定基站270接收的每个反向链路信号被在特定BS270内进行处理。获得的数据被转发给相关的BSC275。BSC提供通话资源分配和包括BS270之间的软切换过程的协调的移动管理功能。BSC275还将接收到的数据路由到MSC280,其提供用于与PSTN290形成接口的额外的路由服务。类似地,PSTN290与MSC280形成接口,MSC与BSC275形成接口,并且BSC275相应地控制BS270以将正向链路信号发送到移动终端100。
基于上述移动终端硬件结构以及通信系统,提出本发明的各个实施例。
首先,本发明提出一种内存优化装置400,所述内存优化装置400适用于任一移动终端。
如图3所示,是本发明所述的内存优化装置400第一实施例的功能模块示意图。在本实施例中,所述内存优化装置400可以被分割成一个或多个模块,所述一个或多个模块被存储于所述存储器20中,并由一个或多个控制器(本实施例中为所述控制器30)所执行,以完成本发明。例如,在图3中,所述内存优化装置400可以被分割成检测模块401、第一判断模块402、获取模块403、比对模块404以及清理模块405。其中本发明所称的模块是指一种能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述内存优化装置400的实现原理。以下将就上述各功能模块401-405的具体功能进行详细描述。
所述检测模块401,用于在系统启动后,检测移动终端后台运行的各应用程序。本实施例中,后台运行的应用程序是指当前用户已经停止访问但是依然占用内存的应用程序,移动终端的系统启动后,可自动检测到后台运行的各应用程序
所述第一判断模块402,用于根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问。具体的,历史统计数据是指在一段时间内对用户使用各应用程序的使用信息进行统计得到的结果,其体现了用户对各个应用程序的使用习惯,其包括各个应用程序的高频使用时间段。如对于应用程序A,用户经常在每天的08:00-10:00访问该应用程序,则判断应用程序A是否即将访问的步骤具体为:判断系统启动的当前时刻与应用程序A的高频使用时间段(08:00-10:00)的差值是否小于预设时间值,本实施例中可以是判断当前时刻距离08:00还有多长时间,若当前时刻与08:00的差值小于预设时间值,则认为应用程序A即将访问,否则认为应用程序A不是即将访问。
所述获取模块403,用于在所述判断模块的判断结果为否时,获取所述应用程序在内存中占用的资源。本实施例中,应用程序后台运行时,其所占用的资源有多种,这些资源都占用一定的内存,各应用程序运行时常用的资源包括MemInfo、App Summary、Objects、SQL以及Asset Allocations这几类。当后台运行的应用程序不是即将访问,即在短期内用户不会访问时,对其占用的部分资源进行释放,此时首先获取所述应用程序在内存中占用的资源。
所述比对模块404,用于将所述应用程序在内存中占用的资源与预设的资源黑白名单进行比对,其中所述资源黑白名单中存储有所述应用程序占用的关键资源和非关键资源。。本实施例中,对每一应用程序,都预先设置有一个资源黑白名单,该资源黑白名单中存储有应用程序占用的关键资源和非关键资源,其中关键资源是指清理后会影响用户体验和感知的资源,而非关键资源是指临时生成、清理后不会影响用户体验和感知的资源,将应用程序在内存中占用的资源与预设的资源黑白名单进行比对,是为了判断当前应用程序占用的资源中,哪些可以被清理,哪些需要保留。
所述清理模块405,用于根据比对结果清理所述应用程序在内存占用的资源中的非关键资源以释放相应的内存。本实施例中,将应用程序所占用资源中的非关键资源进行清理以释放相应的内存,而应用程序所占用资源中的关键资源则不进行清理,通过清理部分不重要的资源(非关键资源),而保留应用程序的重要资源(关键资源),实现了对内存的静默清理,即该内存清理过程用户不会感知到。
通过上述模块401-405,本发明内存优化装置在系统启动后,根据历史统计数据判断后台运行的各应用程序是否即将访问,对于短期内不会访问的应用程序,将其在内存中的非关键资源进行清理以释放相应的内存,由于仅清理了部分不重要的资源,该清理过程用户不会感知到,因此实现了静默清理,且优化了内存,可以有效解决移动终端上打开大量应用程序、访问结束时应用程序仍占用大量内存,导致终端内存不足而出现卡顿、短暂黑屏或闪退的问题。
基于上述第一实施例,提出本发明所述的内存优化装置400的第二实施例。在本实施例中,图4所示,内存优化装置400还包括历史数据统计模块406、数据处理模块407、类型获取模块408、优先级判断模块409、标记模块410、第二判断模块411以及加载模块412。
所述历史数据统计模块406,用于实时扫描并记录移动终端上运行的各应用程序的使用信息以及各应用程序在内存中占用的资源信息。具体的,所述使用信息包括使用频率、使用时长和使用时间段,其中使用频率是指应用程序在当天内的使用总次数,使用时长指该应用程序在当天内的使用总时长,使用时间段是指应用程序在当天内使用的时间段。记录的使用信息如下表所示:
应用程序名称 使用频率 使用时长 使用时间段
同时,扫描各应用程序在内存中占用的资源信息时,资源的类型包括MemInfo、AppSummary、Objects、SQL和Asset Allocations这几种,扫描得到的各所述应用程序在内存中占用的资源信息以预设的HashMap数据结构进行存储。需要说明的是,可以通过android系统特定的指令来扫描各应用程序在内存中占用的资源信息。对于每种资源,其包含的详细信息如下各表所示:
MemInfo信息表
App Summary信息表
Objects信息表
SQL和Asset Allocations信息表
所述数据处理模块407,用于根据所述使用频率和使用时长计算并存储所述应用程序的类型、根据所述应用程序的所有使用时间段确定所述应用程序的高频使用时间段、以及根据各应用程序在内存中占用的资源信息为各所述应用程序生成所述资源黑白名单,其中所述类型包括经常访问和不常访问。
其中,根据使用频率和使用时长计算应用程序的类型时,应用类型按照使用频率和使用时长的不同分为2类:经常使用和不常使用,应用类型用符号TYPE表示,TYPE的取值为2时表示相应的应用程序的类型为经常使用,TYPE的取值为1时表示相应的应用程序的类型为不常使用。本实施例中,根据使用频率和使用时长计算应用程序的类型的计算方法如下表所示:
当然,根据使用频率和使用时长计算应用程序的类型时,其计算方法还可以为其他方法,而不限制于上表所述的方法。其中,上述TYPE值的计算是以一天为单位进行的,其计算结果是应用程序当天的TYPE值,为了更准确的体现应用程序的类型,本发明采用更多的数据来判断应用程序的类型,如本实施例中采用3天的数据作为参考,即当根据上表计算得到应用程序的类型后,继续判断应用程序是否连续三天的TYPE值均为1,若判断结果为是,则将应用程序的TYPE值调整为1,否则应用程序的TYPE值不变;或者判断应用程序是否连续三天的TYPE值均为2,若判断结果为是,则将应用程序的TYPE值调整为2,否则应用程序的TYPE值不变。计算得到应用程序的类型后,将类型这一参数作为应用程序的历史统计数据进行存储。
根据所述应用程序的所有使用时间段确定所述应用程序的高频使用时间段时,可以预先设置一定的规则,如设置一定时间段(如一个星期)内应用程序使用次数最多的使用时间段作为高频使用时间段,当然,还可以通过其他方法来获取高频使用时间段,本发明不再一一举例说明。
根据各应用程序在内存中占用的资源信息为各所述应用程序生成资源黑白名单时,需要对一定时间段(如一周、两周或其他)内采集的各应用程序在内存中占用的资源信息进行分析,即以这些历史数据作为基础来分析,进而确定每个应用程序所占用的关键资源和非关键资源,其中关键资源是指清理后会影响用户体验和感知的资源,而非关键资源是指临时生成、清理后不会影响用户体验和感知的资源,对应用程序生成资源黑白名单后将该资源黑白名单进行存储以供移动终端进行内存优化时调用。
此外,为了提升扫描和检索的效率,在扫描阶段得到的初始信息数据量比较大,移动终端将扫描得到的应用程序在内存占用的资源信息先存储到本地临时的数据结构中,在系统非繁忙状态再将存储到临时数据结构中的应用程序占用的资源信息经过简化处理得到有用信息存储到本地的数据库中。
需要说明的是,历史数据统计模块406和数据处理模块407是为了实现用户行为数据的收集与统计,根据收集、统计的数据来得到各个应用程序的类型、高频使用时间段以及资源黑白名单。其中,确定各个应用程序的类型、高频使用时间段以及资源黑白名单需要大量的数据,因此用户行为数据的收集与统计工作需要一定时间,如统计1周内的数据。当然,各个应用程序的类型、高频使用时间段以及资源黑白名单可能随着用户使用习惯的改变而实时更新。
所述优先级判断模块409,用于获取移动终端上后台运行的各个应用程序的进程等级、ADJ等级以及进程状态等级,并根据所述进程等级、ADJ等级以及进程状态等级判断各所述应用程序的优先级。其中,在执行内存优化时,优先对优先级低的应用程序释放内存,若释放后内存仍不满足条件则继续对优先级高的应用程序释放内存,直至移动终端的内存满足流畅运行的条件,反之若对优先级低的应用程序释放内存后,移动终端的内存满足流畅运行的条件则不继续对优先级高的应用程序释放内存。具体的,android系统中,应用程序所对应的进程等级分为以下几类:
序号 进程等级
01 前台进程(Foreground process)
02 可见进程(Visible process)
03 服务进程(Service process)
04 后台进程(Background process)
05 空进程(Empty process)
应用程序所对应的进程的ADJ等级分为如下几类:
应用程序所对应的进程的进程状态(process-state)等级分为如下几类:
移动终端运行时,可以通过android系统特定的指令来获取上述进程等级、ADJ等级以及进程状态等级,且移动终端内存储有进程等级、ADJ等级以及进程状态等级与应用程序优先级的映射关系,通过获取这些等级参数可以判断应用程序的优先级,进而确定优先对哪些应用程序释放内存。
所述类型获取模块408,用于按照优先级由低至高的顺序,依次获取所述应用程序的类型。
本实施例中,所述第一判断模块402具体用于:对于类型为不常访问的应用程序,判断系统启动的当前时刻与各所述应用程序的高频使用时间段的差值是否小于预设时间值,若判断结果为是,则判定所述应用程序即将访问,否则所述应用程序不是即将访问,即短期内不会访问,调用获取模块403。需要说明的是,当对类型为不常访问的应用程序执行内存释放的操作后,若移动终端的内存仍不满足预设条件(移动终端顺畅运行时的内存剩余空间),则继续对类型为经常访问的应用程序执行内存释放的操作。请参考图7至图10,图7为某一时刻移动终端上后台运行的应用程序列表,可以看出,图7所示时刻移动终端后台运行的应用程序包括n个,且应用程序1的类型为经常访问,所占用的内存空间为5%,应用程序2的类型为经常访问,所占用的内存空间为7%,应用程序3的类型为不常访问,所占用的内存空间为4%........应用程序n的类型为不常访问,所占用的内存空间为6%。图8为图7所示移动终端的内存分配示意图,图8中圆形区域表示移动终端的整个内存空间,添加阴影的部分表示已被占用的内存空间,空白部分表示剩余内存空间。图9为对图7和图8所示实施例的移动终端进行内存优化后移动终端上各应用程序对内存的分配列表,图10为对图7和图8所示实施例的移动终端进行内存优化后移动终端的内存分配示意图,需要说明的是,本实施例中仅对不常访问的应用程序进行了部分资源(非关键资源)的清理,而对经常访问的应用程序未进行资源清理,从图9可以看出,进行资源清理后,应用程序3所占用的内存空间为2%,应用程序n所占用的内存空间为1%。此外,本实施例中,移动终端扫描内存获取应用程序在内存中占用的资源时,按照如下的目录依次扫描:
变量 所对应目录
mAppDataDir /data/data
mAppLib32InstallDir /data/app-lib
mAsecInternalPath /data/app-asec
mUserAppDataDir /data/user
mAppInstallDir /data/app
mDrmAppPrivateInstallDir /data/app-private
即,移动终端优先扫描上述表格中的目录下的内容,其中上述表格是对移动终端中资源分布情况的历史数据进行分析后得到的。
所述标记模块410,用于对释放内存的所述应用程序进行标记。
所述第二判断模块411,用于根据标记后的所述应用程序的历史统计数据实时检测并判断所述应用程序是否即将访问。
所述加载模块412,用于在所述第二判断模块411的判断结果为是时,根据所述应用程序的资源黑白名单加载所述应用程序占用的非关键资源。对于后台运行的应用程序,若短期内不会访问则清理所述应用程序在内存占用的非关键资源以释放相应的内存,而当应用程序即将访问时,则加载应用程序占用的非关键资源,使得当用户点击启动该应用程序时,应用程序可以立即进入运行状态,从而可以保证系统的内存始终保持在最优的资源分配运行状态,达到对内存的优化。
通过上述模块401至412,本发明所提出的内存优化装置首先统计一段时间内的各应用程序的使用信息以及在内存中占用的资源信息,并根据统计数据确定应用程序的类型、高频使用时间段以及资源黑白名单,之后开启内存优化时,根据各个应用程序的进程等级、ADJ等级以及进程状态等级判断各应用程序的优先级,并按照优先级由低至高的顺序,依次对应用程序进行内存清理,且根据应用程序的类型优先对不常访问的应用程序进行内存清理,此外对应用程序进行内存释放之后,标记相应的应用程序并在应用程序即将访问时,加载应用程序占用的非关键资源,使得当用户点击启动该应用程序时,应用程序可以立即进入运行状态,从而可以保证系统的内存始终保持在最优的资源分配运行状态,达到对内存的优化。
进一步地,本发明提出一种内存优化方法,该方法应用于任一移动终端。如图5所示,是本发明所述的内存优化方法第一实施例的实施流程图。在本实施例中,根据不同的需求,图5所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。
步骤S501,系统启动后,检测移动终端后台运行的各应用程序。本实施例中,后台运行的应用程序是指当前用户已经停止访问但是依然占用内存的应用程序,移动终端的系统启动后,可自动检测到后台运行的各应用程序。
步骤S502,根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问,若判断结果为否,则执行步骤S503,反之在判断完所有应用程序后结束进程。
具体的,历史统计数据是指在一段时间内对用户使用各应用程序的使用信息进行统计得到的结果,其体现了用户对各个应用程序的使用习惯,其包括各个应用程序的高频使用时间段。如对于应用程序A,用户经常在每天的08:00-10:00访问该应用程序,则判断应用程序A是否即将访问的步骤具体为:判断系统启动的当前时刻与应用程序A的高频使用时间段(08:00-10:00)的差值是否小于预设时间值,本实施例中可以是判断当前时刻距离08:00还有多长时间,若当前时刻与08:00的差值小于预设时间值,则认为应用程序A即将访问,否则认为应用程序A不是即将访问。
步骤S503,获取所述应用程序在内存中占用的资源。本实施例中,应用程序后台运行时,其所占用的资源有多种,这些资源都占用一定的内存,各应用程序运行时常用的资源包括MemInfo、App Summary、Objects、SQL以及Asset Allocations这几类。当后台运行的应用程序不是即将访问,即在短期内用户不会访问时,对其占用的部分资源进行释放,此时首先获取所述应用程序在内存中占用的资源。
步骤S504,将所述应用程序在内存中占用的资源与预设的资源黑白名单进行比对,其中所述资源黑白名单中存储有所述应用程序占用的关键资源和非关键资源。本实施例中,对每一应用程序,都预先设置有一个资源黑白名单,该资源黑白名单中存储有应用程序占用的关键资源和非关键资源,其中关键资源是指清理后会影响用户体验和感知的资源,而非关键资源是指临时生成、清理后不会影响用户体验和感知的资源,将应用程序在内存中占用的资源与预设的资源黑白名单进行比对,是为了判断当前应用程序占用的资源中,哪些可以被清理,哪些需要保留。
步骤S505,根据比对结果清理所述应用程序在内存占用的资源中的非关键资源以释放相应的内存。本实施例中,将应用程序所占用资源中的非关键资源进行清理以释放相应的内存,而应用程序所占用资源中的关键资源则不进行清理,通过清理部分不重要的资源(非关键资源),而保留应用程序的重要资源(关键资源),实现了对内存的静默清理,即该内存清理过程用户不会感知到。
通过上述步骤S501-S505,本发明内存优化方法在系统启动后,根据历史统计数据判断后台运行的各应用程序是否即将访问,对于短期内不会访问的应用程序,将其在内存中的非关键资源进行清理以释放相应的内存,由于仅清理了部分不重要的资源,该清理过程用户不会感知到,因此实现了静默清理,且优化了内存,可以有效解决移动终端上打开大量应用程序、访问结束时应用程序仍占用大量内存,导致终端内存不足而出现卡顿、短暂黑屏或闪退的问题。
基于上述第一实施例,提出本发明所述的内存优化方法的第二实施例。
如图6所示,是本发明所述的内存优化方法第二实施例的实施流程图。在本实施例中,根据不同的需求,图6所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。
步骤S601,实时扫描并记录移动终端上运行的各应用程序的使用信息、以及各应用程序在内存中占用的资源信息。
具体的,所述使用信息包括使用频率、使用时长和使用时间段,其中使用频率是指应用程序在当天内的使用总次数,使用时长指该应用程序在当天内的使用总时长,使用时间段是指应用程序在当天内使用的时间段。记录的使用信息如下表所示:
应用程序名称 使用频率 使用时长 使用时间段
同时,扫描各应用程序在内存中占用的资源信息时,资源的类型包括MemInfo、AppSummary、Objects、SQL和Asset Allocations这几种,扫描得到的各所述应用程序在内存中占用的资源信息以预设的HashMap数据结构进行存储。需要说明的是,可以通过android系统特定的指令来扫描各应用程序在内存中占用的资源信息。对于每种资源,其包含的详细信息如下各表所示:
MemInfo信息表
App Summary信息表
Objects信息表
SQL和Asset Allocations信息表
步骤S602,根据所述使用频率和使用时长计算并存储所述应用程序的类型、根据所述应用程序的所有使用时间段确定所述应用程序的高频使用时间段、根据各应用程序在内存中占用的资源信息为各所述应用程序生成所述资源黑白名单。
其中,根据使用频率和使用时长计算应用程序的类型时,应用类型按照使用频率和使用时长的不同分为2类:经常使用和不常使用,应用类型用符号TYPE表示,TYPE的取值为2时表示相应的应用程序的类型为经常使用,TYPE的取值为1时表示相应的应用程序的类型为不常使用。本实施例中,根据使用频率和使用时长计算应用程序的类型的计算方法如下表所示:
当然,根据使用频率和使用时长计算应用程序的类型时,其计算方法还可以为其他方法,而不限制于上表所述的方法。其中,上述TYPE值的计算是以一天为单位进行的,其计算结果是应用程序当天的TYPE值,为了更准确的体现应用程序的类型,本发明采用更多的数据来判断应用程序的类型,如本实施例中采用3天的数据作为参考,即当根据上表计算得到应用程序的类型后,继续判断应用程序是否连续三天的TYPE值均为1,若判断结果为是,则将应用程序的TYPE值调整为1,否则应用程序的TYPE值不变;或者判断应用程序是否连续三天的TYPE值均为2,若判断结果为是,则将应用程序的TYPE值调整为2,否则应用程序的TYPE值不变。计算得到应用程序的类型后,将类型这一参数作为应用程序的历史统计数据进行存储。
根据所述应用程序的所有使用时间段确定所述应用程序的高频使用时间段时,可以预先设置一定的规则,如设置一定时间段(如一个星期)内应用程序使用次数最多的使用时间段作为高频使用时间段,当然,还可以通过其他方法来获取高频使用时间段,本发明不再一一举例说明。
根据各应用程序在内存中占用的资源信息为各所述应用程序生成资源黑白名单时,需要对一定时间段(如一周、两周或其他)内采集的各应用程序在内存中占用的资源信息进行分析,即以这些历史数据作为基础来分析,进而确定每个应用程序所占用的关键资源和非关键资源,其中关键资源是指清理后会影响用户体验和感知的资源,而非关键资源是指临时生成、清理后不会影响用户体验和感知的资源,对应用程序生成资源黑白名单后将该资源黑白名单进行存储以供移动终端进行内存优化时调用。
此外,为了提升扫描和检索的效率,在扫描阶段得到的初始信息数据量比较大,移动终端将扫描得到的应用程序在内存占用的资源信息先存储到本地临时的数据结构中,在系统非繁忙状态再将存储到临时数据结构中的应用程序占用的资源信息经过简化处理得到有用信息存储到本地的数据库中。
需要说明的是,步骤S601至步骤S602是为了实现用户行为数据的收集与统计,根据收集、统计的数据来得到各个应用程序的类型、高频使用时间段以及资源黑白名单。其中,确定各个应用程序的类型、高频使用时间段以及资源黑白名单需要大量的数据,因此用户行为数据的收集与统计工作需要一定时间,如统计1周内的数据。当然,各个应用程序的类型、高频使用时间段以及资源黑白名单可能随着用户使用习惯的改变而实时更新。
步骤S603,系统启动时,获取移动终端上后台运行的各个应用程序的进程等级、ADJ等级以及进程状态等级,并根据所述进程等级、ADJ等级以及进程状态等级判断各所述应用程序的优先级。其中,在执行内存优化时,优先对优先级低的应用程序释放内存,若释放后内存仍不满足条件则继续对优先级高的应用程序释放内存,直至移动终端的内存满足流畅运行的条件,反之若对优先级低的应用程序释放内存后,移动终端的内存满足流畅运行的条件则不继续对优先级高的应用程序释放内存。具体的,android系统中,应用程序所对应的进程等级分为以下几类:
应用程序所对应的进程的ADJ等级分为如下几类:
应用程序所对应的进程的进程状态(process-state)等级分为如下几类:
移动终端运行时,可以通过android系统特定的指令来获取上述进程等级、ADJ等级以及进程状态等级,且移动终端内存储有进程等级、ADJ等级以及进程状态等级与应用程序优先级的映射关系,通过获取这些等级参数可以判断应用程序的优先级,进而确定优先对哪些应用程序释放内存。
步骤S604,按照优先级由低至高的顺序,依次获取所述应用程序的类型。
步骤S605,对于类型为不常访问的应用程序,判断系统启动的当前时刻与各所述应用程序的高频使用时间段的差值是否小于预设时间值,若判断结果为是,则判定所述应用程序即将访问,否则所述应用程序不是即将访问,即短期内不会访问,执行步骤S606。需要说明的是,当对类型为不常访问的应用程序执行内存释放的操作后,若移动终端的内存仍不满足预设条件(移动终端顺畅运行时的内存剩余空间),则继续对类型为经常访问的应用程序执行内存释放的操作。请参考图7至图8,图7为某一时刻移动终端上后台运行的应用程序列表,可以看出,图7所示时刻移动终端后台运行的应用程序包括n个,且应用程序1的类型为经常访问,所占用的内存空间为5%,应用程序2的类型为经常访问,所占用的内存空间为7%,应用程序3的类型为不常访问,所占用的内存空间为4%........应用程序n的类型为不常访问,所占用的内存空间为6%。图8为图7所示移动终端的内存分配示意图,图8中圆形区域表示移动终端的整个内存空间,添加阴影的部分表示已被占用的内存空间,空白部分表示剩余内存空间。
步骤S606,获取所述应用程序在内存中占用的资源并与预设的资源黑白名单进行比对,根据比对结果清理所述应用程序在内存占用的资源中的非关键资源以释放相应的内存。请参考图9至图10,图9为对图7和图8所示实施例的移动终端进行内存优化后移动终端上各应用程序对内存的分配列表,图10为对图7和图8所示实施例的移动终端进行内存优化后移动终端的内存分配示意图,需要说明的是,本实施例中仅对不常访问的应用程序进行了部分资源(非关键资源)的清理,而对经常访问的应用程序未进行资源清理,从图9可以看出,进行资源清理后,应用程序3所占用的内存空间为2%,应用程序n所占用的内存空间为1%。其中,移动终端扫描内存获取应用程序在内存中占用的资源时,按照如下的目录依次扫描:
变量 所对应目录
mAppDataDir /data/data
mAppLib32InstallDir /data/app-lib
mAsecInternalPath /data/app-asec
mUserAppDataDir /data/user
mAppInstallDir /data/app
mDrmAppPrivateInstallDir /data/app-private
即,移动终端优先扫描上述表格中的目录下的内容,其中上述表格是对移动终端中资源分布情况的历史数据进行分析后得到的。
步骤S607,对释放内存的所述应用程序进行标记。
步骤S608,根据标记后的所述应用程序的历史统计数据实时检测并判断所述应用程序是否即将访问,若判断结果为是,则执行步骤S609,反之重复执行步骤S608。
步骤S609,根据所述应用程序的资源黑白名单加载所述应用程序占用的非关键资源。对于后台运行的应用程序,若短期内不会访问则清理所述应用程序在内存占用的非关键资源以释放相应的内存,而当应用程序即将访问时,则加载应用程序占用的非关键资源,使得当用户点击启动该应用程序时,应用程序可以立即进入运行状态,从而可以保证系统的内存始终保持在最优的资源分配运行状态,达到对内存的优化。
通过上述步骤S601至S609,本发明所提出的内存优化方法首先统计一段时间内的各应用程序的使用信息以及在内存中占用的资源信息,并根据统计数据确定应用程序的类型、高频使用时间段以及资源黑白名单,之后开启内存优化时,根据各个应用程序的进程等级、ADJ等级以及进程状态等级判断各应用程序的优先级,并按照优先级由低至高的顺序,依次对应用程序进行内存清理,且根据应用程序的类型优先对不常访问的应用程序进行内存清理,此外对应用程序进行内存释放之后,标记相应的应用程序并在应用程序即将访问时,加载应用程序占用的非关键资源,使得当用户点击启动该应用程序时,应用程序可以立即进入运行状态,从而可以保证系统的内存始终保持在最优的资源分配运行状态,达到对内存的优化。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种内存优化装置,应用于移动终端,其特征在于,所述内存优化装置包括:
检测模块,用于在系统启动后,检测移动终端后台运行的各应用程序;
第一判断模块,用于根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问;
获取模块,用于在所述判断模块的判断结果为否时,获取所述应用程序在内存中占用的资源;
比对模块,用于将所述应用程序在内存中占用的资源与预设的资源黑白名单进行比对,其中所述资源黑白名单中存储有所述应用程序占用的关键资源和非关键资源;
清理模块,用于根据比对结果清理所述应用程序在内存占用的资源中的非关键资源以释放相应的内存。
2.如权利要求1所述的内存优化装置,其特征在于,所述内存优化装置还包括:
标记模块,用于对释放内存的所述应用程序进行标记;
第二判断模块,用于根据标记后的所述应用程序的历史统计数据实时检测并判断所述应用程序是否即将访问;
加载模块,用于在所述第二判断模块的判断结果为是时,根据所述应用程序的资源黑白名单加载所述应用程序占用的非关键资源。
3.如权利要求1所述的内存优化装置,其特征在于,所述内存优化装置还包括:
历史数据统计模块,用于实时扫描并记录移动终端上运行的各应用程序的使用信息,所述使用信息包括使用频率、使用时长和使用时间段;以及
数据处理模块,用于根据所述使用频率和使用时长计算并存储所述应用程序的类型,并根据所述应用程序的所有使用时间段确定所述应用程序的高频使用时间段,其中所述类型包括经常访问和不常访问;
所述第一判断模块具体用于:
依次判断系统启动的当前时刻与各所述应用程序的高频使用时间段的差值是否小于预设时间值,若判断结果为是,则判定所述应用程序即将访问;
所述内存优化装置还包括:
类型获取模块,用于获取各所述应用程序的类型,并依次对类型为不常访问、经常访问的应用程序调用所述第一判断模块直至所述移动终端的内存满足预设条件。
4.如权利要求1所述的内存优化装置,其特征在于,所述历史数据统计模块还用于:
实时扫描并记录移动终端上运行的各应用程序在内存中占用的资源信息;
所述数据处理模块还用于:
根据各应用程序在内存中占用的资源信息为各所述应用程序生成所述资源黑白名单。
5.如权利要求1所述的内存优化装置,其特征在于,所述内存优化装置还包括:
优先级判断模块,用于获取各所述应用程序的进程等级、ADJ等级以及进程状态等级,并根据所述进程等级、ADJ等级以及进程状态等级确定所述应用程序的优先级;
所述第一判断模块具体用于:
按照所述应用程序的优先级由低至高的顺序,依次根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问。
6.一种内存优化方法,应用于移动终端,其特征在于,所述方法包括:
系统启动后,检测移动终端后台运行的各应用程序;
根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问;
若判断结果为否,则获取所述应用程序在内存中占用的资源;
将所述应用程序在内存中占用的资源与预设的资源黑白名单进行比对,其中所述资源黑白名单中存储有所述应用程序占用的关键资源和非关键资源;
根据比对结果清理所述应用程序在内存占用的资源中的非关键资源以释放相应的内存。
7.如权利要求6所述的内存优化方法,其特征在于,所述根据比对结果清理所述应用程序在内存占用的资源中的非关键资源以释放相应的内存的步骤之后还包括:
对释放内存的所述应用程序进行标记;
根据标记后的所述应用程序的历史统计数据实时检测并判断所述应用程序是否即将访问;
若判断结果为是,则根据所述应用程序的资源黑白名单加载所述应用程序占用的非关键资源。
8.如权利要求6所述的内存优化方法,其特征在于,所述检测移动终端后台运行的各应用程序的步骤之前还包括:
实时扫描并记录移动终端上运行的各应用程序的使用信息,所述使用信息包括使用频率、使用时长和使用时间段;以及
根据所述使用频率和使用时长计算并存储所述应用程序的类型,并根据所述应用程序的所有使用时间段确定所述应用程序的高频使用时间段,其中所述类型包括经常访问和不常访问;
所述根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问的步骤具体为:
依次判断系统启动的当前时刻与各所述应用程序的高频使用时间段的差值是否小于预设时间值,若判断结果为是,则判定所述应用程序即将访问;
所述根据各所述应用程序的历史统计数据判断各所述应用程序是否即将访问的步骤之前还包括:
获取各所述应用程序的类型;
依次对类型为不常访问、经常访问的应用程序执行所述根据各所述应用程序的历史统计数据判断各所述应用程序是否即将访问的步骤,直至所述移动终端的内存满足预设条件。
9.如权利要求6所述的内存优化方法,其特征在于,所述检测移动终端后台运行的各应用程序的步骤之前还包括:
实时扫描并记录移动终端上运行的各应用程序在内存中占用的资源信息;
根据各应用程序在内存中占用的资源信息为各所述应用程序生成所述资源黑白名单。
10.如权利要求6所述的内存优化方法,其特征在于,所述检测移动终端后台运行的各应用程序的步骤之前还包括:
获取各所述应用程序的进程等级、ADJ等级以及进程状态等级;
根据所述进程等级、ADJ等级以及进程状态等级确定所述应用程序的优先级;
所述根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问具体为:
按照所述应用程序的优先级由低至高的顺序,依次根据各所述应用程序的历史统计数据依次判断各所述应用程序是否即将访问。
CN201710246754.9A 2017-04-16 2017-04-16 内存优化方法及装置 Active CN107133097B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710246754.9A CN107133097B (zh) 2017-04-16 2017-04-16 内存优化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710246754.9A CN107133097B (zh) 2017-04-16 2017-04-16 内存优化方法及装置

Publications (2)

Publication Number Publication Date
CN107133097A true CN107133097A (zh) 2017-09-05
CN107133097B CN107133097B (zh) 2020-06-16

Family

ID=59715982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710246754.9A Active CN107133097B (zh) 2017-04-16 2017-04-16 内存优化方法及装置

Country Status (1)

Country Link
CN (1) CN107133097B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108196913A (zh) * 2018-01-05 2018-06-22 青岛海信移动通信技术股份有限公司 一种应用程序的进程清理方法及装置
CN108563506A (zh) * 2018-04-11 2018-09-21 青岛海信移动通信技术股份有限公司 移动终端的内存回收方法及装置
CN109656722A (zh) * 2019-01-04 2019-04-19 Oppo广东移动通信有限公司 内存优化方法、装置、移动终端及存储介质
CN109947571A (zh) * 2019-03-22 2019-06-28 北京奇艺世纪科技有限公司 一种内存释放方法及系统
CN110018899A (zh) * 2018-01-10 2019-07-16 华为技术有限公司 回收内存的方法及装置
CN110119346A (zh) * 2019-04-30 2019-08-13 维沃移动通信有限公司 终端运行状态的判断方法及终端
CN110543431A (zh) * 2019-08-27 2019-12-06 Oppo(重庆)智能科技有限公司 内存优化方法及装置、电子设备、存储介质
CN110572518A (zh) * 2019-09-18 2019-12-13 努比亚技术有限公司 息屏管控方法、移动终端及计算机可读存储介质
CN111124632A (zh) * 2019-12-06 2020-05-08 西安易朴通讯技术有限公司 移动终端的优化方法、装置、终端设备及存储介质
CN111352732A (zh) * 2020-02-24 2020-06-30 湖南快乐阳光互动娱乐传媒有限公司 语音识别进程控制方法及装置
CN111966642A (zh) * 2020-08-28 2020-11-20 维沃移动通信有限公司 图片管理方法、装置及电子设备
CN112527407A (zh) * 2020-12-07 2021-03-19 深圳创维-Rgb电子有限公司 一种应用启动方法、终端及计算机可读存储介质
CN112637002A (zh) * 2020-12-04 2021-04-09 北京金山云网络技术有限公司 测试资源的删除方法及装置、存储介质、电子设备
CN112667408A (zh) * 2021-01-19 2021-04-16 北京字节跳动网络技术有限公司 一种内存分配方法及终端设备
CN113032016A (zh) * 2019-12-25 2021-06-25 Oppo广东移动通信有限公司 名单管控方法、装置、移动终端以及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142828A (zh) * 2014-07-30 2014-11-12 北京奇虎科技有限公司 应用加速方法及装置
CN104536907A (zh) * 2015-01-26 2015-04-22 联想(北京)有限公司 一种内存清理方法及电子设备
CN106528236A (zh) * 2016-11-11 2017-03-22 努比亚技术有限公司 内存加速白名单的配置方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142828A (zh) * 2014-07-30 2014-11-12 北京奇虎科技有限公司 应用加速方法及装置
CN104536907A (zh) * 2015-01-26 2015-04-22 联想(北京)有限公司 一种内存清理方法及电子设备
CN106528236A (zh) * 2016-11-11 2017-03-22 努比亚技术有限公司 内存加速白名单的配置方法及装置

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108196913A (zh) * 2018-01-05 2018-06-22 青岛海信移动通信技术股份有限公司 一种应用程序的进程清理方法及装置
CN110018899B (zh) * 2018-01-10 2021-09-07 华为技术有限公司 回收内存的方法及装置
CN110018899A (zh) * 2018-01-10 2019-07-16 华为技术有限公司 回收内存的方法及装置
CN108563506A (zh) * 2018-04-11 2018-09-21 青岛海信移动通信技术股份有限公司 移动终端的内存回收方法及装置
CN109656722A (zh) * 2019-01-04 2019-04-19 Oppo广东移动通信有限公司 内存优化方法、装置、移动终端及存储介质
CN109947571A (zh) * 2019-03-22 2019-06-28 北京奇艺世纪科技有限公司 一种内存释放方法及系统
CN110119346A (zh) * 2019-04-30 2019-08-13 维沃移动通信有限公司 终端运行状态的判断方法及终端
CN110119346B (zh) * 2019-04-30 2023-02-24 维沃移动通信有限公司 终端运行状态的判断方法及终端
CN110543431A (zh) * 2019-08-27 2019-12-06 Oppo(重庆)智能科技有限公司 内存优化方法及装置、电子设备、存储介质
CN110572518A (zh) * 2019-09-18 2019-12-13 努比亚技术有限公司 息屏管控方法、移动终端及计算机可读存储介质
CN110572518B (zh) * 2019-09-18 2024-03-22 努比亚技术有限公司 息屏管控方法、移动终端及计算机可读存储介质
CN111124632A (zh) * 2019-12-06 2020-05-08 西安易朴通讯技术有限公司 移动终端的优化方法、装置、终端设备及存储介质
CN111124632B (zh) * 2019-12-06 2024-02-13 西安易朴通讯技术有限公司 移动终端的优化方法、装置、终端设备及存储介质
CN113032016A (zh) * 2019-12-25 2021-06-25 Oppo广东移动通信有限公司 名单管控方法、装置、移动终端以及存储介质
CN111352732A (zh) * 2020-02-24 2020-06-30 湖南快乐阳光互动娱乐传媒有限公司 语音识别进程控制方法及装置
CN111352732B (zh) * 2020-02-24 2023-04-11 湖南快乐阳光互动娱乐传媒有限公司 语音识别进程控制方法及装置
CN111966642B (zh) * 2020-08-28 2022-09-30 维沃移动通信有限公司 图片管理方法、装置及电子设备
CN111966642A (zh) * 2020-08-28 2020-11-20 维沃移动通信有限公司 图片管理方法、装置及电子设备
CN112637002A (zh) * 2020-12-04 2021-04-09 北京金山云网络技术有限公司 测试资源的删除方法及装置、存储介质、电子设备
CN112527407B (zh) * 2020-12-07 2023-09-22 深圳创维-Rgb电子有限公司 一种应用启动方法、终端及计算机可读存储介质
CN112527407A (zh) * 2020-12-07 2021-03-19 深圳创维-Rgb电子有限公司 一种应用启动方法、终端及计算机可读存储介质
CN112667408A (zh) * 2021-01-19 2021-04-16 北京字节跳动网络技术有限公司 一种内存分配方法及终端设备

Also Published As

Publication number Publication date
CN107133097B (zh) 2020-06-16

Similar Documents

Publication Publication Date Title
CN107133097A (zh) 内存优化方法及装置
CN106055246B (zh) 一种移动终端及其操作方法
CN104808944B (zh) 触摸操作感应方法及装置
CN105979095B (zh) 移动终端及应用功耗控制方法
CN106844032A (zh) 一种终端应用的存储处理方法和装置
CN106951291A (zh) 应用程序加速启动方法及装置
CN105159533A (zh) 一种移动终端及其验证码自动输入方法
CN104714895A (zh) 一种移动终端及其提高运行速度的方法和装置
CN104796552A (zh) 一种快速调节屏幕亮度的方法和装置
CN104679890B (zh) 图片推送方法及装置
CN104731712A (zh) 自动清理缓存数据的方法和移动终端
CN106909900A (zh) 指纹识别方法及装置
CN107066290A (zh) 一种根据关联策略启动应用的方法和装置
CN106803860A (zh) 一种终端应用的存储处理方法和装置
CN106990889A (zh) 一种快捷操作实现方法及装置
CN106155695A (zh) 后台应用程序的清除控制装置及方法
CN106933459A (zh) 多任务管理方法及移动终端
CN106528298A (zh) 一种资源分配方法及装置
CN107135531A (zh) 资源共享方法及装置
CN106528073A (zh) 一种终端及卸载终端应用的方法
CN106528236A (zh) 内存加速白名单的配置方法及装置
CN107066604A (zh) 一种垃圾文件清理方法和终端
CN106993084A (zh) 一种控制信息显示的方法、装置及移动终端
CN106598538A (zh) 指令集合更新方法及系统
CN106686687A (zh) 一种接入控制方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200515

Address after: 518000 Guangdong city of Shenzhen province Qianhai Shenzhen Hong Kong cooperation zone before Bay Road No. 1 building 201 room A (located in Shenzhen Qianhai business secretary Co. Ltd.)

Applicant after: Shenzhen Qianhai caixinyun Technology Co., Ltd.

Address before: 518057 Guangdong Province, Shenzhen high tech Zone of Nanshan District City, No. 9018 North Central Avenue's innovation building A, 6-8 layer, 10-11 layer, B layer, C District 6-10 District 6 floor

Applicant before: NUBIA TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant