一种内存回收方法及装置的制造方法_5

文档序号:9921966阅读:来源:国知局
应用在后台停留的时间长度超过设定时长,则确定当前满足内存 回收条件,通过调用内核态提供的内存回收接口对在后台停留的时间长度超过设定时长的 应用的内存进行回收。
[0190] 实施例六
[0191] 图7描述了本申请提供的一种终端设备700的结构,包括:至少一个处理器701、至 少一个网络接口 704或者其它用户接口 703、存储器705、至少一个通信总线702,通信总线 702用于实现这些组件之间的连接通信。这里,存储器705包括内存和外部存储器,这里的内 存也称内存储器,用于暂时存放处理器701中的运算数据,以及与硬盘等外部存储器交换的 数据,处理器701通过内存与外部存储器进行数据交换。
[0192] 存储器705中存储了如下的元素,可执行模块或者数据结果,或者他们的子集,或 者他们的扩展集:
[0193] 操作系统7051,包含各种系统程序,可以具有内核态7051a和用户态7051b两种运 行级别。当一个进程执行系统调用而陷入内核代码中执行时,称其处于内核运行态,简称内 核态。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈,每个进程都有自己 的内核栈。当进程在执行用户自己的代码时,称其处于用户运行态,简称用户态,此时处理 器701在特权级最低的用户代码中运行。
[0194] 应用程序模块7052,包含各种应用程序(简称应用)。
[0195] 在本申请实施例中,通过调用存储器705存储的程序或指令,处理器701用于在用 户态执行:
[0196] 监控终端内安装的应用被用户操作使用的信息及内存占用信息;在根据终端内安 装的应用被用户操作使用的信息及内存占用信息中的至少一种,确定当前满足内存回收条 件时,根据终端内当前正在运行的应用被用户操作使用的信息及内存占用信息,从终端当 前正在运行的应用中确定将被回收内存的应用,并通过调用内核态提供的内存回收接口执 行内存回收。
[0197] 可选地,作为一个实施例,处理器701还用于:根据终端内安装的应用被用户操作 使用的信息及内存占用信息,确定内存回收时间间隔;在当前时间到达内存回收时间间隔 所指示的内存回收时间时,确定当前满足内存回收条件。
[0198] 进一步地,处理器701还用于:分别确定在预设的至少一个时间段中的每个时间段 内所述终端内安装的应用被用户操作使用的信息及内存占用信息;针对所述至少一个时间 段中的每个时间段,分别根据在该时间段内所述终端内安装的应用被用户操作使用的信息 及内存占用信息,确定在该时间段内的内存回收时间间隔。
[0199] 可选地,作为另一个实施例,处理器701还用于:若确定系统内空闲内存小于第一 设定阈值,则确定当前满足内存回收条件。
[0200] 可选地,作为又一个实施例,处理器701还用于:若监测到有应用被启动或切换到 前台界面,则根据该应用的内存占用信息,以及系统内空闲内存大小,判断是否需要进行内 存回收;若需要进行内存回收,则确定当前满足内存回收条件。
[0201] 可选地,作为再一个实施例,处理器701还用于:若当前在后台运行的应用的个数 大于设置的允许后台运行应用的个数,则确定当前满足内存回收条件。
[0202] 进一步地,这里可以每隔一段时间根据当前空闲内存大小来设置允许后台运行应 用的个数。由于后台运行的应用通常不是用户正在操作使用的应用,限制这部分应用的个 数,可以避免对内存的过多无效占用。
[0203]进一步地,处理器701还用于:确定将被回收内存的应用,并通过调用内核态提供 的内存回收接口进行内存回收,包括:根据预先保存的被回收内存的应用的优先级顺序,选 择终端内当前正在运行的、用户没有在操作使用的应用,确定当前时间是否位于选择的应 用的高概率使用时间段,该应用的高概率使用时间段为基于该应用被用户操作使用的信息 确定的;若不是,则确定选择的所述应用为被回收内存的应用,并通过调用内核态提供的内 存回收接口进行内存回收;重复上述步骤,直到满足内存回收的终止条件。
[0204] 所述内存回收的终止条件包括以下条件中的一种或多种:
[0205] 系统内空闲内存大小大于第二设定阈值;
[0206] 当前启动的应用所需的内存小于系统空闲内存;
[0207] 切换到前台界面的应用所需的内存小于系统空闲内存;
[0208] 后台运行应用的个数小于或等于设置的允许后台运行应用的个数。
[0209] 进一步地,处理器701还用于:按照终端内安装各个应用的使用频率,对各个应用 进行分组,其中,同组内的应用具有相同的使用频率范围;根据每个分组对应的使用频率范 围,确定各个分组内的应用被回收内存的优先级顺序;其中,同组内的应用具有相同的优先 级顺序。
[0210] 可选地,作为再一个实施例,处理器701还用于:若监测到终端内存在应用在后台 停留的时间长度超过设定时长,则对在后台停留的时间长度超过设定时长的应用的内存进 行回收。
[0211] 另外,终端设备700还可执行图2~4的方法及实施例,本申请实施例在此不再赘 述。
[0212] 可见,采用上述方案后,可以在应用被用户操作使用频繁、内存占用量较大的时 候,加快内存回收频率,保证内存的正常使用。
[0213]实施例七
[0214] 本申请实施例涉及一种终端800及内存回收方法,该终端800可以为手机、平板电 脑、个人数字助理(Personal Digital Assistant,PDA)、销售终端(Point of Sales,P0S)、 或车载电脑等。
[0215] 图8示出的是本申请实施例终端800的结构示意图。
[0216] 参考图8,本申请实施例的一种终端800,包括:处理器810、存储器820、输入单元 830、电源850、射频(Radio Frequency,RF)电路860、音频电路870、无线保真(WiFi)模块 880 〇
[0217] 其中,存储器820包括内存821和外部存储器822,内存821用于暂时存放处理器810 中的运算数据,以及与硬盘等外部存储器822交换的数据,处理器810通过内存821与外部存 储器822进行数据交换。内存821可以为非易失存储器(Non-Volatile Random Access Memory,NVRAM)、动态随机存储器(Dynamic Random Access Memory,DRAM)、静态随机存储 器(Static RAM,SRAM)、Flash闪存等其中之一;外部存储器822可以为硬盘、光盘、USB盘、软 盘或磁带机等。
[0218]处理器810在用户态执行存储器820中的指令:监控终端内安装的应用被用户操作 使用的信息及内存占用信息;在根据终端内安装的应用被用户操作使用的信息及内存占用 信息中的至少一种,确定当前满足内存回收条件时,根据终端内当前正在运行的应用被用 户操作使用的信息及内存占用信息,从终端当前正在运行的应用中确定将被回收内存的应 用,并通过调用内核态提供的内存回收接口执行内存回收。内存回收可以是由设置的内存 回收时间间隔所触发的,具体地,处理器810可以分别确定在预设的至少一个时间段中的每 个时间段内所述终端内安装的应用被用户操作使用的信息及内存占用信息;针对所述至少 一个时间段中的每个时间段,分别根据在该时间段内所述终端内安装的应用被用户操作使 用的信息及内存占用信息,确定在该时间段内的内存回收时间间隔。可选地,还可以在确定 系统内空闲内存小于第一设定阈值时,触发内存回收。还可以在监测到有应用被启动或切 换到前台界面时,根据该应用的内存占用信息,以及系统内空闲内存大小,判断是否需要进 行内存回收;若需要进行内存回收,则触发内存回收。还可以在当前在后台运行的应用的个 数大于设置的允许后台运行应用的个数时,触发内存回收条件。进一步地,这里可以每隔一 段时间根据当前空闲内存大小来设置允许后台运行应用的个数。由于后台运行的应用通常 不是用户正在操作使用的应用,限制这部分应用的个数,可以避免对内存的过多无效占用。 [0219]可选地,基于上述触发条件,处理器810执行内存回收的过程可以为:根据预先保 存的被回收内存的应用的优先级顺序,选择终端内当前正在运行的、用户没有在操作使用 的应用,确定当前时间是否位于选择的应用的高概率使用时间段,该应用的高概率使用时 间段为基于该应用被用户操作使用的信息确定的;若不是,则确定选择的所述应用为被回 收内存的应用,并通过调用内核态提供的内存回收接口进行内存回收;重复上述步骤,直到 满足内存回收的终止条件。进一步地,内存回收的终止条件可以包括如下条件中的一种或 多种:系统内空闲内存大小大于第二设定阈值;当前启动的应用所需的内存小于系统空闲 内存;切换到前台界面的应用所需的内存小于系统空闲内存;后台运行应用的个数小于或 等于设置的允许后台运行应用的个数。进一步地,可以按照终端内安装各个应用的使用频 率,对各个应用进行分组,其中,同组内的应用具有相同的使用频率范围;根据每个分组对 应的使用频率范围,确定各个分组内的应用被回收内存的优先级顺序;其中,同组内的应用 具有相同的优先级顺序。
[0220]除此之外,处理器810还可以在确定当前满足内存回收条件时,通过调用内核态提 供的内存回收接口执行内存回收。
[0221]输入单元830可用于接收输入的数字或字符信息,以及产生与终端800的用户设置 以及功能控制有关的信号输入。具体地,本申请实施例中,输入单元830可以包括触控面板 831。触控面板831,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手 指、触笔等任何适合的物体或附件在触控面板831上或在触控面板831的操作),并根据预先 设定的程式驱动相应的连接装置。可选的,触控面板831可包括触摸检测装置和触摸控制器 两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号 传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标, 再送给该处理器810,并能接收处理器810发来的命令并加以执行。此外,可以采用电阻式、 电容式、红外线以及表面声波等多种类型实现触控面板831。除了触控面板831,输入单元 830还可以包括其他输入设备832,其他输入设备832可以包括但不限于物理键盘、功能键 (比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0222] 该终端800还可以包括显示单元840,该显示单元840可用于显示由用户输入的信 息或提供给用户的信息以及终端800的各种菜单界面。该显示单元840可包括显示面板841, 可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)或0LED(0rganic Light-Emitting Diode , 有机发光二极管) 等形式来配置显示面板 841 。
[0223] 本申请实施例中,触控面板831覆盖显示面板841,形成触摸显示屏,当该触摸显示 屏检测到在其上或附近的触摸操作后,传送给处理器810以确定触摸事件的类型,随后处理 器810根据触摸事件的类型在触摸显示屏上提供相应的视觉输出。
[0224] 本申请实施例中,触摸显示屏包括应用程序界面显示区及常用
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1