服务调用方法、装置及终端.pdf

上传人:Y94****206 文档编号:6115946 上传时间:2019-04-13 格式:PDF 页数:15 大小:1.02MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410112797.4

申请日:

2014.03.24

公开号:

CN103914337A

公开日:

2014.07.09

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/46申请日:20140324|||公开

IPC分类号:

G06F9/46; G06F9/48

主分类号:

G06F9/46

申请人:

小米科技有限责任公司

发明人:

王文林; 杨亮; 郑兴平

地址:

100085 北京市海淀区清河中街68号华润五彩城购物中心二期13层

优先权:

专利代理机构:

北京三高永信知识产权代理有限责任公司 11138

代理人:

刘映东

PDF下载: PDF下载
内容摘要

本公开是关于一种服务调用方法、装置及终端,属于计算机技术领域。所述方法包括:获取携带有应用程序的程序标识的服务调用请求;检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件;若检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件,则触发对所述应用程序的关闭操作。所述装置包括:第一获取模块、内存检测模块和第一处理模块。本公开解决了应用程序频繁调用服务且在调用结束后不释放调用服务所占用的内存导致的服务占用大量内存的问题,达到了释放服务调用服务所占内存以提高终端稳定性的效果。

权利要求书

权利要求书
1.  一种服务调用方法,其特征在于,包括:
获取携带有应用程序的程序标识的服务调用请求;
检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件;
若检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件,则触发对所述应用程序的关闭操作。

2.  根据权利要求1所述的方法,其特征在于,所述检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件,包括:
检测已经为所述应用程序分配的游标的游标数量是否达到预设阈值,所述游标是提供所述服务调用请求的服务分配的,和/或,所述游标是操作系统中所述应用程序已经调用了的各个服务分配的;
若检测出所述游标数量达到所述预设阈值,则确定所述应用程序正在调用的服务所占用的内存值满足所述预设条件。

3.  根据权利要求2所述的方法,其特征在于,还包括:
若检测出所述应用程序正在调用的服务所占用的内存值不满足所述预设条件,则触发提供所述服务调用请求的所述服务为所述应用程序分配新的游标,并在已经为所述应用程序分配的游标数量的基础上增加预定数值。

4.  根据权利要求1所述的方法,其特征在于,所述触发对所述应用程序的关闭操作,包括:
触发提供所述服务调用请求的服务向操作系统发送调用异常的反馈信息,由所述操作系统检测到所述反馈信息后关闭所述应用程序。

5.  根据权利要求1至4任一项所述的方法,其特征在于,还包括:
获取携带有应用程序的程序标识和游标的游标信息的服务释放请求;
触发提供所述服务释放请求的服务对与所述游标对应的内存进行回收,并在已经为所述应用程序分配的游标数量的基础上减小预定数值。

6.  一种服务调用装置,其特征在于,包括:
第一获取模块,用于获取携带有应用程序的程序标识的服务调用请求;
内存检测模块,用于检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件;
第一处理模块,用于在所述内存检测模块检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件时,触发对所述应用程序的关闭操作。

7.  根据权利要求6所述的装置,其特征在于,所述内存检测模块,包括:
游标检测单元,用于检测已经为所述应用程序分配的游标的游标数量是否达到预设阈值,所述游标是提供所述服务调用请求的服务分配的,和/或,所述游标是操作系统中所述应用程序已经调用了的各个服务分配的;
结果确定单元,用于在所述游标检测单元检测出所述游标数量达到所述预设阈值时,确定所述应用程序正在调用的服务所占用的内存值满足所述预设条件。

8.  根据权利要求7所述的装置,其特征在于,还包括:
第二处理模块,用于在所述内存检测模块检测出所述应用程序正在调用的服务所占用的内存值不满足所述预设条件时,触发提供所述服务调用请求的所述服务为所述应用程序分配新的游标,并在已经为所述应用程序分配的游标数量的基础上增加预定数值。

9.  根据权利要求6所述的装置,其特征在于,所述第一处理模块,用于触发提供所述服务调用请求的服务向操作系统发送调用异常的反馈信息,由所述操作系统检测到所述反馈信息后关闭所述应用程序。

10.  根据权利要求6至9任一项所述的装置,其特征在于,还包括:
第二获取模块,用于获取携带有应用程序的程序标识和游标的游标信息的服务释放请求;
第三处理模块,用于触发提供所述服务释放请求的服务对与所述游标对应 的内存进行回收,并在已经为所述应用程序分配的游标数量的基础上减小预定数值。

11.  一种终端,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取携带有应用程序的程序标识的服务调用请求;
检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件;
若检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件,则触发对所述应用程序的关闭操作。

说明书

说明书服务调用方法、装置及终端
技术领域
本公开涉及计算机技术领域,特别涉及一种服务调用方法、装置及终端。
背景技术
为了给用户带来丰富的使用体验,终端提供了大量的服务的接口供终端中安装的应用程序使用。由于对这些接口的访问限制很少,当应用程序通过频繁访问接口来调用服务时,给终端的稳定性带来极大的挑战。因此,终端需要对服务的调用进行限制。
在应用程序调用服务时,终端获取该应用程序的程序标识;检测该程序标识是否在预设的权限列表中,该权限列表用于存储具有调用服务的权限的应用程序的程序标识;若检测出该程序标识在预设的权限列表中,则允许该应用程序调用该服务。
发明人在实现本公开的过程中,发现相关技术中至少存在以下缺陷:
虽然终端可以通过权限列表对不具有调用服务的权限的应用程序的调用行为进行限制,但是,对于具有调用服务的权限的应用程序,若该应用程序频繁调用服务且在调用结束后不释放调用服务所占用的内存,则多次调用也会导致服务占用大量的内存,影响终端的稳定性。
发明内容
为克服应用程序频繁调用服务且在调用结束后不释放调用服务所占用的内存导致的服务占用大量内存的问题,本公开提供了一种服务调用方法、装置及终端。
根据本公开实施例的第一方面,提供一种服务调用方法,包括:
获取携带有应用程序的程序标识的服务调用请求;
检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件;
若检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条 件,则触发对所述应用程序的关闭操作。
可选的,所述检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件,包括:
检测已经为所述应用程序分配的游标的游标数量是否达到预设阈值,所述游标是提供所述服务调用请求的服务分配的,和/或,所述游标是操作系统中所述应用程序已经调用了的各个服务分配的;
若检测出所述游标数量达到所述预设阈值,则确定所述应用程序正在调用的服务所占用的内存值满足所述预设条件。
可选的,还包括:
若检测出所述应用程序正在调用的服务所占用的内存值不满足所述预设条件,则触发提供所述服务调用请求的所述服务为所述应用程序分配新的游标,并在已经为所述应用程序分配的游标数量的基础上增加预定数值。
可选的,所述触发对所述应用程序的关闭操作,包括:
触发提供所述服务调用请求的服务向操作系统发送调用异常的反馈信息,由所述操作系统检测到所述反馈信息后关闭所述应用程序。
可选的,还包括:
获取携带有应用程序的程序标识和游标的游标信息的服务释放请求;
触发提供所述服务释放请求的服务对与所述游标对应的内存进行回收,并在已经为所述应用程序分配的游标数量的基础上减小预定数值。
根据本公开实施例的第二方面,提供一种服务调用装置,包括:
第一获取模块,用于获取携带有应用程序的程序标识的服务调用请求;
内存检测模块,用于检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件;
第一处理模块,用于在所述内存检测模块检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件时,触发对所述应用程序的关闭操作。
可选的,所述内存检测模块,包括:
游标检测单元,用于检测已经为所述应用程序分配的游标的游标数量是否达到预设阈值,所述游标是提供所述服务调用请求的服务分配的,和/或,所述游标是操作系统中所述应用程序已经调用了的各个服务分配的;
结果确定单元,用于在所述游标检测单元检测出所述游标数量达到所述预 设阈值时,确定所述应用程序正在调用的服务所占用的内存值满足所述预设条件。
可选的,还包括:
第二处理模块,用于在所述内存检测模块检测出所述应用程序正在调用的服务所占用的内存值不满足所述预设条件时,触发提供所述服务调用请求的所述服务为所述应用程序分配新的游标,并在已经为所述应用程序分配的游标数量的基础上增加预定数值。
可选的,所述第一处理模块,用于触发提供所述服务调用请求的服务向操作系统发送调用异常的反馈信息,由所述操作系统检测到所述反馈信息后关闭所述应用程序。
可选的,还包括:
第二获取模块,用于获取携带有应用程序的程序标识和游标的游标信息的服务释放请求;
第三处理模块,用于触发提供所述服务释放请求的服务对与所述游标对应的内存进行回收,并在已经为所述应用程序分配的游标数量的基础上减小预定数值。
根据本公开实施例的第三方面,提供一种终端,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取携带有应用程序的程序标识的服务调用请求;
检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件;
若检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件,则触发对所述应用程序的关闭操作。
本公开的实施例提供的技术方案可以包括以下有益效果:
通过获取携带有应用程序的程序标识的服务调用请求;检测应用程序正在调用的服务所占用的内存值是否满足预设条件;若检测出应用程序正在调用的服务所占用的内存值满足预设条件,则触发对应用程序的关闭操作,可以在应用程序请求调用服务时,对由于频繁调用服务而导致服务占用内存值较多的应用程序进行关闭,释放了服务多次占用的大量内存,解决了应用程序频繁调用 服务且在调用结束后不释放调用服务所占用的内存导致的服务占用大量内存的问题,达到了释放应用程序调用服务所占内存以提高终端稳定性的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种服务调用方法的流程图;
图2是根据另一示例性实施例示出的一种服务调用方法的流程图;
图3是根据一示例性实施例示出的一种服务调用装置的示意图;
图4是根据再一示例性实施例示出的一种服务调用装置的示意图;
图5是根据一示例性实施例示出的一种服务调用装置的示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种服务调用方法的流程图,如图1所示,服务调用方法应用于终端中,包括以下步骤。
在步骤101中,获取携带有应用程序的程序标识的服务调用请求。
服务调用请求是应用程序发送给服务,由服务提供的。其中,服务是终端所提供的功能,包括系统服务和非系统服务。系统服务可以是短信服务和联系人服务等等,非系统服务可以是游戏服务和支付服务等等。
在步骤102中,检测应用程序正在调用的服务所占用的内存值是否满足预设条件。
本实施例中,可以根据服务调用请求中所携带的程序标识查找该应用程序 正在调用的服务所占用的内存值,并检测该内存值是否满足预设条件。
在步骤103中,若检测出应用程序正在调用的服务所占用的内存值满足预设条件,则触发对应用程序的关闭操作。
若应用程序正在调用的服务所占用的内存值满足预设条件,则可以直接触发对应用程序的关闭操作,或,触发显示应用程序占用内存大的提示信息,由用户根据提示信息关闭应用程序。
综上所述,本公开提供的服务调用方法,通过获取携带有应用程序的程序标识的服务调用请求;检测应用程序正在调用的服务所占用的内存值是否满足预设条件;若检测出应用程序正在调用的服务所占用的内存值满足预设条件,则触发对应用程序的关闭操作,可以在应用程序请求调用服务时,对由于频繁调用服务而导致服务占用内存值较多的应用程序进行关闭,释放了服务多次占用的大量内存,解决了应用程序频繁调用服务且在调用结束后不释放调用服务所占用的内存导致的服务占用大量内存的问题,达到了释放应用程序调用服务所占内存以提高终端稳定性的效果。
图2是根据另一示例性实施例示出的一种服务调用方法的流程图,如图2所示,服务调用方法应用于终端中,包括如下步骤。
在步骤201中,获取携带有应用程序的程序标识的服务调用请求。
应用程序获取请求调用的服务的服务标识和自身的程序标识,生成携带有服务标识和程序标识的服务调用请求,并通过终端的操作系统提供的query函数向操作系统发送该服务调用请求,操作系统根据服务标识确定该应用程序请求调用的服务,将该服务调用请求发送给该服务,由服务提供该服务调用请求。其中,服务是终端所提供的功能,包括系统服务和非系统服务。系统服务可以是短信服务和联系人服务等等,非系统服务可以是游戏服务和支付服务等等。
在步骤202中,检测应用程序正在调用的服务所占用的内存值是否满足预设条件;若检测出应用程序正在调用的服务所占用的内存值满足预设条件,则执行步骤203;若检测出应用程序正在调用的服务所占用的内存值不满足预设条件,则执行步骤204。
在应用程序调用服务时,该服务会为应用程序分配预定大小的内存,若应用程序在调用结束后不释放该服务,则该内存不能被其他服务占用。当应用程 序频繁调用服务且在调用结束后不释放服务,则会导致服务占用大量内存,使得该服务的运行和响应缓慢,甚至于出现服务崩溃的问题,影响了终端的稳定性。
因此,在服务为应用程序分配内存之前,可以根据服务调用请求中所携带的程序标识确定应用程序,并对应用程序正在调用的服务所占用的内存是否满足预设条件进行检测。若检测出应用程序正在调用的服务所占用的内存满足预设条件,则确定被应用程序调用的服务所占用的内存较多,此时执行步骤203;若检测出应用程序正在调用的服务所占用的内存不满足预设条件,则确定被应用程序调用的服务所占用的内存较少,此时执行步骤204。
本实施例中,检测应用程序正在调用的服务所占用的内存值是否满足预设条件,包括:
1)检测已经为应用程序分配的游标(Cursor)的游标数量是否达到预设阈值,该游标是提供服务调用请求的服务分配的,和/或,游标是操作系统中应用程序已经调用了的各个服务分配的;
2)若检测出游标数量达到预设阈值,则确定应用程序正在调用的服务所占用的内存值满足预设条件。
服务在为应用程序分配了预定大小的内存后,会向应用程序返回一个游标,该游标用于指示分配的内存的首地址。因此,对应用程序正在调用的服务所占用的内存值可以通过已经为应用程序分配的游标的游标数量体现。其中,服务可以通过CursorWindow.java类中的RecordNewWindow方法分配游标。
本实施例中,可以对每一个服务为应用程序所分配的游标的游标数量进行统计,得到与单个服务对应的映射表,该映射表可以包括至少一个程序标识和该服务为每一个应用程序分配的游标的游标数量的映射关系。或者,还可以对各个服务为应用程序所分配的游标的游标数量进行统计,得到与所有服务对应的映射表,该映射表可以包括至少一个程序标识和各个服务为每一个应用程序分配的游标的游标数量总和的映射关系。
进一步地,为了节省映射表所占用的内存,可以对每一个映射关系进行哈希计算,在映射表中存储计算得到的各个哈希值。
在步骤203中,触发对应用程序的关闭操作。
其中,触发对应用程序的关闭操作,包括:
触发提供服务调用请求的服务向操作系统发送调用异常的反馈信息,由操作系统检测到反馈信息后关闭应用程序。
若应用程序正在调用的服务所占用的内存值满足预设条件,则可以向提供该服务调用请求的服务发送应用程序正在调用的服务所占用的内存值满足预设条件的指示信息,该服务根据该指示信息生成调用异常的反馈信息,将该反馈信息发送给操作系统,操作系统向query函数发送该反馈信息。
若反馈信息中携带有IllegalStateException参数,则query函数可以检测该反馈信息的异常类型。其中,该IllegalStateException参数中字符串的数值用于指示异常类型。
若query函数检测出异常类型是应用程序正在调用的服务所占用的内存值满足预设条件,则直接触发System.exit对应用程序进行关闭操作,或,触发显示应用程序占用内存大的提示信息,由用户根据提示信息关闭应用程序。
在步骤204中,触发提供服务调用请求的服务为应用程序分配新的游标,并在已经为应用程序分配的游标数量的基础上增加预定数值。
若应用程序正在调用的服务所占用的内存值不满足预设条件,则可以向提供该服务调用请求的服务发送应用程序正在调用的服务所占用的内存值不满足预设条件的指示信息,该服务根据该指示信息为应用程序分配预定大小的内存,并生成一个新的游标,将该游标发送给操作系统,操作系统向query函数发送该游标,query函数向应用程序发送该游标,应用程序根据接收到的游标调用该服务。
进一步地,在服务为应用程序分配新的游标时,还可以对映射表中与该应用程序对应的映射关系进行更新。即,在已经为应用程序分配的游标数量的基础上增加预定数值,对程序标识和增加后的游标数量之间的映射关系重新进行哈希计算,将计算得到的哈希值存储在映射表中。
需要补充说明的是,还包括:
获取携带有应用程序的程序标识和游标的游标信息的服务释放请求;
触发提供服务释放请求的服务对与游标对应的内存进行回收,并在已经为应用程序分配的游标数量的基础上减小预定数值。
若应用程序结束了对服务的调用,则可以获取请求释放的服务的服务标识、自身的程序标识和该服务分配的游标的游标标识,生成携带有服务标识、程序 标识和游标标识的服务释放请求,并通过终端的操作系统提供的query函数向操作系统发送该服务释放请求,操作系统根据服务标识确定该应用程序请求释放的服务,将该服务释放请求发送给该服务,由服务提供该服务释放请求。
在获取到服务释放请求后,可以向提供该服务释放请求的服务发送释放游标标识指示的内存的指示信息,该服务根据该指示信息对与游标对应的内存进行回收,完成对服务的释放。其中,服务可以通过CursorWindow.java类中的RecordClosingOfWindow方法回收内存。
进一步地,在服务对内存进行回收时,还可以对映射表中与该应用程序对应的映射关系进行更新。即,在已经为应用程序分配的游标数量的基础上减少预定数值,对程序标识和减少后的游标数量之间的映射关系重新进行哈希计算,将计算得到的哈希值存储在映射表中。
综上所述,本公开提供的服务调用方法,通过获取携带有应用程序的程序标识的服务调用请求;检测应用程序正在调用的服务所占用的内存值是否满足预设条件;若检测出应用程序正在调用的服务所占用的内存值满足预设条件,则触发对应用程序的关闭操作,可以在应用程序请求调用服务时,对由于频繁调用服务而导致服务占用内存值较多的应用程序进行关闭,释放了服务多次占用的大量内存,解决了应用程序频繁调用服务且在调用结束后不释放调用服务所占用的内存导致的服务占用大量内存的问题,达到了释放应用程序调用服务所占内存以提高终端稳定性的效果。
另外,通过检测已经为应用程序分配的游标数量是否达到预设阈值,该游标是操作系统中应用程序已经调用了的各个服务分配的,可以对应用程序调用所有服务所占的总内存值进行监控,以进一步释放被各个服务占用的内存,提高了终端的稳定性。
图3是根据一示例性实施例示出的一种服务调用装置的示意图,如图3所示,服务调用装置应用于终端中,包括:第一获取模块301、内存检测模块302和第一处理模块303。
该第一获取模块301被配置为,用于获取携带有应用程序的程序标识的服务调用请求;
该内存检测模块302被配置为,用于检测应用程序正在调用的服务所占用 的内存值是否满足预设条件;
该第一处理模块303被配置为,用于在内存检测模块检测出应用程序正在调用的服务所占用的内存值满足预设条件时,触发对应用程序的关闭操作。
综上所述,本公开提供的服务调用装置,通过获取携带有应用程序的程序标识的服务调用请求;检测应用程序正在调用的服务所占用的内存值是否满足预设条件;若检测出应用程序正在调用的服务所占用的内存值满足预设条件,则触发对应用程序的关闭操作,可以在应用程序请求调用服务时,对由于频繁调用服务而导致服务占用内存值较多的应用程序进行关闭,释放了服务多次占用的大量内存,解决了应用程序频繁调用服务且在调用结束后不释放调用服务所占用的内存导致的服务占用大量内存的问题,达到了释放应用程序调用服务所占内存以提高终端稳定性的效果。
图4是根据一示例性实施例示出的一种服务调用装置的示意图,如图4所示,服务调用装置应用于终端中,包括:第一获取模块301、内存检测模块302和第一处理模块303。
该第一获取模块301被配置为,用于获取携带有应用程序的程序标识的服务调用请求;
该内存检测模块302被配置为,用于检测应用程序正在调用的服务所占用的内存值是否满足预设条件;
该第一处理模块303被配置为,用于在内存检测模块检测出应用程序正在调用的服务所占用的内存值满足预设条件时,触发对应用程序的关闭操作。
可选的,内存检测模块302,包括:游标检测单元3021和结果确定单元3022;
该游标检测单元3021被配置为,用于检测已经为应用程序分配的游标的游标数量是否达到预设阈值,游标是提供服务调用请求的服务分配的,和/或,游标是操作系统中应用程序已经调用了的各个服务分配的;
该结果确定单元3022被配置为,用于在游标检测单元3021检测出游标数量达到预设阈值时,确定应用程序正在调用的服务所占用的内存值满足预设条件。
可选的,还包括:第二处理模块304;
该第二处理模块304被配置为,用于在内存检测模块302检测出应用程序 正在调用的服务所占用的内存值不满足预设条件时,触发提供服务调用请求的服务为应用程序分配新的游标,并在已经为应用程序分配的游标数量的基础上增加预定数值。
可选的,该第一处理模块303被配置为,用于触发提供服务调用请求的服务向操作系统发送调用异常的反馈信息,由操作系统检测到反馈信息后关闭应用程序。
可选的,还包括:第二获取模块305和第三处理模块306;
该第二获取模块305被配置为,用于获取携带有应用程序的程序标识和游标的游标信息的服务释放请求;
该第三处理模块306被配置为,用于触发提供服务释放请求的服务对与游标对应的内存进行回收,并在已经为应用程序分配的游标数量的基础上减小预定数值。
综上所述,本公开提供的服务调用装置,通过获取携带有应用程序的程序标识的服务调用请求;检测应用程序正在调用的服务所占用的内存值是否满足预设条件;若检测出应用程序正在调用的服务所占用的内存值满足预设条件,则触发对应用程序的关闭操作,可以在应用程序请求调用服务时,对由于频繁调用服务而导致服务占用内存值较多的应用程序进行关闭,释放了服务多次占用的大量内存,解决了应用程序频繁调用服务且在调用结束后不释放调用服务所占用的内存导致的服务占用大量内存的问题,达到了释放应用程序调用服务所占内存以提高终端稳定性的效果。
另外,通过检测已经为应用程序分配的游标数量是否达到预设阈值,该游标是操作系统中应用程序已经调用了的各个服务分配的,可以对应用程序调用所有服务所占的总内存值进行监控,以进一步释放被各个服务占用的内存,提高了终端的稳定性。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的一种用于服务调用装置500的示意图。例如,装置500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,装置500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件508,音频组件510,输入/输出(I/O)的接口512,传感器组件514,以及通信组件516。
处理组件502通常控制装置500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器518来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件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的处理器518执行以完成上述服务调用方法。例如,所述非临时性计算机可读存储介质可以是ROM、 随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

服务调用方法、装置及终端.pdf_第1页
第1页 / 共15页
服务调用方法、装置及终端.pdf_第2页
第2页 / 共15页
服务调用方法、装置及终端.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述

《服务调用方法、装置及终端.pdf》由会员分享,可在线阅读,更多相关《服务调用方法、装置及终端.pdf(15页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103914337 A (43)申请公布日 2014.07.09 CN 103914337 A (21)申请号 201410112797.4 (22)申请日 2014.03.24 G06F 9/46(2006.01) G06F 9/48(2006.01) (71)申请人 小米科技有限责任公司 地址 100085 北京市海淀区清河中街 68 号 华润五彩城购物中心二期 13 层 (72)发明人 王文林 杨亮 郑兴平 (74)专利代理机构 北京三高永信知识产权代理 有限责任公司 11138 代理人 刘映东 (54) 发明名称 服务调用方法、 装置及终端 (57) 摘要 本。

2、公开是关于一种服务调用方法、 装置及终 端, 属于计算机技术领域。所述方法包括 : 获取携 带有应用程序的程序标识的服务调用请求 ; 检测 所述应用程序正在调用的服务所占用的内存值是 否满足预设条件 ; 若检测出所述应用程序正在调 用的服务所占用的内存值满足所述预设条件, 则 触发对所述应用程序的关闭操作。 所述装置包括 : 第一获取模块、 内存检测模块和第一处理模块。 本 公开解决了应用程序频繁调用服务且在调用结束 后不释放调用服务所占用的内存导致的服务占用 大量内存的问题, 达到了释放服务调用服务所占 内存以提高终端稳定性的效果。 (51)Int.Cl. 权利要求书 2 页 说明书 9 页。

3、 附图 3 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书9页 附图3页 (10)申请公布号 CN 103914337 A CN 103914337 A 1/2 页 2 1. 一种服务调用方法, 其特征在于, 包括 : 获取携带有应用程序的程序标识的服务调用请求 ; 检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件 ; 若检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件, 则触发对 所述应用程序的关闭操作。 2. 根据权利要求 1 所述的方法, 其特征在于, 所述检测所述应用程序正在调用的服务 所占用的内存值是否满足预设条件, 。

4、包括 : 检测已经为所述应用程序分配的游标的游标数量是否达到预设阈值, 所述游标是提供 所述服务调用请求的服务分配的, 和 / 或, 所述游标是操作系统中所述应用程序已经调用 了的各个服务分配的 ; 若检测出所述游标数量达到所述预设阈值, 则确定所述应用程序正在调用的服务所占 用的内存值满足所述预设条件。 3. 根据权利要求 2 所述的方法, 其特征在于, 还包括 : 若检测出所述应用程序正在调用的服务所占用的内存值不满足所述预设条件, 则触发 提供所述服务调用请求的所述服务为所述应用程序分配新的游标, 并在已经为所述应用程 序分配的游标数量的基础上增加预定数值。 4. 根据权利要求 1 所述。

5、的方法, 其特征在于, 所述触发对所述应用程序的关闭操作, 包 括 : 触发提供所述服务调用请求的服务向操作系统发送调用异常的反馈信息, 由所述操作 系统检测到所述反馈信息后关闭所述应用程序。 5. 根据权利要求 1 至 4 任一项所述的方法, 其特征在于, 还包括 : 获取携带有应用程序的程序标识和游标的游标信息的服务释放请求 ; 触发提供所述服务释放请求的服务对与所述游标对应的内存进行回收, 并在已经为所 述应用程序分配的游标数量的基础上减小预定数值。 6. 一种服务调用装置, 其特征在于, 包括 : 第一获取模块, 用于获取携带有应用程序的程序标识的服务调用请求 ; 内存检测模块, 用于。

6、检测所述应用程序正在调用的服务所占用的内存值是否满足预设 条件 ; 第一处理模块, 用于在所述内存检测模块检测出所述应用程序正在调用的服务所占用 的内存值满足所述预设条件时, 触发对所述应用程序的关闭操作。 7. 根据权利要求 6 所述的装置, 其特征在于, 所述内存检测模块, 包括 : 游标检测单元, 用于检测已经为所述应用程序分配的游标的游标数量是否达到预设阈 值, 所述游标是提供所述服务调用请求的服务分配的, 和 / 或, 所述游标是操作系统中所述 应用程序已经调用了的各个服务分配的 ; 结果确定单元, 用于在所述游标检测单元检测出所述游标数量达到所述预设阈值时, 确定所述应用程序正在调。

7、用的服务所占用的内存值满足所述预设条件。 8. 根据权利要求 7 所述的装置, 其特征在于, 还包括 : 第二处理模块, 用于在所述内存检测模块检测出所述应用程序正在调用的服务所占用 的内存值不满足所述预设条件时, 触发提供所述服务调用请求的所述服务为所述应用程序 权 利 要 求 书 CN 103914337 A 2 2/2 页 3 分配新的游标, 并在已经为所述应用程序分配的游标数量的基础上增加预定数值。 9. 根据权利要求 6 所述的装置, 其特征在于, 所述第一处理模块, 用于触发提供所述服 务调用请求的服务向操作系统发送调用异常的反馈信息, 由所述操作系统检测到所述反馈 信息后关闭所述。

8、应用程序。 10. 根据权利要求 6 至 9 任一项所述的装置, 其特征在于, 还包括 : 第二获取模块, 用于获取携带有应用程序的程序标识和游标的游标信息的服务释放请 求 ; 第三处理模块, 用于触发提供所述服务释放请求的服务对与所述游标对应的内存进行 回收, 并在已经为所述应用程序分配的游标数量的基础上减小预定数值。 11. 一种终端, 其特征在于, 包括 : 处理器 ; 用于存储处理器可执行指令的存储器 ; 其中, 所述处理器被配置为 : 获取携带有应用程序的程序标识的服务调用请求 ; 检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件 ; 若检测出所述应用程序正在调用的服务所。

9、占用的内存值满足所述预设条件, 则触发对 所述应用程序的关闭操作。 权 利 要 求 书 CN 103914337 A 3 1/9 页 4 服务调用方法、 装置及终端 技术领域 0001 本公开涉及计算机技术领域, 特别涉及一种服务调用方法、 装置及终端。 背景技术 0002 为了给用户带来丰富的使用体验, 终端提供了大量的服务的接口供终端中安装的 应用程序使用。由于对这些接口的访问限制很少, 当应用程序通过频繁访问接口来调用服 务时, 给终端的稳定性带来极大的挑战。因此, 终端需要对服务的调用进行限制。 0003 在应用程序调用服务时, 终端获取该应用程序的程序标识 ; 检测该程序标识是否 在。

10、预设的权限列表中, 该权限列表用于存储具有调用服务的权限的应用程序的程序标识 ; 若检测出该程序标识在预设的权限列表中, 则允许该应用程序调用该服务。 0004 发明人在实现本公开的过程中, 发现相关技术中至少存在以下缺陷 : 0005 虽然终端可以通过权限列表对不具有调用服务的权限的应用程序的调用行为进 行限制, 但是, 对于具有调用服务的权限的应用程序, 若该应用程序频繁调用服务且在调用 结束后不释放调用服务所占用的内存, 则多次调用也会导致服务占用大量的内存, 影响终 端的稳定性。 发明内容 0006 为克服应用程序频繁调用服务且在调用结束后不释放调用服务所占用的内存导 致的服务占用大量。

11、内存的问题, 本公开提供了一种服务调用方法、 装置及终端。 0007 根据本公开实施例的第一方面, 提供一种服务调用方法, 包括 : 0008 获取携带有应用程序的程序标识的服务调用请求 ; 0009 检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件 ; 0010 若检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件, 则触 发对所述应用程序的关闭操作。 0011 可选的, 所述检测所述应用程序正在调用的服务所占用的内存值是否满足预设条 件, 包括 : 0012 检测已经为所述应用程序分配的游标的游标数量是否达到预设阈值, 所述游标是 提供所述服务调用请求的服务分配的,。

12、 和 / 或, 所述游标是操作系统中所述应用程序已经 调用了的各个服务分配的 ; 0013 若检测出所述游标数量达到所述预设阈值, 则确定所述应用程序正在调用的服务 所占用的内存值满足所述预设条件。 0014 可选的, 还包括 : 0015 若检测出所述应用程序正在调用的服务所占用的内存值不满足所述预设条件, 则 触发提供所述服务调用请求的所述服务为所述应用程序分配新的游标, 并在已经为所述应 用程序分配的游标数量的基础上增加预定数值。 0016 可选的, 所述触发对所述应用程序的关闭操作, 包括 : 说 明 书 CN 103914337 A 4 2/9 页 5 0017 触发提供所述服务调用。

13、请求的服务向操作系统发送调用异常的反馈信息, 由所述 操作系统检测到所述反馈信息后关闭所述应用程序。 0018 可选的, 还包括 : 0019 获取携带有应用程序的程序标识和游标的游标信息的服务释放请求 ; 0020 触发提供所述服务释放请求的服务对与所述游标对应的内存进行回收, 并在已经 为所述应用程序分配的游标数量的基础上减小预定数值。 0021 根据本公开实施例的第二方面, 提供一种服务调用装置, 包括 : 0022 第一获取模块, 用于获取携带有应用程序的程序标识的服务调用请求 ; 0023 内存检测模块, 用于检测所述应用程序正在调用的服务所占用的内存值是否满足 预设条件 ; 002。

14、4 第一处理模块, 用于在所述内存检测模块检测出所述应用程序正在调用的服务所 占用的内存值满足所述预设条件时, 触发对所述应用程序的关闭操作。 0025 可选的, 所述内存检测模块, 包括 : 0026 游标检测单元, 用于检测已经为所述应用程序分配的游标的游标数量是否达到预 设阈值, 所述游标是提供所述服务调用请求的服务分配的, 和 / 或, 所述游标是操作系统中 所述应用程序已经调用了的各个服务分配的 ; 0027 结果确定单元, 用于在所述游标检测单元检测出所述游标数量达到所述预设阈值 时, 确定所述应用程序正在调用的服务所占用的内存值满足所述预设条件。 0028 可选的, 还包括 : 。

15、0029 第二处理模块, 用于在所述内存检测模块检测出所述应用程序正在调用的服务所 占用的内存值不满足所述预设条件时, 触发提供所述服务调用请求的所述服务为所述应用 程序分配新的游标, 并在已经为所述应用程序分配的游标数量的基础上增加预定数值。 0030 可选的, 所述第一处理模块, 用于触发提供所述服务调用请求的服务向操作系统 发送调用异常的反馈信息, 由所述操作系统检测到所述反馈信息后关闭所述应用程序。 0031 可选的, 还包括 : 0032 第二获取模块, 用于获取携带有应用程序的程序标识和游标的游标信息的服务释 放请求 ; 0033 第三处理模块, 用于触发提供所述服务释放请求的服务。

16、对与所述游标对应的内存 进行回收, 并在已经为所述应用程序分配的游标数量的基础上减小预定数值。 0034 根据本公开实施例的第三方面, 提供一种终端, 包括 : 0035 处理器 ; 0036 用于存储处理器可执行指令的存储器 ; 0037 其中, 所述处理器被配置为 : 0038 获取携带有应用程序的程序标识的服务调用请求 ; 0039 检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件 ; 0040 若检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件, 则触 发对所述应用程序的关闭操作。 0041 本公开的实施例提供的技术方案可以包括以下有益效果 : 0042 通过。

17、获取携带有应用程序的程序标识的服务调用请求 ; 检测应用程序正在调用的 说 明 书 CN 103914337 A 5 3/9 页 6 服务所占用的内存值是否满足预设条件 ; 若检测出应用程序正在调用的服务所占用的内存 值满足预设条件, 则触发对应用程序的关闭操作, 可以在应用程序请求调用服务时, 对由于 频繁调用服务而导致服务占用内存值较多的应用程序进行关闭, 释放了服务多次占用的大 量内存, 解决了应用程序频繁调用服务且在调用结束后不释放调用服务所占用的内存导致 的服务占用大量内存的问题, 达到了释放应用程序调用服务所占内存以提高终端稳定性的 效果。 0043 应当理解的是, 以上的一般描述。

18、和后文的细节描述仅是示例性的, 并不能限制本 公开。 附图说明 0044 此处的附图被并入说明书中并构成本说明书的一部分, 示出了符合本发明的实施 例, 并于说明书一起用于解释本发明的原理。 0045 图 1 是根据一示例性实施例示出的一种服务调用方法的流程图 ; 0046 图 2 是根据另一示例性实施例示出的一种服务调用方法的流程图 ; 0047 图 3 是根据一示例性实施例示出的一种服务调用装置的示意图 ; 0048 图 4 是根据再一示例性实施例示出的一种服务调用装置的示意图 ; 0049 图 5 是根据一示例性实施例示出的一种服务调用装置的示意图。 具体实施方式 0050 这里将详细地。

19、对示例性实施例进行说明, 其示例表示在附图中。下面的描述涉及 附图时, 除非另有表示, 不同附图中的相同数字表示相同或相似的要素。 以下示例性实施例 中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反, 它们仅是与如所附 权利要求书中所详述的、 本发明的一些方面相一致的装置和方法的例子。 0051 图1是根据一示例性实施例示出的一种服务调用方法的流程图, 如图1所示, 服务 调用方法应用于终端中, 包括以下步骤。 0052 在步骤 101 中, 获取携带有应用程序的程序标识的服务调用请求。 0053 服务调用请求是应用程序发送给服务, 由服务提供的。 其中, 服务是终端所提供的 功能。

20、, 包括系统服务和非系统服务。 系统服务可以是短信服务和联系人服务等等, 非系统服 务可以是游戏服务和支付服务等等。 0054 在步骤 102 中, 检测应用程序正在调用的服务所占用的内存值是否满足预设条 件。 0055 本实施例中, 可以根据服务调用请求中所携带的程序标识查找该应用程序正在调 用的服务所占用的内存值, 并检测该内存值是否满足预设条件。 0056 在步骤 103 中, 若检测出应用程序正在调用的服务所占用的内存值满足预设条 件, 则触发对应用程序的关闭操作。 0057 若应用程序正在调用的服务所占用的内存值满足预设条件, 则可以直接触发对应 用程序的关闭操作, 或, 触发显示应。

21、用程序占用内存大的提示信息, 由用户根据提示信息关 闭应用程序。 0058 综上所述, 本公开提供的服务调用方法, 通过获取携带有应用程序的程序标识的 说 明 书 CN 103914337 A 6 4/9 页 7 服务调用请求 ; 检测应用程序正在调用的服务所占用的内存值是否满足预设条件 ; 若检测 出应用程序正在调用的服务所占用的内存值满足预设条件, 则触发对应用程序的关闭操 作, 可以在应用程序请求调用服务时, 对由于频繁调用服务而导致服务占用内存值较多的 应用程序进行关闭, 释放了服务多次占用的大量内存, 解决了应用程序频繁调用服务且在 调用结束后不释放调用服务所占用的内存导致的服务占用。

22、大量内存的问题, 达到了释放应 用程序调用服务所占内存以提高终端稳定性的效果。 0059 图2是根据另一示例性实施例示出的一种服务调用方法的流程图, 如图2所示, 服 务调用方法应用于终端中, 包括如下步骤。 0060 在步骤 201 中, 获取携带有应用程序的程序标识的服务调用请求。 0061 应用程序获取请求调用的服务的服务标识和自身的程序标识, 生成携带有服务标 识和程序标识的服务调用请求, 并通过终端的操作系统提供的 query 函数向操作系统发送 该服务调用请求, 操作系统根据服务标识确定该应用程序请求调用的服务, 将该服务调用 请求发送给该服务, 由服务提供该服务调用请求。其中, 。

23、服务是终端所提供的功能, 包括系 统服务和非系统服务。系统服务可以是短信服务和联系人服务等等, 非系统服务可以是游 戏服务和支付服务等等。 0062 在步骤 202 中, 检测应用程序正在调用的服务所占用的内存值是否满足预设条 件 ; 若检测出应用程序正在调用的服务所占用的内存值满足预设条件, 则执行步骤 203 ; 若 检测出应用程序正在调用的服务所占用的内存值不满足预设条件, 则执行步骤 204。 0063 在应用程序调用服务时, 该服务会为应用程序分配预定大小的内存, 若应用程序 在调用结束后不释放该服务, 则该内存不能被其他服务占用。当应用程序频繁调用服务且 在调用结束后不释放服务, 。

24、则会导致服务占用大量内存, 使得该服务的运行和响应缓慢, 甚 至于出现服务崩溃的问题, 影响了终端的稳定性。 0064 因此, 在服务为应用程序分配内存之前, 可以根据服务调用请求中所携带的程序 标识确定应用程序, 并对应用程序正在调用的服务所占用的内存是否满足预设条件进行检 测。若检测出应用程序正在调用的服务所占用的内存满足预设条件, 则确定被应用程序调 用的服务所占用的内存较多, 此时执行步骤 203 ; 若检测出应用程序正在调用的服务所占 用的内存不满足预设条件, 则确定被应用程序调用的服务所占用的内存较少, 此时执行步 骤 204。 0065 本实施例中, 检测应用程序正在调用的服务所。

25、占用的内存值是否满足预设条件, 包括 : 0066 1) 检测已经为应用程序分配的游标 (Cursor) 的游标数量是否达到预设阈值, 该游 标是提供服务调用请求的服务分配的, 和 / 或, 游标是操作系统中应用程序已经调用了的 各个服务分配的 ; 0067 2) 若检测出游标数量达到预设阈值, 则确定应用程序正在调用的服务所占用的内 存值满足预设条件。 0068 服务在为应用程序分配了预定大小的内存后, 会向应用程序返回一个游标, 该游 标用于指示分配的内存的首地址。因此, 对应用程序正在调用的服务所占用的内存值可以 通过已经为应用程序分配的游标的游标数量体现。 其中, 服务可以通过Curs。

26、orWindow.java 类中的 RecordNewWindow 方法分配游标。 说 明 书 CN 103914337 A 7 5/9 页 8 0069 本实施例中, 可以对每一个服务为应用程序所分配的游标的游标数量进行统计, 得到与单个服务对应的映射表, 该映射表可以包括至少一个程序标识和该服务为每一个应 用程序分配的游标的游标数量的映射关系。或者, 还可以对各个服务为应用程序所分配的 游标的游标数量进行统计, 得到与所有服务对应的映射表, 该映射表可以包括至少一个程 序标识和各个服务为每一个应用程序分配的游标的游标数量总和的映射关系。 0070 进一步地, 为了节省映射表所占用的内存, 。

27、可以对每一个映射关系进行哈希计算, 在映射表中存储计算得到的各个哈希值。 0071 在步骤 203 中, 触发对应用程序的关闭操作。 0072 其中, 触发对应用程序的关闭操作, 包括 : 0073 触发提供服务调用请求的服务向操作系统发送调用异常的反馈信息, 由操作系统 检测到反馈信息后关闭应用程序。 0074 若应用程序正在调用的服务所占用的内存值满足预设条件, 则可以向提供该服务 调用请求的服务发送应用程序正在调用的服务所占用的内存值满足预设条件的指示信息, 该服务根据该指示信息生成调用异常的反馈信息, 将该反馈信息发送给操作系统, 操作系 统向 query 函数发送该反馈信息。 007。

28、5 若反馈信息中携带有 IllegalStateException 参数, 则 query 函数可以检测该反 馈信息的异常类型。其中, 该 IllegalStateException 参数中字符串的数值用于指示异常 类型。 0076 若 query 函数检测出异常类型是应用程序正在调用的服务所占用的内存值满足 预设条件, 则直接触发 System.exit 对应用程序进行关闭操作, 或, 触发显示应用程序占用 内存大的提示信息, 由用户根据提示信息关闭应用程序。 0077 在步骤 204 中, 触发提供服务调用请求的服务为应用程序分配新的游标, 并在已 经为应用程序分配的游标数量的基础上增加预。

29、定数值。 0078 若应用程序正在调用的服务所占用的内存值不满足预设条件, 则可以向提供该服 务调用请求的服务发送应用程序正在调用的服务所占用的内存值不满足预设条件的指示 信息, 该服务根据该指示信息为应用程序分配预定大小的内存, 并生成一个新的游标, 将该 游标发送给操作系统, 操作系统向 query 函数发送该游标, query 函数向应用程序发送该游 标, 应用程序根据接收到的游标调用该服务。 0079 进一步地, 在服务为应用程序分配新的游标时, 还可以对映射表中与该应用程序 对应的映射关系进行更新。 即, 在已经为应用程序分配的游标数量的基础上增加预定数值, 对程序标识和增加后的游标。

30、数量之间的映射关系重新进行哈希计算, 将计算得到的哈希值 存储在映射表中。 0080 需要补充说明的是, 还包括 : 0081 获取携带有应用程序的程序标识和游标的游标信息的服务释放请求 ; 0082 触发提供服务释放请求的服务对与游标对应的内存进行回收, 并在已经为应用程 序分配的游标数量的基础上减小预定数值。 0083 若应用程序结束了对服务的调用, 则可以获取请求释放的服务的服务标识、 自身 的程序标识和该服务分配的游标的游标标识, 生成携带有服务标识、 程序标识和游标标识 的服务释放请求, 并通过终端的操作系统提供的 query 函数向操作系统发送该服务释放请 说 明 书 CN 103。

31、914337 A 8 6/9 页 9 求, 操作系统根据服务标识确定该应用程序请求释放的服务, 将该服务释放请求发送给该 服务, 由服务提供该服务释放请求。 0084 在获取到服务释放请求后, 可以向提供该服务释放请求的服务发送释放游标标识 指示的内存的指示信息, 该服务根据该指示信息对与游标对应的内存进行回收, 完成对服 务的释放。其中, 服务可以通过 CursorWindow.java 类中的 RecordClosingOfWindow 方法 回收内存。 0085 进一步地, 在服务对内存进行回收时, 还可以对映射表中与该应用程序对应的映 射关系进行更新。 即, 在已经为应用程序分配的游标。

32、数量的基础上减少预定数值, 对程序标 识和减少后的游标数量之间的映射关系重新进行哈希计算, 将计算得到的哈希值存储在映 射表中。 0086 综上所述, 本公开提供的服务调用方法, 通过获取携带有应用程序的程序标识的 服务调用请求 ; 检测应用程序正在调用的服务所占用的内存值是否满足预设条件 ; 若检测 出应用程序正在调用的服务所占用的内存值满足预设条件, 则触发对应用程序的关闭操 作, 可以在应用程序请求调用服务时, 对由于频繁调用服务而导致服务占用内存值较多的 应用程序进行关闭, 释放了服务多次占用的大量内存, 解决了应用程序频繁调用服务且在 调用结束后不释放调用服务所占用的内存导致的服务占。

33、用大量内存的问题, 达到了释放应 用程序调用服务所占内存以提高终端稳定性的效果。 0087 另外, 通过检测已经为应用程序分配的游标数量是否达到预设阈值, 该游标是操 作系统中应用程序已经调用了的各个服务分配的, 可以对应用程序调用所有服务所占的总 内存值进行监控, 以进一步释放被各个服务占用的内存, 提高了终端的稳定性。 0088 图3是根据一示例性实施例示出的一种服务调用装置的示意图, 如图3所示, 服务 调用装置应用于终端中, 包括 : 第一获取模块 301、 内存检测模块 302 和第一处理模块 303。 0089 该第一获取模块 301 被配置为, 用于获取携带有应用程序的程序标识的。

34、服务调用 请求 ; 0090 该内存检测模块 302 被配置为, 用于检测应用程序正在调用的服务所占用的内存 值是否满足预设条件 ; 0091 该第一处理模块 303 被配置为, 用于在内存检测模块检测出应用程序正在调用的 服务所占用的内存值满足预设条件时, 触发对应用程序的关闭操作。 0092 综上所述, 本公开提供的服务调用装置, 通过获取携带有应用程序的程序标识的 服务调用请求 ; 检测应用程序正在调用的服务所占用的内存值是否满足预设条件 ; 若检测 出应用程序正在调用的服务所占用的内存值满足预设条件, 则触发对应用程序的关闭操 作, 可以在应用程序请求调用服务时, 对由于频繁调用服务而。

35、导致服务占用内存值较多的 应用程序进行关闭, 释放了服务多次占用的大量内存, 解决了应用程序频繁调用服务且在 调用结束后不释放调用服务所占用的内存导致的服务占用大量内存的问题, 达到了释放应 用程序调用服务所占内存以提高终端稳定性的效果。 0093 图4是根据一示例性实施例示出的一种服务调用装置的示意图, 如图4所示, 服务 调用装置应用于终端中, 包括 : 第一获取模块 301、 内存检测模块 302 和第一处理模块 303。 0094 该第一获取模块 301 被配置为, 用于获取携带有应用程序的程序标识的服务调用 请求 ; 说 明 书 CN 103914337 A 9 7/9 页 10 0。

36、095 该内存检测模块 302 被配置为, 用于检测应用程序正在调用的服务所占用的内存 值是否满足预设条件 ; 0096 该第一处理模块 303 被配置为, 用于在内存检测模块检测出应用程序正在调用的 服务所占用的内存值满足预设条件时, 触发对应用程序的关闭操作。 0097 可选的, 内存检测模块 302, 包括 : 游标检测单元 3021 和结果确定单元 3022 ; 0098 该游标检测单元 3021 被配置为, 用于检测已经为应用程序分配的游标的游标数 量是否达到预设阈值, 游标是提供服务调用请求的服务分配的, 和 / 或, 游标是操作系统中 应用程序已经调用了的各个服务分配的 ; 00。

37、99 该结果确定单元 3022 被配置为, 用于在游标检测单元 3021 检测出游标数量达到 预设阈值时, 确定应用程序正在调用的服务所占用的内存值满足预设条件。 0100 可选的, 还包括 : 第二处理模块 304 ; 0101 该第二处理模块 304 被配置为, 用于在内存检测模块 302 检测出应用程序正在调 用的服务所占用的内存值不满足预设条件时, 触发提供服务调用请求的服务为应用程序分 配新的游标, 并在已经为应用程序分配的游标数量的基础上增加预定数值。 0102 可选的, 该第一处理模块 303 被配置为, 用于触发提供服务调用请求的服务向操 作系统发送调用异常的反馈信息, 由操作。

38、系统检测到反馈信息后关闭应用程序。 0103 可选的, 还包括 : 第二获取模块 305 和第三处理模块 306 ; 0104 该第二获取模块 305 被配置为, 用于获取携带有应用程序的程序标识和游标的游 标信息的服务释放请求 ; 0105 该第三处理模块 306 被配置为, 用于触发提供服务释放请求的服务对与游标对应 的内存进行回收, 并在已经为应用程序分配的游标数量的基础上减小预定数值。 0106 综上所述, 本公开提供的服务调用装置, 通过获取携带有应用程序的程序标识的 服务调用请求 ; 检测应用程序正在调用的服务所占用的内存值是否满足预设条件 ; 若检测 出应用程序正在调用的服务所占。

39、用的内存值满足预设条件, 则触发对应用程序的关闭操 作, 可以在应用程序请求调用服务时, 对由于频繁调用服务而导致服务占用内存值较多的 应用程序进行关闭, 释放了服务多次占用的大量内存, 解决了应用程序频繁调用服务且在 调用结束后不释放调用服务所占用的内存导致的服务占用大量内存的问题, 达到了释放应 用程序调用服务所占内存以提高终端稳定性的效果。 0107 另外, 通过检测已经为应用程序分配的游标数量是否达到预设阈值, 该游标是操 作系统中应用程序已经调用了的各个服务分配的, 可以对应用程序调用所有服务所占的总 内存值进行监控, 以进一步释放被各个服务占用的内存, 提高了终端的稳定性。 010。

40、8 关于上述实施例中的装置, 其中各个模块执行操作的具体方式已经在有关该方法 的实施例中进行了详细描述, 此处将不做详细阐述说明。 0109 图 5 是根据一示例性实施例示出的一种用于服务调用装置 500 的示意图。例如, 装置 500 可以是移动电话, 计算机, 数字广播终端, 消息收发设备, 游戏控制台, 平板设备, 医疗设备, 健身设备, 个人数字助理等。 0110 参照图 5, 装置 500 可以包括以下一个或多个组件 : 处理组件 502, 存储器 504, 电 源组件 506, 多媒体组件 508, 音频组件 510, 输入 / 输出 (I/O) 的接口 512, 传感器组件 51。

41、4, 以及通信组件 516。 说 明 书 CN 103914337 A 10 8/9 页 11 0111 处理组件502通常控制装置500的整体操作, 诸如与显示, 电话呼叫, 数据通信, 相 机操作和记录操作相关联的操作。处理组件 502 可以包括一个或多个处理器 518 来执行指 令, 以完成上述的方法的全部或部分步骤。此外, 处理组件 502 可以包括一个或多个模块, 便于处理组件 502 和其他组件之间的交互。例如, 处理组件 502 可以包括多媒体模块, 以方 便多媒体组件 508 和处理组件 502 之间的交互。 0112 存储器 504 被配置为存储各种类型的数据以支持在装置 5。

42、00 的操作。这些数据的 示例包括用于在装置 500 上操作的任何应用程序或方法的指令, 联系人数据, 电话簿数据, 消息, 图片, 视频等。存储器 504 可以由任何类型的易失性或非易失性存储设备或者它们的 组合实现, 如静态随机存取存储器 (SRAM) , 电可擦除可编程只读存储器 (EEPROM) , 可擦除 可编程只读存储器 (EPROM) , 可编程只读存储器 (PROM) , 只读存储器 (ROM) , 磁存储器, 快闪 存储器, 磁盘或光盘。 0113 电源组件 506 为装置 500 的各种组件提供电力。电源组件 506 可以包括电源管理 系统, 一个或多个电源, 及其他与为装。

43、置 500 生成、 管理和分配电力相关联的组件。 0114 多媒体组件 508 包括在所述装置 500 和用户之间的提供一个输出接口的屏幕。在 一些实施例中, 屏幕可以包括液晶显示器 (LCD) 和触摸面板 (TP) 。如果屏幕包括触摸面板, 屏幕可以被实现为触摸屏, 以接收来自用户的输入信号。触摸面板包括一个或多个触摸传 感器以感测触摸、 滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动 作的边界, 而且还检测与所述触摸或滑动操作相关的持续时间和压力。 在一些实施例中, 多 媒体组件 508 包括一个前置摄像头和 / 或后置摄像头。当装置 500 处于操作模式, 如拍摄 模式或。

44、视频模式时, 前置摄像头和 / 或后置摄像头可以接收外部的多媒体数据。每个前置 摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。 0115 音频组件 510 被配置为输出和 / 或输入音频信号。例如, 音频组件 510 包括一个 麦克风 (MIC) , 当装置 500 处于操作模式, 如呼叫模式、 记录模式和语音识别模式时, 麦克风 被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器 504 或经由通 信组件 516 发送。在一些实施例中, 音频组件 510 还包括一个扬声器, 用于输出音频信号。 0116 I/O接口512为处理组件502和外围接口模块。

45、之间提供接口, 上述外围接口模块可 以是键盘, 点击轮, 按钮等。这些按钮可包括但不限于 : 主页按钮、 音量按钮、 启动按钮和锁 定按钮。 0117 传感器组件 514 包括一个或多个传感器, 用于为装置 500 提供各个方面的状态评 估。例如, 传感器组件 514 可以检测到装置 500 的打开 / 关闭状态, 组件的相对定位, 例如 所述组件为装置 500 的显示器和小键盘, 传感器组件 514 还可以检测装置 500 或装置 500 一个组件的位置改变, 用户与装置 500 接触的存在或不存在, 装置 500 方位或加速 / 减速和 装置 500 的温度变化。传感器组件 514 可以包。

46、括接近传感器, 被配置用来在没有任何的物 理接触时检测附近物体的存在。传感器组件 514 还可以包括光传感器, 如 CMOS 或 CCD 图像 传感器, 用于在成像应用中使用。在一些实施例中, 该传感器组件 514 还可以包括加速度传 感器, 陀螺仪传感器, 磁传感器, 压力传感器或温度传感器。 0118 通信组件 516 被配置为便于装置 500 和其他设备之间有线或无线方式的通信。装 置500可以接入基于通信标准的无线网络, 如WiFi, 2G或3G, 或它们的组合。 在一个示例性 实施例中, 通信组件 516 经由广播信道接收来自外部广播管理系统的广播信号或广播相关 说 明 书 CN 1。

47、03914337 A 11 9/9 页 12 信息。在一个示例性实施例中, 所述通信组件 516 还包括近场通信 (NFC) 模块, 以促进短程 通信。例如, 在 NFC 模块可基于射频识别 (RFID) 技术, 红外数据协会 (IrDA) 技术, 超宽带 (UWB) 技术, 蓝牙 (BT) 技术和其他技术来实现。 0119 在示例性实施例中, 装置 500 可以被一个或多个应用专用集成电路 (ASIC) 、 数字 信号处理器 (DSP) 、 数字信号处理设备 (DSPD) 、 可编程逻辑器件 (PLD) 、 现场可编程门阵列 (FPGA) 、 控制器、 微控制器、 微处理器或其他电子元件实现。

48、, 用于执行上述服务调用方法。 0120 在示例性实施例中, 还提供了一种包括指令的非临时性计算机可读存储介质, 例 如包括指令的存储器504, 上述指令可由装置500的处理器518执行以完成上述服务调用方 法。例如, 所述非临时性计算机可读存储介质可以是 ROM、 随机存取存储器 (RAM) 、 CD-ROM、 磁带、 软盘和光数据存储设备等。 0121 本领域技术人员在考虑说明书及实践这里公开的发明后, 将容易想到本发明的其 它实施方案。本申请旨在涵盖本发明的任何变型、 用途或者适应性变化, 这些变型、 用途或 者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识 或惯用技术手段。说明书和实施例仅被视为示例性的, 本发明的真正范围和精神由下面的 权利要求指出。 0122 应当理解的是, 本发明并不局限于上面已经描述并在附图中示出的精确结构, 并 且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。 说 明 书 CN 103914337 A 12 1/3 页 13 图 1 图 2 图 3 说 明 书 附 图 CN 103914337 A 13 2/3 页 14 图 4 说 明 书 附 图 CN 103914337 A 14 3/3 页 15 图 5 说 明 书 附 图 CN 103914337 A 15 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1