内存信息的处理方法、装置、存储介质及终端转让专利

申请号 : CN201811190841.8

文献号 : CN109343961B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林进全

申请人 : OPPO广东移动通信有限公司

摘要 :

本申请实施例公开了一种内存信息的处理方法、装置、存储介质及终端,该方法包括:首先接收内存调用者发出的内存信息获取请求;然后,如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔;最后,如果所述调用间隔小于预设间隔,则向所述调用者反馈前一次发送的内存信息,可避免同一应用短时间内多次访问内存信息导致处理器繁忙卡顿,提高资源利用率。

权利要求 :

1.一种内存信息的处理方法,其特征在于,包括:接收内存调用者发出的内存信息获取请求,所述调用者为应用对应的一个进程或多个进程中的任意一个进程;

如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔;

如果所述调用间隔小于预设间隔,则向所述调用者反馈前一次发送的内存信息;

所述接收内存调用者发出的内存信息获取请求,包括:根据内存信息获取请求获取调用者的第一进程标识和被查询的第二进程标识;

如果所述第一进程标识和所述第二进程标识相同,则接收内存调用者发出的内存信息获取请求。

2.根据权利要求1所述的内存信息的处理方法,其特征在于,在接收内存调用者发出的内存信息获取请求之后,包括:如果所述调用者为首次调用,或者所述时间隔大于所述预设间隔,则读取内存信息;

将所述内存信息保存到所述调用者对应进程的内存空间。

3.根据权利要求2所述的内存信息的处理方法,其特征在于,所述读取内存信息,包括:使用安卓调试类中的预设函数获取目标内存信息;

读取所述目标内存信息;

相应的,所述将所述内存信息保存到所述调用者对应进程的内存空间,包括:将所述内存信息保存到所述调用者对应进程的内存空间。

4.根据权利要求1所述的内存信息的处理方法,其特征在于,所述如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔,包括:如果所述调用者为非首次调用,则根据第一进程标识获取调用者的第一包名;

如果所述第一包名为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔。

5.根据权利要求1所述的内存信息的处理方法,其特征在于,所述如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔,包括:根据所述调用者类型确定时间隔;

如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔。

6.根据权利要求1‑5中任一项所述的内存信息的处理方法,其特征在于,所述如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔,包括:如果当前处理器负载大于预设负载阈值,则判断所述调用者是否为首次调用;

如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔。

7.一种内存信息的处理装置,其特征在于,包括:接收模块,用于接收内存调用者发出的内存信息获取请求,所述调用者为应用对应的一个进程或多个进程中的任意一个进程;

获取模块,用于如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔;

反馈模块,用于如果所述获取模块获取的所述调用间隔小于预设间隔,则向所述调用者反馈前一次发送的内存信息;

所述接收模块,用于根据内存信息获取请求获取调用者的第一进程标识和被查询的第二进程标识;

如果所述第一进程标识和所述第二进程标识相同,则接收内存调用者发出的内存信息获取请求。

8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1‑6中任一所述内存信息的处理方法。

9.一种终端,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1‑6任一所述的内存信息的处理方法。

说明书 :

内存信息的处理方法、装置、存储介质及终端

技术领域

[0001] 本申请实施例涉及移动终端技术领域,尤其涉及内存信息的处理方法、装置、存储介质及终端。

背景技术

[0002] 随着移动终端的不断发展,终端运算能够不断增强,终端可安装的第三方应用的数量也不断增加。应用的进程在运行过程中会出现获取内存信息的需求,处理器会相应该
需求,通过查询内存数据相应该需求。但是如果出现第三方应用恶意的频繁的进行内存数
据访问请求,则会占用处理器资源,导致系统卡顿,资源利用率低。

发明内容

[0003] 本申请实施例的目的是提供一种内存信息的处理方法、装置、存储介质及终端,可以提高终端的资源利用率。
[0004] 第一方面,本申请实施例提供了一种内存信息的处理方法,包括:
[0005] 接收内存调用者发出的内存信息获取请求;
[0006] 如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔;
[0007] 如果所述调用间隔小于预设间隔,则向所述调用者反馈前一次发送的内存信息。
[0008] 第二方面,本申请实施例提供了一种内存信息的处理装置,包括:
[0009] 接收模块,用于接收内存调用者发出的内存信息获取请求;
[0010] 获取模块,用于如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔;
[0011] 反馈模块,用于如果所述获取模块获取的所述调用间隔小于预设间隔,则向所述调用者反馈前一次发送的内存信息。
[0012] 第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所示的内存信息的处理方法。
[0013] 第四方面,本申请实施例提供了一种终端,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所示
的内存信息的处理方法。
[0014] 本申请实施例中提供的内存信息的处理方案,首先接收内存调用者发出的内存信息获取请求;然后,如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调
用的时间隔;最后,如果所述调用间隔小于预设间隔,则向所述调用者反馈前一次发送的内
存信息,可避免同一应用短时间内多次访问内存信息导致处理器繁忙卡顿,提高资源利用
率。

附图说明

[0015] 图1为本申请实施例提供的一种内存信息的处理方法的流程示意图。
[0016] 图2为本申请实施例提供的另一种内存信息的处理方法的流程示意图。
[0017] 图3为本申请实施例提供的另一种内存信息的处理方法的流程示意图。
[0018] 图4为本申请实施例提供的另一种内存信息的处理方法的流程示意图。
[0019] 图5为本申请实施例提供的另一种内存信息的处理方法的流程示意图。
[0020] 图6为本申请实施例提供的另一种内存信息的处理方法的流程示意图。
[0021] 图7为本申请实施例提供的一种内存信息的处理装置的结构示意图。
[0022] 图8为本申请实施例提供的一种移动终端的结构示意图。

具体实施方式

[0023] 下面结合附图并通过具体实施方式来进一步说明本申请的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明
的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
[0024] 在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多
步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作
完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方
法、函数、规程、子例程、子程序等等。
[0025] 随着移动终端的不断发展,终端运算能够不断增强,终端可安装的第三方应用的数量也不断增加。应用的进程在运行过程中会出现获取内存信息的需求,处理器会相应该
需求,通过查询内存数据相应该需求。但是如果出现第三方应用恶意的频繁的通过内存状
态接口进行内存数据访问,会占用处理器(CPU)资源,导致系统卡顿,资源利用率低。
[0026] 在Android原生的代码实现中,提供了给应用获取内存信息的方法,通过该方法,系统会进行对当前内存的查询,然后将获取的内存信息反馈给应用。但是当出现恶意访问
时,按照目前的Android原生的代码实现方式,将会消耗大量的CPU资源,当频繁调用时,会
导致系统出现卡顿情况。
[0027] 本申请实施例提供了一种内存信息的处理方法,终端能够对进行内存信息访问的应用进行记录,通过判断应用的访问频率进行相应处理,对于访问频率较高的应用,直接将
上次反馈的内存信息作为本次反馈信息,进而无需处理器处理本次的内存访问请求,降低
处理器负载,提高系统资源利用率。具体方案如下所示:
[0028] 图1为本申请实施例提供的内存信息的处理方法的流程示意图,该方法用于终端内存信息访问的情况,该方法可以由移动终端来执行,该移动终端可以为智能手机、平板电
脑、可穿戴设备、笔记本电脑、个人电脑等,该方法具体包括如下步骤:
[0029] 步骤110、接收内存调用者发出的内存信息获取请求。
[0030] 调用者为应用对应的一个进程或多个进程中的任意一个进程。调用者可以在进行内存清理之前发出内存信息获取请求,根据获取到的内存信息对自身对应的内存空间中的
数据进行处理。
[0031] 步骤120、如果调用者为非首次调用,则获取本次调用与调用者前一次调用的时间隔。
[0032] 首次调用可以为终端本次开机之后的首次调用。调用者每次进行调用后,系统对调用行为进行记录,包括记录调用者、调用时间以及获取的内存信息。当重新启动终端时,
可以重置记录。
[0033] 如果本次为非首次,则根据记录可以获取调用者前一次的调用时间。根据前一次的调用时间和当前系统时间确定时间隔。
[0034] 可选的,如果当前处理器负载大于预设负载阈值,则判断调用者是否为首次调用。如果调用者为非首次调用,则获取本次调用与调用者前一次调用的时间隔。如果当前处理
器负载小于预设负载阈值,则读取内存信息。将内存信息保存到调用者对应进程的内存空
间。
[0035] 负载阈值可以为CPU10%‑20%占用率。如果当前处理器大于预设负载阈值,则需要为处理器分流,适度的为处理器过滤非必要处理请求,例如频繁出现的内存信息获取请
求。
[0036] 步骤130、如果调用间隔小于预设间隔,则向调用者反馈前一次发送的内存信息。
[0037] 预设间隔可以为秒级也可以为分钟级。读取前一次记录的内存内信息,将该内存信息直接反馈给调用者,此时无需处理器进行内存读取操作。
[0038] 本申请实施例提供的内存信息的处理方法,首先接收内存调用者发出的内存信息获取请求。然后,如果调用者为非首次调用,则获取本次调用与调用者前一次调用的时间
隔。最后,如果调用间隔小于预设间隔,则向调用者反馈前一次发送的内存信息,相对于目
前缺少内存频繁访问机制,导致处理器被占用,资源利用率低,本申请实施例可以在调用间
隔小于预设间隔时,向调用者反馈前一次发送的内存信息,进而避免处理器进行内存信息
的读取操作,降低处理器负载,提高资源利用率。
[0039] 图2为本申请实施例提供的一种内存信息的处理方法的流程示意图,作为对上述实施例的进一步说明,包括:
[0040] 步骤210、接收内存调用者发出的内存信息获取请求。
[0041] 步骤220、判断调用者是否为首次调用。
[0042] 如果为非首次,则执行步骤240。如果为首次,则执行步骤260。
[0043] 步骤230、如果调用者为非首次调用,则获取本次调用与调用者前一次调用的时间隔。
[0044] 步骤240、判断调用间隔是否小于预设间隔。
[0045] 如果小于,执行步骤250。否则执行步骤260。
[0046] 步骤250、如果调用间隔小于预设间隔,则向调用者反馈前一次发送的内存信息。
[0047] 步骤260、如果调用者为首次调用,或者时间隔大于预设间隔,则读取内存信息。
[0048] 如果调用者为首次调用或者时间隔大于预设间隔,则说明调用者的访问频率是正常的。此时处理器读取内存信息。内存信息包括下述信息中的至少一个或多个:实际使用的
物理内存(Proportional Set Size,PSS)、交换出去的物理内存、共享内存有效部分、私有
内存有效部分、共享内存使用过的数据、私有内存使用过的数据、共享内存清理的数据以及
私有内存清理的数据等。
[0049] 步骤270、将内存信息保存到调用者对应进程的内存空间。
[0050] 内存空间中为每个进程分配了对应的内存空间,处理器在获取到内存信息后将内存信息写入到调用者对应进程的内存空间。
[0051] 本申请实施例提供的内存信息的处理方法能够在调用者为首次调用,或者时间隔大于预设间隔,则读取内存信息,为进程提供内存信息的读取服务。
[0052] 图3为本申请实施例提供的一种内存信息的处理方法的流程示意图,作为对上述实施例的进一步说明,包括:
[0053] 步骤310、接收内存调用者发出的内存信息获取请求。
[0054] 步骤320、判断调用者是否为首次调用。
[0055] 如果为非首次,则执行步骤340。如果为首次,则执行步骤360。
[0056] 步骤330、如果调用者为非首次调用,则获取本次调用与调用者前一次调用的时间隔。
[0057] 步骤340、判断调用间隔是否小于预设间隔。
[0058] 如果小于,执行步骤350。否则执行步骤360。
[0059] 步骤350、如果调用间隔小于预设间隔,则向调用者反馈前一次发
[0060] 送的内存信息。
[0061] 步骤360、如果调用者为首次调用,或者时间隔大于预设间隔,则使用安卓调试类中的预设函数获取目标内存信息。
[0062] 可选的,安卓调试类中的预设函数可以选择android_os_Debug中对getDirtyPagesPid函数对内存接口进行监控,记录需要反馈的内存信息。
[0063] 步骤370、读取目标内存信息。
[0064] 步骤380、将内存信息保存到调用者对应进程的内存空间。
[0065] 本申请实施例提供的内存信息的处理方法能够在上述实施例的基础上,通过安卓调试类中的预设函数能够准确滑块的获取目标内存信息,提高内存信息读取效率。本申请
实施例通过增加对获取系统内存接口的监控,减少处理器被调用次数,避免出现系统卡顿
现象,提高资源利用率。
[0066] 图4为本申请实施例提供的一种内存信息的处理方法的流程示意图,作为对上述实施例的进一步说明,包括:
[0067] 步骤410、根据内存信息获取请求获取调用者的第一进程标识和被查询的第二进程标识。
[0068] 内存信息获取请求包括被查询的第二进程,获取第二进程标识以及发起内存信息获取请求的第一进程标识。
[0069] 步骤420、判断第一进程标识和第二进程标识是否相同。
[0070] 相同执行步骤430。不同执行步骤460。
[0071] 步骤430、如果第一进程标识和第二进程标识相同,则接收内存调用者发出的内存信息获取请求。
[0072] 如果第一进程标识与第二进程标识相同,则说明调用者在查询自身的内存信息,而非其他进程的内存,这种请求是合法的,进而接收内存调用者发出的内存信息获取请求。
[0073] 步骤440、如果调用者为非首次调用,则获取本次调用与调用者前一次调用的时间隔。
[0074] 步骤450、如果调用间隔小于预设间隔,则向调用者反馈前一次发送的内存信息。
[0075] 步骤460、屏蔽调用者发送的内存信息获取请求。
[0076] 如果第一进程标识与第二进程标识不相同,则说明调用者在查询其他进程的内存信息,这种请求是不合法的,进而屏蔽内存调用者发出的内存信息获取请求。
[0077] 本申请实施例提供的内存信息的处理方法能够核对调用者的第一进程与被查询的第二进程是否一致,进而判定调用者的合法性,提高系统安全。
[0078] 图5为本申请实施例提供的一种内存信息的处理方法的流程示意图,作为对上述实施例的进一步说明,包括:
[0079] 步骤510、根据内存信息获取请求获取调用者的第一进程标识和被查询的第二进程标识。
[0080] 步骤520、判断第一进程标识和第二进程标识是否相同。
[0081] 相同执行步骤530。不同执行步骤570。
[0082] 步骤530、如果第一进程标识和第二进程标识相同,则接收内存调用者发出的内存信息获取请求。
[0083] 步骤540、如果调用者为非首次调用,则根据第一进程标识获取调用者的第一包名。
[0084] 第一包名用于标识第一进程对应的应用名称,如果应用通过多个进程进行执行,而多个进程间需要进行内存信息的交互,此时可以将第一包名对隶属于同一个应用的多个
进程视为一个请求单位。
[0085] 步骤550、如果第一包名为非首次调用,则获取本次调用与调用者前一次调用的时间隔。
[0086] 步骤560、如果调用间隔小于预设间隔,则向调用者反馈前一次发送的内存信息。
[0087] 步骤570、屏蔽调用者发送的内存信息获取请求。
[0088] 本申请实施例提供的内存信息的处理方法,能够基于包名反馈调用者应用,实现应用内启动的多个进程之间能够实现内存共享,提高应用执行效率。
[0089] 图6为本申请实施例提供的一种内存信息的处理方法的流程示意图,作为对上述实施例的进一步说明,包括:
[0090] 步骤610、接收内存调用者发出的内存信息获取请求。
[0091] 步骤620、根据调用者类型确定时间隔。
[0092] 调用者类型可以根据进程自身优先级或者进程对应的应用的优先级进行确定。优先级越高的进程其对应的时间隔越短。可选的,优先级较高的调用者其时间隔可以为3分
钟,优先级较低的调用者其时间隔为5分钟。
[0093] 步骤630、如果调用者为非首次调用,则获取本次调用与调用者前一次调用的时间隔。
[0094] 步骤640、如果调用间隔小于预设间隔,则向调用者反馈前一次发送的内存信息。
[0095] 本申请实施例提供的内存信息的处理方法,能够根据调用者类型确定其对应的时间隔,使得优先级较高的调用者的时间隔小于优先级较低的调用者的时间隔,进而更加灵
活的对调用者的内存访问请求进行处理。
[0096] 图7为本申请实施例提供的一种内存信息的处理装置的结构示意图。如图7所示,该装置包括:接收模块710、获取模块720和反馈模块730。
[0097] 接收模块710,用于接收内存调用者发出的内存信息获取请求;
[0098] 获取模块720,用于如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔;
[0099] 反馈模块730,用于如果所述获取模块720获取的所述调用间隔小于预设间隔,则向所述调用者反馈前一次发送的内存信息。
[0100] 进一步的,获取模块720用于在接收内存调用者发出的内存信息获取请求之后,如果所述调用者为首次调用,或者所述时间隔大于所述预设间隔,则读取内存信息;
[0101] 将所述内存信息保存到所述调用者对应进程的内存空间。
[0102] 进一步的,获取模块720用于读取内存信息,包括:
[0103] 使用安卓调试类中的预设函数获取目标内存信息;
[0104] 读取所述目标内存信息;
[0105] 相应的,所述将所述内存信息保存到所述调用者对应进程的内存空间,包括:
[0106] 将所述内存信息保存到所述调用者对应进程的内存空间。
[0107] 进一步的,接收模块710用于,根据内存信息获取请求获取调用者的第一进程标识和被查询的第二进程标识;
[0108] 如果所述第一进程标识和所述第二进程标识相同,则接收内存调用者发出的内存信息获取请求。
[0109] 进一步的,获取模块720用于,如果所述调用者为非首次调用,则根据第一进程标识获取调用者的第一包名;
[0110] 如果所述第一包名为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔。
[0111] 进一步的,获取模块720用于,
[0112] 根据所述调用者类型确定时间隔;
[0113] 如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔。
[0114] 进一步的,获取模块720用于,如果当前处理器负载大于预设负载阈值,则判断所述调用者是否为首次调用;
[0115] 如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔。
[0116] 本申请实施例提供的内存信息的处理装置,首先接收模块710接收内存调用者发出的内存信息获取请求;然后,获取模块720用于如果所述调用者为非首次调用,则获取本
次调用与所述调用者前一次调用的时间隔;最后,反馈模块730用于如果所述调用间隔小于
预设间隔,则向所述调用者反馈前一次发送的内存信息,相对于目前缺少内存频繁访问机
制,导致处理器被占用,资源利用率低,本申请实施例可以在调用间隔小于预设间隔时,向
调用者反馈前一次发送的内存信息,进而避免处理器进行内存信息的读取操作,降低处理
器负载,提高资源利用率。
[0117] 上述装置可执行本申请前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请前述所有实施
例所提供的方法。
[0118] 图8是本申请实施例提供的一种终端设备的结构示意图。如图8所示,该终端可以包括:壳体(图中未示出)、存储器801、中央处理器(Central Processing Unit,CPU)802(又
称处理器,以下简称CPU)、存储在存储器801上并可在处理器802上运行的计算机程序、电路
板(图中未示出)和电源电路(图中未示出)。所述电路板安置在所述壳体围成的空间内部;
所述CPU802和所述存储器801设置在所述电路板上;所述电源电路,用于为所述终端的各个
电路或器件供电;所述存储器801,用于存储可执行程序代码;所述CPU802通过读取所述存
储器801中存储的可执行程序代码来运行与所述可执行程序代码对应的程序。
[0119] 所述终端还包括:外设接口803、RF(Radio Frequency,射频)电路805、音频电路806、扬声器811、电源管理芯片808、输入/输出(I/O)子系统809、触摸屏812、其他输入/控制
设备810以及外部端口804,这些部件通过一个或多个通信总线或信号线807来通信。
[0120] 应该理解的是,图示终端设备800仅仅是终端的一个范例,并且终端设备800可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有
不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成
电路在内的硬件、软件、或硬件和软件的组合中实现。
[0121] 下面就本实施例提供的用于一种终端设备进行详细的描述,该终端设备以智能手机为例。
[0122] 存储器801,所述存储器801可以被CPU802、外设接口803等访问,所述存储器801可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、
闪存器件、或其他易失性固态存储器件。
[0123] 外设接口803,所述外设接口803可以将设备的输入和输出外设连接到CPU802和存储器801。
[0124] I/O子系统809,所述I/O子系统809可以将设备上的输入输出外设,例如触摸屏812和其他输入/控制设备810,连接到外设接口803。I/O子系统809可以包括显示控制器8091和
用于控制其他输入/控制设备810的一个或多个输入控制器8092。其中,一个或多个输入控
制器8092从其他输入/控制设备810接收电信号或者向其他输入/控制设备810发送电信号,
其他输入/控制设备810可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操
纵杆、点击滚轮。值得说明的是,输入控制器8092可以与以下任一个连接:键盘、红外端口、
USB接口以及诸如鼠标的指示设备。
[0125] 其中,按照触摸屏的工作原理和传输信息的介质分类,触摸屏812可以为电阻式、电容感应式、红外线式或表面声波式。按照安装方式分类,触摸屏812可以为:外挂式、内置
式或整体式。按照技术原理分类,触摸屏812可以为:矢量压力传感技术触摸屏、电阻技术触
摸屏、电容技术触摸屏、红外线技术触摸屏或表面声波技术触摸屏。
[0126] 触摸屏812,所述触摸屏812是用户终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。可选的,触摸屏812将用户
在触屏幕上触发的电信号(如接触面的电信号),发送给处理器802。
[0127] I/O子系统809中的显示控制器8091从触摸屏812接收电信号或者向触摸屏812发送电信号。触摸屏812检测触摸屏上的接触,显示控制器8091将检测到的接触转换为与显示
在触摸屏812上的用户界面对象的交互,即实现人机交互,显示在触摸屏812上的用户界面
对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光
鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。
[0128] RF电路805,主要用于建立智能音箱与无线网络(即网络侧)的通信,实现智能音箱与无线网络的数据接收和发送。例如收发短信息、电子邮件等。
[0129] 音频电路806,主要用于从外设接口803接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器811。
[0130] 扬声器811,用于将智能音箱通过RF电路805从无线网络接收的语音信号,还原为声音并向用户播放该声音。
[0131] 电源管理芯片808,用于为CPU802、I/O子系统及外设接口所连接的硬件进行供电及电源管理。
[0132] 在本实施例中,中央处理器802用于:
[0133] 接收内存调用者发出的内存信息获取请求;
[0134] 如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔;
[0135] 如果所述调用间隔小于预设间隔,则向所述调用者反馈前一次发送的内存信息。
[0136] 进一步的,在接收内存调用者发出的内存信息获取请求之后,包括:
[0137] 如果所述调用者为首次调用,或者所述时间隔大于所述预设间隔,则读取内存信息;
[0138] 将所述内存信息保存到所述调用者对应进程的内存空间。
[0139] 进一步的,所述读取内存信息,包括:
[0140] 使用安卓调试类中的预设函数获取目标内存信息;
[0141] 读取所述目标内存信息;
[0142] 相应的,所述将所述内存信息保存到所述调用者对应进程的内存空间,包括:
[0143] 将所述内存信息保存到所述调用者对应进程的内存空间。
[0144] 进一步的,所述接收内存调用者发出的内存信息获取请求,包括:
[0145] 根据内存信息获取请求获取调用者的第一进程标识和被查询的第二进程标识;
[0146] 如果所述第一进程标识和所述第二进程标识相同,则接收内存调用者发出的内存信息获取请求。
[0147] 进一步的,所述如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔,包括:
[0148] 如果所述调用者为非首次调用,则根据第一进程标识获取调用者的第一包名;
[0149] 如果所述第一包名为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔。
[0150] 进一步的,所述如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔,包括:
[0151] 根据所述调用者类型确定时间隔;
[0152] 如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔。
[0153] 进一步的,所述如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔,包括:
[0154] 如果当前处理器负载大于预设负载阈值,则判断所述调用者是否为首次调用;
[0155] 如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔。
[0156] 本申请实施例还提供一种包含终端设备可执行指令的存储介质,所述终端设备可执行指令在由终端设备处理器执行时用于执行一种内存信息的处理方法,该方法包括:
[0157] 接收内存调用者发出的内存信息获取请求;
[0158] 如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔;
[0159] 如果所述调用间隔小于预设间隔,则向所述调用者反馈前一次发送的内存信息。
[0160] 进一步的,在接收内存调用者发出的内存信息获取请求之后,包括:
[0161] 如果所述调用者为首次调用,或者所述时间隔大于所述预设间隔,则读取内存信息;
[0162] 将所述内存信息保存到所述调用者对应进程的内存空间。
[0163] 进一步的,所述读取内存信息,包括:
[0164] 使用安卓调试类中的预设函数获取目标内存信息;
[0165] 读取所述目标内存信息;
[0166] 相应的,所述将所述内存信息保存到所述调用者对应进程的内存空间,包括:
[0167] 将所述内存信息保存到所述调用者对应进程的内存空间。
[0168] 进一步的,所述接收内存调用者发出的内存信息获取请求,包括:
[0169] 根据内存信息获取请求获取调用者的第一进程标识和被查询的第二进程标识;
[0170] 如果所述第一进程标识和所述第二进程标识相同,则接收内存调用者发出的内存信息获取请求。
[0171] 进一步的,所述如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔,包括:
[0172] 如果所述调用者为非首次调用,则根据第一进程标识获取调用者的第一包名;
[0173] 如果所述第一包名为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔。
[0174] 进一步的,所述如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔,包括:
[0175] 根据所述调用者类型确定时间隔;
[0176] 如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔。
[0177] 进一步的,所述如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔,包括:
[0178] 如果当前处理器负载大于预设负载阈值,则判断所述调用者是否为首次调用;
[0179] 如果所述调用者为非首次调用,则获取本次调用与所述调用者前一次调用的时间隔。
[0180] 本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读
存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或
器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具
有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器
(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑
ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储
介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件
使用或者与其结合使用。
[0181] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限
于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可
读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于
由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0182] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0183] 可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包
括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全
地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在
用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及
远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域
网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商
来通过因特网连接)。
[0184] 当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的内存信息的处理操作,还可以执行本申请任意实施例所提供
的内存信息的处理方法中的相关操作。
[0185] 注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、
重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行
了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还
可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。