CN103914337B - 服务调用方法、装置及终端 - Google Patents

服务调用方法、装置及终端 Download PDF

Info

Publication number
CN103914337B
CN103914337B CN201410112797.4A CN201410112797A CN103914337B CN 103914337 B CN103914337 B CN 103914337B CN 201410112797 A CN201410112797 A CN 201410112797A CN 103914337 B CN103914337 B CN 103914337B
Authority
CN
China
Prior art keywords
service
application program
vernier
conditioned
shared
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.)
Active
Application number
CN201410112797.4A
Other languages
English (en)
Other versions
CN103914337A (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.)
Xiaomi Inc
Original Assignee
Xiaomi Inc
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 Xiaomi Inc filed Critical Xiaomi Inc
Priority to CN201410112797.4A priority Critical patent/CN103914337B/zh
Publication of CN103914337A publication Critical patent/CN103914337A/zh
Application granted granted Critical
Publication of CN103914337B publication Critical patent/CN103914337B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

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

Description

服务调用方法、装置及终端
技术领域
本公开涉及计算机技术领域,特别涉及一种服务调用方法、装置及终端。
背景技术
为了给用户带来丰富的使用体验,终端提供了大量的服务的接口供终端中安装的应用程序使用。由于对这些接口的访问限制很少,当应用程序通过频繁访问接口来调用服务时,给终端的稳定性带来极大的挑战。因此,终端需要对服务的调用进行限制。
在应用程序调用服务时,终端获取该应用程序的程序标识;检测该程序标识是否在预设的权限列表中,该权限列表用于存储具有调用服务的权限的应用程序的程序标识;若检测出该程序标识在预设的权限列表中,则允许该应用程序调用该服务。
发明人在实现本公开的过程中,发现相关技术中至少存在以下缺陷:
虽然终端可以通过权限列表对不具有调用服务的权限的应用程序的调用行为进行限制,但是,对于具有调用服务的权限的应用程序,若该应用程序频繁调用服务且在调用结束后不释放调用服务所占用的内存,则多次调用也会导致服务占用大量的内存,影响终端的稳定性。
发明内容
为克服应用程序频繁调用服务且在调用结束后不释放调用服务所占用的内存导致的服务占用大量内存的问题,本公开提供了一种服务调用方法、装置及终端。
根据本公开实施例的第一方面,提供一种服务调用方法,包括:
获取携带有应用程序的程序标识的服务调用请求;
检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件;
若检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件,则触发对所述应用程序的关闭操作;
其中,所述触发对所述应用程序的关闭操作,包括:触发提供所述服务调用请求的服务向操作系统发送调用异常的反馈信息,由所述操作系统检测到所述反馈信息后关闭所述应用程序,所述应用程序由System.exit关闭。
可选的,所述检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件,包括:
检测已经为所述应用程序分配的游标的游标数量是否达到预设阈值,所述游标是提供所述服务调用请求的服务分配的,和/或,所述游标是操作系统中所述应用程序已经调用了的各个服务分配的;
若检测出所述游标数量达到所述预设阈值,则确定所述应用程序正在调用的服务所占用的内存值满足所述预设条件。
可选的,还包括:
若检测出所述应用程序正在调用的服务所占用的内存值不满足所述预设条件,则触发提供所述服务调用请求的所述服务为所述应用程序分配新的游标,并在已经为所述应用程序分配的游标数量的基础上增加预定数值。
可选的,还包括:
获取携带有应用程序的程序标识和游标的游标信息的服务释放请求;
触发提供所述服务释放请求的服务对与所述游标对应的内存进行回收,并在已经为所述应用程序分配的游标数量的基础上减小预定数值。
根据本公开实施例的第二方面,提供一种服务调用装置,包括:
第一获取模块,用于获取携带有应用程序的程序标识的服务调用请求;
内存检测模块,用于检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件;
第一处理模块,用于在所述内存检测模块检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件时,触发对所述应用程序的关闭操作;
其中,所述第一处理模块,用于触发提供所述服务调用请求的服务向操作系统发送调用异常的反馈信息,由所述操作系统检测到所述反馈信息后关闭所述应用程序,所述应用程序由System.exit关闭。
可选的,所述内存检测模块,包括:
游标检测单元,用于检测已经为所述应用程序分配的游标的游标数量是否达到预设阈值,所述游标是提供所述服务调用请求的服务分配的,和/或,所述游标是操作系统中所述应用程序已经调用了的各个服务分配的;
结果确定单元,用于在所述游标检测单元检测出所述游标数量达到所述预设阈值时,确定所述应用程序正在调用的服务所占用的内存值满足所述预设条件。
可选的,还包括:
第二处理模块,用于在所述内存检测模块检测出所述应用程序正在调用的服务所占用的内存值不满足所述预设条件时,触发提供所述服务调用请求的所述服务为所述应用程序分配新的游标,并在已经为所述应用程序分配的游标数量的基础上增加预定数值。
可选的,还包括:
第二获取模块,用于获取携带有应用程序的程序标识和游标的游标信息的服务释放请求;
第三处理模块,用于触发提供所述服务释放请求的服务对与所述游标对应的内存进行回收,并在已经为所述应用程序分配的游标数量的基础上减小预定数值。
根据本公开实施例的第三方面,提供一种终端,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取携带有应用程序的程序标识的服务调用请求;
检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件;
若检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件,则触发对所述应用程序的关闭操作;
其中,所述触发对所述应用程序的关闭操作,包括:触发提供所述服务调用请求的服务向操作系统发送调用异常的反馈信息,由所述操作系统检测到所述反馈信息后关闭所述应用程序,所述应用程序由System.exit关闭。
本公开的实施例提供的技术方案可以包括以下有益效果:
通过获取携带有应用程序的程序标识的服务调用请求;检测应用程序正在调用的服务所占用的内存值是否满足预设条件;若检测出应用程序正在调用的服务所占用的内存值满足预设条件,则触发对应用程序的关闭操作,可以在应用程序请求调用服务时,对由于频繁调用服务而导致服务占用内存值较多的应用程序进行关闭,释放了服务多次占用的大量内存,解决了应用程序频繁调用服务且在调用结束后不释放调用服务所占用的内存导致的服务占用大量内存的问题,达到了释放应用程序调用服务所占内存以提高终端稳定性的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图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、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (9)

1.一种服务调用方法,其特征在于,包括:
获取携带有应用程序的程序标识的服务调用请求;
检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件;
若检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件,则触发对所述应用程序的关闭操作;
其中,所述触发对所述应用程序的关闭操作,包括:触发提供所述服务调用请求的服务向操作系统发送调用异常的反馈信息,由所述操作系统检测到所述反馈信息后关闭所述应用程序,所述应用程序由System.exit关闭。
2.根据权利要求1所述的方法,其特征在于,所述检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件,包括:
检测已经为所述应用程序分配的游标的游标数量是否达到预设阈值,所述游标是提供所述服务调用请求的服务分配的,和/或,所述游标是操作系统中所述应用程序已经调用了的各个服务分配的;
若检测出所述游标数量达到所述预设阈值,则确定所述应用程序正在调用的服务所占用的内存值满足所述预设条件。
3.根据权利要求2所述的方法,其特征在于,还包括:
若检测出所述应用程序正在调用的服务所占用的内存值不满足所述预设条件,则触发提供所述服务调用请求的所述服务为所述应用程序分配新的游标,并在已经为所述应用程序分配的游标数量的基础上增加预定数值。
4.根据权利要求1至3任一项所述的方法,其特征在于,还包括:
获取携带有应用程序的程序标识和游标的游标信息的服务释放请求;
触发提供所述服务释放请求的服务对与所述游标对应的内存进行回收,并在已经为所述应用程序分配的游标数量的基础上减小预定数值。
5.一种服务调用装置,其特征在于,包括:
第一获取模块,用于获取携带有应用程序的程序标识的服务调用请求;
内存检测模块,用于检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件;
第一处理模块,用于在所述内存检测模块检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件时,触发对所述应用程序的关闭操作;
其中,所述第一处理模块,用于触发提供所述服务调用请求的服务向操作系统发送调用异常的反馈信息,由所述操作系统检测到所述反馈信息后关闭所述应用程序,所述应用程序由System.exit关闭。
6.根据权利要求5所述的装置,其特征在于,所述内存检测模块,包括:
游标检测单元,用于检测已经为所述应用程序分配的游标的游标数量是否达到预设阈值,所述游标是提供所述服务调用请求的服务分配的,和/或,所述游标是操作系统中所述应用程序已经调用了的各个服务分配的;
结果确定单元,用于在所述游标检测单元检测出所述游标数量达到所述预设阈值时,确定所述应用程序正在调用的服务所占用的内存值满足所述预设条件。
7.根据权利要求6所述的装置,其特征在于,还包括:
第二处理模块,用于在所述内存检测模块检测出所述应用程序正在调用的服务所占用的内存值不满足所述预设条件时,触发提供所述服务调用请求的所述服务为所述应用程序分配新的游标,并在已经为所述应用程序分配的游标数量的基础上增加预定数值。
8.根据权利要求5至7任一项所述的装置,其特征在于,还包括:
第二获取模块,用于获取携带有应用程序的程序标识和游标的游标信息的服务释放请求;
第三处理模块,用于触发提供所述服务释放请求的服务对与所述游标对应的内存进行回收,并在已经为所述应用程序分配的游标数量的基础上减小预定数值。
9.一种终端,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取携带有应用程序的程序标识的服务调用请求;
检测所述应用程序正在调用的服务所占用的内存值是否满足预设条件;
若检测出所述应用程序正在调用的服务所占用的内存值满足所述预设条件,则触发对所述应用程序的关闭操作;
其中,所述触发对所述应用程序的关闭操作,包括:触发提供所述服务调用请求的服务向操作系统发送调用异常的反馈信息,由所述操作系统检测到所述反馈信息后关闭所述应用程序,所述应用程序由System.exit关闭。
CN201410112797.4A 2014-03-24 2014-03-24 服务调用方法、装置及终端 Active CN103914337B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410112797.4A CN103914337B (zh) 2014-03-24 2014-03-24 服务调用方法、装置及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410112797.4A CN103914337B (zh) 2014-03-24 2014-03-24 服务调用方法、装置及终端

Publications (2)

Publication Number Publication Date
CN103914337A CN103914337A (zh) 2014-07-09
CN103914337B true CN103914337B (zh) 2016-04-13

Family

ID=51040042

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410112797.4A Active CN103914337B (zh) 2014-03-24 2014-03-24 服务调用方法、装置及终端

Country Status (1)

Country Link
CN (1) CN103914337B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105148516A (zh) * 2015-06-25 2015-12-16 四川天上友嘉网络科技有限公司 网络游戏加速方法
CN106354562B (zh) * 2016-08-25 2024-04-12 深圳市泰衡诺科技有限公司 内存清理系统和内存清理方法
CN107145582B (zh) * 2017-05-09 2022-01-04 深圳Tcl新技术有限公司 数据库游标的控制方法与数据库系统
CN110489171A (zh) * 2018-05-11 2019-11-22 珠海市魅族科技有限公司 移动终端控制方法、移动终端及存储介质
CN109343961B (zh) * 2018-10-12 2021-07-09 Oppo广东移动通信有限公司 内存信息的处理方法、装置、存储介质及终端
CN111399934A (zh) * 2020-02-21 2020-07-10 中国建设银行股份有限公司 一种管理自动程序的方法和装置
CN115016922B (zh) * 2021-12-01 2023-03-24 荣耀终端有限公司 一种行为识别方法及电子设备
CN115525657B (zh) * 2022-10-12 2023-07-11 合肥九韶智能科技有限公司 一种可扩展的网络请求消息和转发系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880529A (zh) * 2012-09-13 2013-01-16 新浪网技术(中国)有限公司 内存数据备份方法及内存数据备份系统
CN103218360A (zh) * 2012-01-18 2013-07-24 中国石油天然气集团公司 工业实时数据库采用内存池技术实现动态内存管理的方法
CN103324500A (zh) * 2013-05-06 2013-09-25 广州市动景计算机科技有限公司 一种回收内存的方法及装置
CN103488577A (zh) * 2013-09-22 2014-01-01 北京航空航天大学 一种基于用途编号的用户程序内存分配及批量回收的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218360A (zh) * 2012-01-18 2013-07-24 中国石油天然气集团公司 工业实时数据库采用内存池技术实现动态内存管理的方法
CN102880529A (zh) * 2012-09-13 2013-01-16 新浪网技术(中国)有限公司 内存数据备份方法及内存数据备份系统
CN103324500A (zh) * 2013-05-06 2013-09-25 广州市动景计算机科技有限公司 一种回收内存的方法及装置
CN103488577A (zh) * 2013-09-22 2014-01-01 北京航空航天大学 一种基于用途编号的用户程序内存分配及批量回收的方法及装置

Also Published As

Publication number Publication date
CN103914337A (zh) 2014-07-09

Similar Documents

Publication Publication Date Title
CN103914337B (zh) 服务调用方法、装置及终端
WO2017071068A1 (zh) 应用程序切换方法、装置及设备
CN104991789A (zh) 应用程序开启方法和装置
CN105549849A (zh) 处理误操作指令的方法及装置
CN104238875A (zh) 应用程序角标添加方法及装置
CN104375828A (zh) 内存优化方法及装置
CN104503689A (zh) 应用界面显示方法及装置
CN106201292A (zh) 终端防误触方法和装置
CN104598111A (zh) 切换显示模式的方法及装置
CN104391632A (zh) 内存清理的方法及装置
CN104298547A (zh) 终端设置方法及装置
CN105224349A (zh) 应用程序的删除提示方法和装置
CN105511686A (zh) 来电处理方法、装置及终端电子设备
CN104376273A (zh) 一种数据访问控制方法和装置
CN107643818B (zh) 功能开启方法及装置
CN104238912A (zh) 应用控制方法及装置
CN105739857A (zh) 控制移动终端的方法及装置
CN105353901A (zh) 对触摸操作进行有效性判断的方法及装置
CN106033397A (zh) 内存缓冲区调整方法、装置及终端
CN105335062A (zh) 信息编辑操作处理方法及装置
CN104243829A (zh) 自拍的方法及装置
CN105554255A (zh) 用于终端设备的操作控制方法及装置
CN104571709A (zh) 移动终端及虚拟按键的处理方法
CN105677314A (zh) 滚动事件的处理方法、装置和设备
CN106528385A (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