用于监控后台应用事件的系统和方法
【专利摘要】本文描述了用于实现通信接入策略的系统、方法和设备。在一些方面,无线设备被配置为执行多个应用,以及与通信网络进行通信。无线设备包括接收机,所述接收机被配置为接收多个规则,所述多个规则指定了所述多个应用中的一个或多个应用应当如何与通信网络进行通信。无线设备包括处理器,所述处理器被配置为遵循规则,延迟由所述多个应用中的一个或多个应用进行的通信。处理器还被配置为在延迟终止之后,允许由所述多个应用中的一个或多个应用进行的通信的传输。在一个方面,处理器被配置为基于设备是处于后台还是前台状态,分别地记录通信统计。
【专利说明】用于监控后台应用事件的系统和方法
[0001]相关申请的交叉引用
[0002]本申请根据35U.S.C.§ 119(e),要求享受2011年10月5日提交的美国临时申请N0.61/543,701和2011年8月29日提交的美国临时申请N0.61/528,628的优先权,故以引用方式将这两份临时申请的全部内容并入本文。
【技术领域】
[0003]概括地说,本申请涉及无线通信,具体地说,本申请涉及用于监控后台应用事件的系统、方法和设备。
【背景技术】
[0004]如今,应用(“apps”)或设备小应用程序(applet)可用于向无线设备提供多种多样的附加服务和特征。例如,现在无线设备可以下载和发起设备小应用程序,以执行诸如购物、搜索、位置定位、驾驶导航之类的附加值功能,以及一批其它功能。通常,网络和应用提供商向设备用户提供这些设备小应用程序,以获得额外的费用。因此,设备小应用程序的使用增加了无线设备的功能和可用性,以及向设备用户提供了非设备本身最初可用的特征和便利。
[0005]无线设备使用多个无线单元中的任意一个无线单元通过接口与一个或多个通信网络连接。例如,无线设备可以包括多个无线单元,所述多个无线单元使用蜂窝、W1-F1、蓝牙或者其它类型的无线接入技术来提供通信。因此,为在无线设备上执行的应用提供了默认的路由,所述默认的 路由确定了应用将用于与适当的网络进行通信的无线单元以及相关联的无线信道。
[0006]但是,对于智能地管理应用通信的兴趣日益增加。这是部分地由于多无线单元设备(例如,3G/W1-Fi设备)数量的增加,以及可以产生针对运营商的容量问题的网络业务的增加。因此,关于这样的容量问题,期望将业务卸载到替代的无线单元,或者延迟某些时段期间的通信。
[0007]因此,需要高效和成本有效的机制来为无线设备上的应用提供通信管理。具体而言,需要高效的方式来发现哪些应用使用网络,以及它们怎样使用网络。此外,需要根据在设备的各种状态下所发现的应用应当如何紧急地接入无线单元,来对所发现的应用进行分类。可以使用这样的信息来延迟通信的传输。此外,还需要传送关于通信的延迟传输的策略的系统和方法。
【发明内容】
[0008]本发明的系统、方法和设备均具有若干方面,这些方面中没有任何单一的一个方面单独地负责其期望的属性。在不限制如所附权利要求书所表示的本发明的范围的情况下,将简要地对一些特征进行讨论。在仔细考虑了本论述之后,以及特别是在阅读了定名为“【具体实施方式】”的部分之后,本领域的技术人员将理解本公开内容的特征如何提供优势,其包括认识到哪些应用是容忍延迟的。
[0009]本公开内容的一个方面提供了无线设备。无线设备包括网络接口,所述网络接口被配置为与通信网络交换数据。无线设备还包括输入设备,所述输入设备被配置为接收一个或多个输入。无线设备还包括处理器,所述处理器电力地连接到所述网络接口。所述处理器被配置为基于存在或不存在一个或多个输入,判断所述设备是处于后台状态还是前台状态。所述处理器还被配置为执行多个应用,所述多个应用被配置为经由所述网络接口与所述通信网络进行通信。所述处理器还被配置为当所述设备处于所述后台状态时,针对所述多个应用中的一个或多个应用,收集一个或多个通信统计。所述处理器还被配置为当所述设备处于所述前台状态时,执行以下操作中的任意一种:与当所述设备处于所述后台状态时收集的所述通信统计分开,收集所述一个或多个通信统计,或者避免收集所述一个或多个通信统计。
[0010]本公开内容的另一个方面提供了收集应用通信统计的方法。所述方法包括基于存在或不存在一个或多个输入,判断设备是否处于前台状态或者后台状态。所述方法还包括执行多个应用,所述多个应用被配置为与通信网络进行通信。所述方法还包括当所述设备处于所述后台状态时,针对所述多个应用中的一个或多个应用,收集一个或多个通信统计。所述方法还包括当所述设备处于所述前台状态时,执行以下操作中的任意一种:与当所述设备处于所述后台状态时收集的所述通信统计分开,收集所述一个或多个通信统计,或者避免收集所述一个或多个通信统计。
[0011]本公开内容的另一个方面提供了用于收集应用通信统计的装置。所述装置包括用于基于存在或不存在一个或多个输入,判断所述装置是否处于前台状态或者后台状态的模块。所述装置还包括用于执行多个应用的模块,所述多个应用被配置为与通信网络进行通信。所述装置还包括用于当所述装置处于所述后台状态时,针对所述多个应用中的一个或多个应用,收集一个或多个通信统计的模块。所述装置还包括下面中的任意一种:用于与当所述设备处于所述后台状态时收集的所述通信统计分开,收集当所述设备处于所述前台状态时的所述一个或多个通信统计的模块,或者用于当所述设备处于所述前台状态时,避免收集所述一个或多个通信统计的模块。
[0012]本公开内容的另一个方面提供了非暂时性计算机可读介质。所述介质包括当被执行时,使得装置基于存在或不存在一个或多个输入,判断所述装置是否处于前台状态或者后台状态的代码。所述介质还包括当被执行时,使得所述装置执行多个应用的代码,所述多个应用被配置为与通信网络进行通信。所述介质还包括当被执行时,使得所述装置当所述装置处于所述后台状态时,针对所述多个应用中的一个或多个应用,收集一个或多个通信统计的代码。所述介质还包括当被执行时,使得所述装置在所述装置处于所述前台状态时,执行以下操作中的任意一种的代码:与当所述装置处于所述后台状态时收集的所述通信统计分开,收集所述一个或多个通信统计,或者避免收集所述通信统计。
[0013]本公开内容的另一个方面提供了无线设备,所述无线设备被配置为执行多个应用,并与通信网络进行通信。无线设备包括接收机,所述接收机被配置为接收多个规则,所述多个规则指定了所述多个应用中的一个或多个应当应用如何与通信网络进行通信。无线设备还包括输入设备,所述输入设备被配置为接收一个或多个输入。无线设备还包括处理器,所述处理器被配置为基于存在或不存在一个或多个输入,判断所述设备是否处于前台状态或者后台状态。所述处理器还被配置为遵循规则,修改由所述多个应用中的一个或多个应用进行的通信。所述处理器还被配置为当所述设备处于所述前台状态时,根据规则,允许由所述多个应用中的一个或多个应用进行的通信的传输。
[0014]本公开内容的另一个方面提供了与通信网络进行通信的方法。所述方法包括接收多个规则,所述多个规则指定了所述多个应用中的一个或多个应用应当如何与通信网络进行通信。所述方法还包括基于存在或不存在一个或多个输入,判断所述设备是否处于前台状态或者后台状态。所述方法还包括遵循规则,修改由所述多个应用中的一个或多个应用进行的通信。所述方法还包括当所述用户接口处于所述前台状态时,根据规则,允许由所述多个应用中的一个或多个应用进行的通信的传输。
[0015]本公开内容的另一个方面提供了用于与通信网络进行通信的装置。所述装置包括用于接收多个规则的模块,所述多个规则指定了所述多个应用中的一个或多个应用应当如何与通信网络进行通信。所述装置还包括用于基于存在或不存在一个或多个输入,判断所述设备是否处于前台状态或者后台状态的模块。所述装置还包括用于遵循规则,修改由所述多个应用中的一个或多个应用进行的通信的模块。所述装置还包括用于当所述用户接口处于所述前台状态时,根据规则,允许由所述多个应用中的一个或多个应用进行的通信的传输的模块。
[0016]本公开内容的另一个方面提供了非暂时性计算机可读介质。所述介质包括当被执行时,使得装置接收多个规则的代码,所述多个规则指定了所述多个应用中的一个或多个应用应当如何与通信网络进行通信。所述介质还包括当被执行时,使得所述装置基于存在或不存在一个或多个输入,判断所述设备是否处于前台状态或者后台状态的代码。所述介质还包括当被执行时,使得所述装置遵循规则,修改由所述多个应用中的一个或多个应用进行的通信的代码。所述介质还包括当被执行时,使得所述装置在所述用户接口处于所述前台状态时,根据规则,允许由所述多个应用中的一个或多个应用进行的通信的传输的代码。
[0017]本公开内容的另一个方面提供了装置,所述装置被配置为与通信网络进行通信。所述设备包括处理器,所述处理器被配置为生成多个规则,所述多个规则指定了在无线设备上执行的多个应用中的一个或多个应用应当如何与通信网络进行通信。所述设备还包括发射机,所述发射机被配置为在所述通信网络上向所述无线设备发送所述多个规则。
[0018]本公开内容的另一个方面提供了与通信网络进行通信的方法。所述方法包括生成多个规则,所述多个规则指定了在无线设备上执行的多个应用中的一个或多个应用应当如何与通信网络进行通信。所述方法还包括在所述通信网络上向所述无线设备发送所述多个规则。
[0019]本公开内容的另一个方面提供了用于与通信网络进行通信的装置。所述装置包括用于生成多个规则的模块,所述多个规则指定了在无线设备上执行的多个应用中的一个或多个应用应当如何与通信网络进行通信。所述装置还包括用于在所述通信网络上向所述无线设备发送所述多个规则的模块。
[0020]本公开内容的另一个方面提供了非暂时性计算机可读介质。所述介质包括当被执行时,使得装置生成多个规则的代码,所述多个规则指定了在无线设备上执行的多个应用中的一个或多个应用应当如何与通信网络进行通信。所述介质还包括当被执行时,使得所述装置在所述通信网络上向所述无线设备发送所述多个规则的代码。
【专利附图】
【附图说明】
[0021]参照下面结合附图给出的详细描述,本文描述的上述方面将变得更加显而易见,其中:
[0022]图1示出了说明通信管理系统的方面的示例性网络环境;
[0023]图2示出了被配置为提供通信管理的示例性无线设备;
[0024]图3示出了提供通信管理的示例性方法的流程图;
[0025]图4示出了针对示例性设备的应用网络活动的图;
[0026]图5示出了被配置为对应用通信进行聚合的硬件/软件系统的示例性框图;
[0027]图6示出了由图5的硬件/软件系统实现的应用通信聚合的示例性时间轴;
[0028]图7根据另一个实施例,示出了应用通信聚合的时间轴;
[0029]图8示出了被配置为实现通信接入策略的示例性设备;
[0030]图9示出了收集通信统计的示例性方法的流程图;
[0031]图10示出了分析通信统计的示例性方法的流程图;
[0032]图11示出了收集通信统计的另一种示例性方法的流程图;
[0033]图12示出了实现通信接入策略的示例性方法的流程图;
[0034]图13示出了被配置为实现通信接入策略的另一种示例性设备。
【具体实施方式】
[0035]下文参照附图更全面地描述了新颖的系统、装置和方法的各个方面。但是,教导的公开内容可以以多种不同的形式来实现,以及不应当被解释为受限于贯穿本公开内容给出的任何特定的结构或功能。相反地,提供这些方面以使得本公开内容将是全面的和完整的,以及将向本领域的技术人员完整地传达本公开内容的范围。基于本文中的教导,本领域的技术人员应当认识到的是,本公开内容的范围旨在覆盖本文中所公开的新颖的系统、装置和方法的任何方面,无论是独立地实现还是结合本发明的任何其它方面来实现。例如,使用本文中阐述的任意数量的方面可以实现装置或可以实施方法。此外,本发明的范围旨在覆盖这样的装置或方法,使用其它结构、功能、或者除了或不同于本文中阐述的本发明的各个方面的结构和功能来实施这样的装置或方法。应当理解的是,本文所公开的任何方面可以通过权利要求的一个或多个元素来体现。
[0036]虽然本文描述了特定的方面,但是这些方面的多种变形和排列落在本公开内容的范围之内。虽然提及了优选的方面的一些利益和优点,但是本公开内容的范围并不受限于特定的利益、用途或对象。相反地,本公开内容的方面旨在广泛地适用于不同的无线技术、系统配置、网络和传输协议,其中的一些通过举例的方式在附图以及在优选方面的以下描述中进行了说明。【具体实施方式】和附图仅仅是对本公开内容的说明而不是限制,本公开内容的范围由所附的权利要求书及其等效物来规定。
[0037]本文所描述的技术可以用于各种无线通信网络,比如码分多址(CDMA)网络、时分多址(TDMA)网络、频分多址(FDMA)网络、正交FDMA (OFDMA)网络、单载波FDMA (SC-FDMA)网络等等。术语“网络”和“系统”经常被互换使用。CDMA网络可以实现诸如通用陆地无线接入(UTRA)、CDMA2000等等之类的无线技术。UTRA包括宽带CDMA (W-CDMA)和低码片速率(LCR)。CDMA2000覆盖IS-2000、IS-95和IS-856标准。TDMA网络可以实现诸如全球移动通信系统(GSM)之类的无线技术。OFDMA网络可以实现诸如演进型UTRA (E-UTRA)、IEEE802.11、IEEE802.15、IEEE802.16、IEEE802.20、Flash- OFDM?等等之类的无线技术。UTRA、E-UTRA和GSM是通用移动电信管理系统(UMTS)的一部分。长期演进(LTE)是UMTS的使用E-UTRA的即将发布的版本。在来自名为“第三代合作伙伴计划”(3GPP)的组织的文档中描述了 UTRA、E-UTRA, GSM、UMTS和LTE。在来自名为“第三代合作伙伴计划2”(3GPP2)的组织的文档中描述了 CDMA2000。这些各种无线技术和标准是本领域中已知的。
[0038]图1示出了说明通信管理系统108的方面的示例性网络环境100。网络环境100包括无线设备102、通信网络104和一个或多个服务器110和111。设备102包括多个无线单元(没有示出),以使用相应的无线信道106与网络104进行通信。此外,设备102还包括通信管理系统108,所述通信管理系统108操作为控制到多个无线单元的接入,例如通过特定的应用。
[0039]无线设备102可以通过通信网络104与服务器110和111进行通信。服务器110和111分别通过通信信道112和113连接到通信网络104。通信信道112和113可以是有线的或无线的信道。
[0040]在操作期间,无线设备102执行应用,所述应用可以使用多个无线单元中的任意一个与网络104进行交互。例如,执行的应用可以发布联网功能调用(例如,套接字层调用),以请求用于与网络104通信的网络资源。在实施例中,通信管理系统108可以基于默认的路由配置来处理套接字层调用,以使预定的无线资源结合到应用。
[0041 ] 在实施例中,服务器110可以获得通信接入策略。在多个实施例中,服务器110可以基于编译的网络统计来生成通信接入策略,可以恢复先前编译的通信接入策略,或者可以从另一个源接收通信接入策略。在实施例中,无线设备102可以通过通信管理系统108来收集通信统计。通信统计可以包括例如关于以下内容的信息:尝试接入无线信道106的应用、应用何时尝试接入无线信道106、尝试何种接入等等。无线设备102可以向服务器111提供通信统计。服务器110和111中的一个或二者可以处理从无线设备102接收的通信统计,以及可以单独地或者一前一后地编译通信接入策略。在某些实施例中,服务器110和服务器111可以是并置排列的,或者可以将它们的功能组合在单个服务器上。
[0042]通信接入策略可以包括关于允许哪些应用接入无线信道106、何时允许应用接入无线信道106、允许何种接入等等的规则。服务器110可以通过通信网络104向无线设备102提供通信接入策略。在多个实施例中,服务器110可以通过接入网络发现和选择功能(ANDSF)、开放移动联盟设备管理(OMA-DM)和/或任何其它适当的方法在空中或者以其它方式将通信接入策略提供给无线设备102。
[0043]在多种实现方式中,通信管理系统108操作为拦截来自应用的联网功能调用。通信管理系统108可以根据通信接入策略选择用于由应用使用的适当的无线单元。通信管理系统108还可以根据通信接入策略来修改应用的通信。如本文所使用的,通信的修改可以包括,但不限于,延迟通信或者以其它方式影响通信或使通信发生改变。智能无线单元选择系统108还可以将应用结合到网络资源(B卩,已被选择的无线单元)。因为通信管理系统108响应于当应用使用无线资源时的正常操作来进行操作(当它们),所以系统可以在不具有任何应用改变或者升级的情况下操作传统应用和非传统应用二者。下文提供对通信管理系统108的更详细的描述。
[0044]图2示出了被配置为提供通信管理的示例性无线设备200。设备200包括处理器202、存储器204和TX/RX无线单元212,使用通信总线214将所有这些进行耦合以进行通信。无线设备200可以是上文关于图1所描述的无线设备102。应当注意的是,设备200只是一种实现方式,以及其它实现方式是可能的。
[0045]在一个方面,处理器202包括应用层模件206、连接引擎208和联网模件210。处理器202还可以包括CPU、微处理器、门阵列、硬件逻辑、存储器元件和/或执行软件的硬件(没有示出)中的至少一个。处理器202还被配置为控制设备200的操作,以使得在设备200上执行的应用的通信可以被选择性地修改、影响、延迟和/或限制于期望的无线单元。在一种实现方式中,处理器202被配置为执行与实现多种功能中的任何一种功能有关的计算机可读指令。例如,处理器202操作为分析从设备200接收或传送的用于实现通信管理的信息。在另一个方面,处理器202操作为生成可以由存储器204、应用层模件206、TX/RX无线单元212和/或连接引擎208使用的用于实现通信管理的信息。
[0046]TX/RX无线单元212包括执行软件的硬件和/或处理器,所述软件被配置为提供多个无线单元/接口,所述多个无线单元/接口用于使设备200使用多个无线信道216与多个外部实体(例如,外部通信网络104 (图1))通过接口连接。无线信道216可以是例如上文关于图1所描述的无线信道106。TX/RX无线单元212可以提供无线单元/接口,以使用蜂窝、W1-F1、蓝牙或者任何其它技术进行通信,以使用无线信道216与通信网络进行通信。
[0047]应用层模件206包括执行软件的硬件和/或处理器,所述软件被配置为执行设备200上的一个或多个应用以及将应用存储在存储器204中。在一种实现方式中,应用层模件206被配置为允许应用向联网模件210发起联网功能调用,以请求联网服务。联网功能调用可以包括出于通过无线信道216与外部网络或者系统进行通信的目的,针对在TX/RX无线单元212处的无线单元/接口的连接请求。
[0048]联网模件210包括执行软件的硬件和/或处理器,所述软件被配置为执行联网功能。在一种实现方式中,联网功能包括如ConnectO、Bind()、Write()和Setsockopt O这样的函数。ConnectO函数操作为在应用和特定的无线单元/接口之间建立连接。Write O函数操作为在连接上发送数据。例如,可以从TX/RX无线单元212所提供的多个候选无线单元中选择特定的无线单元/接口。在一个方面,联网模件210被配置为执行多种联网功能或者命令。在一个方面,当设备处于后台模式时(图8),联网模件210可以允许进行某些功能,以及不允许进行其它功能。在一个实施例中,例如,当用户接口没有在使用中时,设备可以是处于后台模式。
[0049]连接引擎208包括执行软件的硬件和/或处理器,所述软件被配置为接入系统资源以管理来自应用的通信。在多种实现方式中,连接引擎208被配置为拦截应用通信,选择性地修改、影响和/或延迟通信,和/或基于下面的选择标准中的一个或多个选择标准来选择特定的无线单元。
[0050]1、用户策略-由设备用户所设置的关于由在设备处执行的应用进行的无线接入的策略。
[0051]2、运营商策略-由网络运营商所设置的关于由设备或者应用进行的网络接入的策略。
[0052]3、无线度量-无线性能的测量,或者用于选择针对特定的应用或者操作环境的最优选的无线单元的其它类型的测量。
[0053]4、应用需求-与请求的应用相关联的需求,例如带宽需求或者等待时间/性能需求。
[0054]5、网络可用性-关于在特定的无线接口上的特定的网络的可用性的信息。
[0055]6、供应商提供的度量-用于从无线度量(诸如接收信号强度指示和丢包率)转换为针对特定的无线接口可用的吞吐量和等待时间的信息。
[0056]7、接入点可用性-用于指定针对接入点的唯一标识符的信息,所述接入点被来自其它设备的业务或者可以配置无线链路但不向网络转发分组的那些业务拥塞。
[0057]处理器202可以通过TX/RX无线单元212下载前述的选择标准中的一个或多个选择标准。可以将选择标准存储在存储器204中。例如,处理器202可以恢复运营商策略,以及连接引擎208可以应用运营商策略。运营商策略可以包括用于调节由无线设备200上的应用进行的网络接入的多个规则。
[0058]存储器204包括RAM、ROM、EEPROM或者操作为允许在设备200处存储和恢复应用和/或选择标准的任何其它类型的存储器设备。在一种实现方式中,存储器204被配置为存储由处理器202执行的计算机可读指令。存储器204还可以被配置为存储多种其它类型的数据中的任何数据,其包括由处理器202、TX/RX无线单元212、应用层模件206、联网模件210和/或连接引擎208中的任意一个所生成的数据。存储器204可以用多种不同的配置进行配置,其包括配置成随机存取存储器、带蓄电池后备电源的(battery-backed)存储器、硬盘、磁带等等。还可以在存储器204上实现诸如压缩和自动备份之类的各种特征。
[0059]存储器204被配置为存储预加载库218和联网库220。预加载库218拦截来自应用的套接字调用。联网库220提供应用所使用的联网API,以生成和连接用于建立网络通信的套接字。
[0060]连接引擎208被配置为以各种方式选择性地修改、影响和/或延迟应用通信。例如,连接引擎208可以被配置为使用上文的选择标准中的一个或多个选择标准来延迟通信。例如,连接引擎208可以延迟仅来自容忍延迟的应用的通信。此外,仅当无线设备200处于后台状态时,连接引擎208可以延迟通信。在实施例中,连接引擎208延迟针对容忍延迟的应用的通信,直到无线设备200进入前台状态为止。在另一个实施例中,连接引擎208延迟针对容忍延迟的应用的通信,直到不容忍延迟的应用发起通信为止。
[0061]连接引擎208还可以被配置为以多种方式从多个候选的无线单元中选择无线单元。例如,连接引擎208可以被配置为使用上文的选择标准中的一个或多个来选择无线单元。一旦选择了无线单元,连接引擎208就将应用结合到表示该无线单元的接口。例如,在一种实现方式中,连接引擎208通过调用到原始的联网库220中来将应用结合到无线单元的接口。因此,连接引擎208和预加载库218处的功能可以容易地访问联网库220中的函数(例如,bind O函数),以结合到针对应用所选择的无线单元。
[0062]在多种实现方式中,通信管理系统包括计算机程序产品,所述计算机程序产品具有存储或体现在计算机可读介质上的一个或多个程序指令(“指令”)或“代码”集。当代码由至少一个处理器(例如,处理器202)执行时,它们的执行使得处理器202控制设备200以提供本文所描述的智能接口选择系统的功能。例如,计算机可读介质包括软盘、CDROM、存储卡、快闪存储器装置、RAM、ROM或者通过接口连接到设备200的任何其它类型的存储设备或计算机可读介质。在另一个方面,可以将代码集从外部设备或通信网络资源下载到设备200中。当代码集被执行时,操作为提供本文所描述的智能接口选择系统的方面。
[0063]图3示出了用于提供通信管理的示例性方法的流程图300。为了清楚起见,下文中参照图2中所示出的设备200来描述流程图300。但是,本领域中具有普通技能的人员将认识到的是,可以利用任何适当的设备来实现所示出的方法。在一种实现方式中,处理器202执行一个或多个代码集,以控制设备200的功能单元来执行下文中所描述的功能。
[0064]在方框302,处理器202发起应用。应用可以是传统的或非传统的应用,其是应用层模件206的一部分。例如,应用可以是网络浏览器,其生成联网功能调用,以使用在TX/RX无线单元212处可用的无线单元来连接无线网络。
[0065]在方框304,处理器202配置以及加载预加载库。例如,预加载库218包括在联网库220中提供的联网功能的子集,应用使用所述联网功能来评估通信网络。预加载库218中的联网功能被配置为拦截来自在设备处执行的应用的联网功能调用。例如,预加载库218包括POSIX套接字函数,所述POSIX套接字函数可以用于拦截由在设备200处执行的应用进行的套接字调用。在一种实现方式中,将预加载库218存储在存储器204中。
[0066]在一种实现方式中,预加载库218函数被配置为接收从调用的应用传送来的参数,以及使用这些参数来生成对于连接引擎208选择最适合于应用的目的的无线单元的请求。
[0067]在方框306,处理器202将预加载库链接到执行环境中。例如,处理器202将预加载库218链接到处于比联网库220的优先级要高的执行环境中。因此,由应用进行的联网功能调用将由预加载库218中的功能来拦截和处理,以及不由联网库220中的类似的功能来处理。
[0068]在方框308,处理器202拦截来自应用的联网功能调用。例如,联网功能调用可以是POSIX套接字函数调用(例如,connect O函数或者write O函数)。应用生成联网功能调用来连接到无线单元以允许与外部网络进行通信。由于预加载库218链接到处于比联网库220的优先级要高的执行环境,处理器202通过预加载库218中的功能来拦截(或者处理)联网功能调用。在实施例中,处理器202可以根据所接收的运营商策略来延迟联网功能调用,如下文中关于图12所讨论的。
[0069]在方框310,预加载库218中的被调用的函数生成对于连接引擎208选择由应用所使用的适当的无线单元的请求。请求包括由连接引擎208所使用的用于选择由应用所使用的适当的无线单元的选择标准的一部分的任何信息。在另一个实施例中,预加载库218中的被调用的函数生成对于连接引擎208判断是否应当延迟通信的选择请求。
[0070]在方框312,评估选择标准。在一种实现方式中,连接引擎208操作为评估上文所描述的选择标准。例如,连接引擎208可以与处理器202通信以评估属于选择标准的一部分的运营商策略。
[0071]在方框314,连接引擎208基于选择标准的评估来选择无线单元。例如,连接引擎208操作为选择最好地匹配选择标准的无线单元。
[0072]在方框316,连接引擎208结合到针对应用所选择的无线单元的接口。例如,在一种实现方式中,连接引擎208调用联网库220的bindO函数,以结合到针对应用所选择的无线单元。例如,连接引擎208 了解联网库220,以及知道如何在不被预加载库218拦截的情况下直接地访问其函数。在实施例中,在将应用结合到无线单元之前或者之后,连接引擎208延迟通信。
[0073]在方框318,随后应用使用针对网络通信所选择的无线单元。
[0074]在可选的操作中,方法进行到方框312,其中连接引擎208操作为执行选择标准的定期评估,以判断当前的无线单元是否最好地匹配选择标准。如果在选择标准的另一次评估之后,连接引擎208确定不同于当前的无线单元的无线单元最好地匹配了选择标准,那么连接引擎208可以破坏连接,作为一种手段来触发应用进入到重新启动连接,以选择针对新的连接的不同的无线单元。因此,可选的操作允许定期地评估选择标准,以确保选择最适当的无线单元来进行期望的通信。
[0075]因此,流程图300提供了用于与传统的和非传统的应用一起使用的通信管理。应当注意的是,流程图300只是一种实现方式,以及流程图300的操作可以被重新排列或者以其它方式修改,以使得其它的实现方式是可能的。
[0076]针对无线设备应用的连接管理
[0077]在诸如智能电话、个人数字助理等等之类的无线设备中,即使设备处于后台状态(例如,当用户没有活动地使用设备时),软件应用可以继续操作。诸如社交网络应用、电子邮件或者其它通信应用、数据馈送等等之类的应用(普遍的例子包括脸谱(Facebook?)、Gmail?、Twitter?等等)可以继续发送和接收数据,即使用户没有在使用设备。
[0078]当移动设备的某些输入是不可操作的或处于睡眠状态时,移动设备处于后台模式。换言之,当用户没有在使用设备时,设备可以是处于后台模式。例如,当音频输入(例如,麦克风)关闭时,设备可以被认为处于后台模式。此外,当视频输入(例如,设备的显示器)关闭时,设备可以被确定为处于后台模式。可以使用额外的输入来判断移动设备是否处于后台模式,如下文将描述的。
[0079]图4示出了示例性设备的应用网络活动的图400。图400的X轴示出了时间,y轴示出了在各时间处所传送的数据的量,以字节为单位。图400示出了在大约两个小时的时段期间的网络活动,在此时段期间设备处于空闲模式。在实施例中,当用户没有与设备进行交互和/或显示器关闭时,设备处于空闲模式。虽然设备处于后台模式,但是继续进行操作的应用在活动时产生尖峰(例如,尖峰410a-1)。这样的应用可以称为“后台”应用。由这些应用进行的活动可以使用诸如无线单元212中的无线单元等等之类的通信资源。在实施例中,后台模式可以是“空闲”模式。
[0080]诸如尖峰410a_i之类的网络活动尖峰可能导致无线设备从空闲模式转换到连接模式。在连接模式下,设备可以对无线单元进行加电,可以产生信令业务,以及与处于空闲模式时相比,可能消耗较大量的功率。在一些情况下,尖峰可以阻止无线设备从连接模式转换到空闲模式,或者转换到诸如不连续接收(DRX)模式之类的替代的连接模式。当用户没有活动地参与设备时由应用进行的无线单元活动的这样的升高的水平可能导致缩短电池寿命,增加无线网络的负载,或者导致其它不期望的影响。
[0081]使用本文所公开的技术和结构,设备可以使用软件层(还被称为“封装器”),所述软件层提供应用程序接口(API)以捕获来自后台应用的数据,以及保持它们直到期望的时间点为止,其中可以激活无线资源,传送应用数据,以同步的方式执行任务。通过对这样的任务/数据请求进行聚合,可以减少无线设备的频繁苏醒,以及在用户没有活动地参与设备的时段期间节省其它通信资源。
[0082]图5示出了被配置为对应用通信进行聚合的硬件/软件系统500的示例性框图。如图所示,在应用处理器550和调制解调器处理器560之间划分软件部件,但是可以用与图5的例子不相同的方式来组织各种功能。例如,描述成软件的功能可以用硬件实现(反之亦然),可以将功能分布在不同的部件之间等等。在实施例中,硬件/软件系统500可以是上文关于图1所讨论的通信管理系统108。在另一个实施例中,可以在无线设备200上实现硬件软件系统500,如上文关于图2所描述的。例如,应用处理器550的功能可以通过处理器202、应用层模件206和/或连接引擎208中的一个或多个来实现。调制解调器处理器560的功能可以通过TX/RX无线单元212、联网模件210和/或连接引擎208中的一个或多个来实现。
[0083]在所示出的实施例中,应用502与应用连接引擎508进行交互,以及与高层操作系统(HLOS) 506进行交互。HL0S506可以是例如由加利福尼亚州山景Google公司生产的安卓(Android)操作系统。应用连接引擎508可以与调制解调器连接引擎510进行通信。调制解调器连接引擎可以管理诸如无线单元212以及其中的无线单元之类的通信资源。封装器504能够捕获在应用502和HL0S506之间的数据。封装器504可以在用户不活动的时段期间对来自应用502的数据进行聚合,以及在将它们释放给HL0S506和最终释放给无线单元212用于操作/传输之前,保持它们直到确定的时间。封装器504对于应用502是不可见的,以使得它们没有意识到它们的数据/请求被保持/聚合。在实施例中,封装器504可以模仿HL0S506的功能。封装器504可以是单独的部件,或者可以合并到诸如应用连接引擎508之类的另一个部件中。例如,可以由连接引擎208来实现封装器504,如上文关于图2所描述的。
[0084]图6示出了图5的硬件/软件系统500所实现的应用通信聚合的示例时间轴600。如图所示,应用APP1-4均在聚合时段610期间接连地发起针对使用无线资源的请求。在实施例中,可以在聚合时段610期间延迟应用通信。在实施例中,聚合时段610可以包括设备200处于空闲模式的时段。应用APP1-4可以是容忍延迟的应用。容忍延迟的应用可以携带相对地时间不敏感的数据(例如,电子邮件或者大容量文件传送)。
[0085]在所示出的实施例中,应用APPl进行connectO请求。随后,应用APP2进行write ()请求。接着,应用APP3进行connectO请求。最后,应用APP4进行connectO请求。封装器504接收connectO和write()套接字调用。代替立即地对套接字调用进行动作,封装器504在聚合时段610期间延迟通信。在确定的时间,封装器504将套接字调用一起释放,作为聚合的数据请求620。
[0086]在实施例中,封装器504可以在发送窗630期间释放聚合的数据请求620。在多个实施例中,发送窗630可以包括设备200处于空闲模式的时段,以及可以包括设备200处于活动模式的时段。在发送窗630期间,封装器504可以释放来自APP1-4的聚合的数据请求620。封装器504还可以允许在发送窗630期间进行的应用通信请求在没有延迟的情况下继续。换言之,在发送窗630期间,封装器504可以不对进一步的通信进行延迟。例如,在所示出的实施例中,APP5在发送窗630期间发起connectO请求。封装器504允许APP5的connectO请求在没有延迟的情况下继续。
[0087]在实施例中,封装器504可以按照有规律的或者间歇的时间间隔来打开发送窗630。例如,封装器504可以每5分钟、10分钟、15分钟、30分钟、60分钟等等打开一次发送窗630。在另一个例子中,封装器504可以按照随机的或者伪随机的时间来释放所延迟的应用通信。封装器504打开发送窗630的时间间隔可以由设备200来确定,或者是从另一个设备(例如,服务器110 (图1))接收的。
[0088]在实施例中,封装器504可以基于聚合的数据请求620,动态地确定何时打开发送窗630。例如,当聚合的数据请求620的数量超过门限时,封装器504可以打开发送窗630。门限可以由设备200来确定,或者是从另一个设备(例如,服务器110)接收的。
[0089]封装器504可以保持发送窗630打开达预定的或者动态的时间段。例如,在发送窗630被打开之后,封装器504可以保持发送窗630打开达15秒、30秒、I分钟、5分钟等等。再举一个例子,在发送了最近一次的应用通信之后,封装器504可以保持发送窗630打开达15秒、30秒、I分钟、5分钟等等。封装器504保持发送窗630打开的时间量可以由设备200来确定,或者是从另一个设备(例如,服务器110)接收的。
[0090]在实施例中,当不容忍延迟的应用发起通信时,封装器504可以打开发送窗630。例如,APP5可以是不容忍延迟的应用。因此,当从APP4接收到connectO请求时,封装器504可以打开发送窗630。封装器504可以允许来自APP4的connectO请求继续,以及还可以释放来自于APP1-4的聚合的数据请求620。
[0091]图7根据另一个实施例示出了应用通信聚合的时间轴700。如图所示,应用APPI_2均接连地发起针对使用无线资源的请求。应用APP1-2可以通过连接引擎API来指示它们的延迟容忍。例如,应用APP1-2可以包括仅仅容忍特定的延迟的后台活动和/或针对操作的要求。例如,应用APP1-2可以是位置跟踪应用,所述位置跟踪应用定期地(例如,每10秒钟)报告设备200的位置。
[0092]如图所示,应用APPl发起通信请求,以及向封装器504指示其仅容忍X秒的延迟。接着,应用APP2发起通信请求,以及向封装器504指示其仅容忍Y秒的延迟。封装器504可以提供回调函数(例如,API Go),所述回调函数可以向应用指示通信是被允许的。在接收到回调之后,应用可以继续进行通信。
[0093]如图所示,在流逝了 X秒延迟之前,封装器504向应用APPl提供APIGo回调。随后,应用APPl通过封装器504在没有进一步的延迟的情况下进行通信。类似地,在流逝了Y秒延迟之前,封装器504向应用APP2提供API Go回调。随后,应用APP2通过封装器504在没有进一步的延迟的情况下进行通信。
[0094]在替代的实施例中,应用可以通过API向封装器504提供特定的传输最终期限。封装器504可以在提供的最终期限的约束内透明地延迟来自应用的通信。因此,封装器504将在任何最终期限之前,允许应用通信继续。
[0095]在另一个方面,API还可以允许应用注册为不容忍延迟的应用。可以请求立即的接入的应用包括儿童跟踪应用、紧急通知应用等等。在实施例中,封装器504可以通过监控应用通信来学习各个应用的延迟容忍。在另一个实施例中,封装器504可以从列表或者数据库接收应用延迟容忍的列表,所述列表或数据库是本地存储在设备102上的,或者是从服务器110接收的。可以接收列表或者数据库连同诸如运营商策略之类的通信接入策略。
[0096]封装器504可以以减少用户中断的方式,对应用通信进行聚合或者延迟。封装器504可以分析多种因素以确定何时对应用通信进行延迟或者聚合。例如,封装器504可以基于无线设备102的特性(例如,显示器状态(开或关)、音频状态(开或关)等等)来延迟应用通信。封装器504可以仅对众所周知容忍延迟的应用通信进行延迟。当没有加载无线单元时,当无线设备没有以其它方式在使用时(例如,无电话呼叫、音频流等等),封装器504可以延迟应用通信。本领域中具有普通技能的人员将认识到的是,封装器504可以基于上文因素的任何组合(除了其它适当的因素之外)来确定何时延迟应用通信。
[0097]此外,封装器504可以分析多种因素来确定何时释放延迟的或者聚合的通信,以及何时准许不受限制的应用通信。例如,不容忍延迟的应用(例如,紧急通知应用)可以发起不受限制的应用通信。不受限制的应用通信可以触发封装器504释放先前延迟的或者聚合的应用通信。因此,先前延迟的应用通信可以与紧急应用协力来使用无线资源。换言之,当发起不容忍延迟的应用通信时,封装器504可以打开针对所有应用的发送窗。
[0098]在实施例中,当特定的无线单元被激活或者被选择为默认的无线单元时,封装器504可以释放延迟的或者聚合的应用通信。特定的无线单元可以包括例如W1-Fi无线单元、蜂窝无线单元、蜂窝无线单元的特定模式(例如,2G或3G通信模式)、蓝牙无线单元等等。例如,当仅启用蜂窝无线单元时,封装器504可以延迟应用通信,以及当启用W1-Fi无线单元时,封装器504可以释放所延迟的应用通信。
[0099]在另一个实施例中,当无线信道质量高于门限时,封装器504可以释放延迟的或者聚合的应用通信。无线信道质量可以包括诸如信号强度、信噪比(SNR)等等之类的度量。例如,当蜂窝无线单元的SNR低于门限时,封装器504可以延迟应用通信,以及当蜂窝无线单元的SNR上升到或者高于门限时,封装器504可以释放所延迟的应用通信。
[0100]在另一个实施例中,封装器504可以定期地或者在非连续的窗中释放延迟的或者聚合的应用通信。例如,封装器504可以每15分钟将延迟的应用通信释放一次。在另一个例子中,封装器504可以每15分钟到20分钟,按照随机的或者伪随机的时间来释放延迟的应用通信一次。
[0101]在实施例中,当接收到用户交互时,封装器504释放延迟的或者聚合的应用通信。例如,当显示器被激活、检测到按下按钮等等时,封装器504可以释放延迟的应用通信。在另一个实施例中,无线设备102可以预期用户交互。例如,无线设备102可以包括加速计,所述加速计可以检测无线设备102的移动。当加速计输出指示了可能有即将来临的用户交互时,封装器504可以释放延迟的应用通信。在另一个例子中,无线设备102可以通过接近度检测器来预期用户交互。本领域中具有普通技能的人员将认识到的是,封装器504可以响应于上文的任意组合,以及额外地响应于任何其它适当的事件,来释放延迟的应用通信。
[0102]虽然前述的描述讨论了关于API的应用通信聚合和延迟,但是概念等同地应用于硬件、固件或者硬件和软件的任意组合。
[0103]同步策略
[0104]在实施例中,通信管理系统108 (图1)可以从服务器110接收通信接入策略。通信接入策略可以包括由连接引擎208 (图2)分别在聚合时段610 (图6)和发送窗630期间延迟和释放应用通信时所使用的运营商策略。在多个实施例中,通信接入策略可以包括下面各项中的一项或多项:用于指示可以在聚合时段610期间将应用通信延迟多长时间的定时信息、可以延迟其通信的应用的列表(“包含列表”)、不可以延迟其通信的应用的列表(“排除列表”)、可以延迟或不可以延迟其通信的通信类型的列表、在其期间可以延迟或者不可以延迟通信的网络状况的列表、封装器504应当针对其打开或者关闭发送窗630的事件或者触发的列表、在其期间可以延迟或者不可以延迟通信的时间的指示、可以延迟或者不可以延迟通信的位置的指示、设备200应当多久从服务器110请求一次更新的通信接入策略、在其中可以延迟通信的无线接入技术(RAT)的列表等等。
[0105]在实施例中,通信类型可以包括诸如例如bind O、connect O、accept O、send ()、recv ()、write ()、read ()、sendto ()、recvfrom ()、close ()、gethostbyname ()和gethostbyaddr()之类的一个或多个套接字操作。通信类型还可以包括业务类型的分类,诸如例如,会话业务、尽力而为业务(best effort traffic)和紧急业务。会话业务可以包括用于表示间歇的单向或双向通信和/或交互式内容的通信,诸如例如,文本聊天业务、语音聊天业务、视频聊天业务、万维网业务(例如,映射和导航功能)等等。尽力而为业务可以包括相对地低优先级和/或非交互式业务,诸如例如,大容量数据传送(例如,文件传送协议(FTP)业务)、电子邮件、视频预加载等等。紧急通信可以包括相对地高优先级业务,诸如例如,儿童跟踪定位数据、时间敏感的提醒业务、紧急语音业务等等。此外,通信类型可以是基于在IP报头中通常包含的信息,诸如例如,源IP地址、目的IP地址、源端口、目的端口等
坐寸ο
[0106]在实施例中,通信接入策略可以包括同步频率,所述同步频率用于指示在缺少发送触发或者事件的情况下,封装器540应当多久打开一次发送窗630。例如,通信接入策略可以指示封装器540应当至少每5分钟、10分钟、15分钟、30分钟、60分钟等打开一次发送窗630。在实施例中,通信接入策略可以包括聚合的数据请求的门限量,在高于所述门限量时,封装器504应当打开发送窗630。例如,通信接入策略可以指示当聚合的数据请求620的数量足够占用无线单元212达到门限时间量时,封装器540应当打开发送窗630。再举一个例子,如果通信针对其被延迟的应用的数量大于门限,则封装器可以打开大门。在实施例中,通信接入策略可以包括门限。再举一个例子,如果通信针对其被延迟的套接字调用的数量大于门限,则封装器可以打开大门。在实施例中,通信接入策略可以包括门限。
[0107]在实施例中,通信接入策略可以包括来自服务器110的应用延迟容忍的列表。应用延迟容忍的列表可以包括不容忍延迟的应用的列表(其可以称为“排除列表”)。封装器504 (图5)可以从聚合中排除标识在排除列表中的应用。类似地,应用容忍延迟的列表可以包括容忍延迟的应用的列表(其可以称为“包含列表”)。当对应用通信进行聚合时,封装器504可以包括标识在包含列表中的应用。
[0108]在实施例中,封装器504可以通过默认的方式来排除应用,仅延迟针对专门地标识在包含列表中的应用的应用通信。包含列表可以包括应用标识符,诸如例如,表不应用名称的字符串、数字标识符、版本号、作者标识或者其任意组合。在实施例中,包含列表和/或排除列表可以按照某种粒度(包括由各自的套接字操作来表示的通信类型)来标识应用通信。例如,包含列表可以将来自应用“应用A”的connect O操作标识成容忍延迟的套接字操作。因此,封装器504可以将来自“应用A”的connect O操作进行聚合,但不将来自“应用A”的例如write O操作进行聚合。另一方面,封装器504不将来自“应用B”的connect O操作进行聚合,但可以将来自“应用B”的例如write O操作进行聚合。本领域中具有普通技能的人员将认识到的是,列表可以包括应用标识符、套接字操作等等的其它组合。
[0109]在实施例中,通信接入策略包括在其期间可以延迟或者不可以延迟通信的网络状况的指示。例如,通信接入策略可以包括无线业务的门限量,封装器504将基于所述门限量来调整聚合时段610和/或发送窗630。在实施例中,当网络业务的量下降到低于在通信接入策略中所指定的门限时,封装器504可以打开发送窗630。
[0110]在实施例中,所述通信接入策略包括封装器504针对其应当打开或者关闭发送窗630的事件或者触发的列表。例如,通信接入策略可以指示当不在包含列表上的应用和/或套接字调用尝试传送数据时,封装器504应当打开发送窗630。再举一个例子,通信接入策略可以指示当在排除列表上的应用和/或套接字调用尝试传送数据时,封装器504应当打开发送窗630。再举一个例子,通信接入策略可以指示当仅在包含列表上的应用和/或套接字调用尝试传送数据时,封装器504应当关闭发送窗630。
[0111]在实施例中,通信接入策略可以指示当设备200进入活动模式时,封装器504应当打开发送窗630。例如,通信接入策略可以指示当用户接口 822 (图8)接收到输入时,封装器504应当打开发送窗630。在另一个实施例中,当设备200进入活动模式时,封装器504可以不打开发送窗630,但当设备200处于活动模式时,可以以其它方式禁用封装器504和
/或停止延迟通信。
[0112]在实施例中,通信接入策略包括封装器504在其中应当或者不应当延迟应用通信的时间、日期和/或位置的列表。例如,通信接入策略可以指示当设备200处于某些城市或者国家等等时,封装器504应当或者不应当延迟在一周中的某些天期间在某些小时或者天之间的通信。在各种实施例中,可以利用特定于一个或多个特定的应用和/或套接字操作的粒度来指定时间、日期和/或位置策略。
[0113]在实施例中,服务器110可以接收关于通信网络104的状态的信息。例如,服务器110可以确定通信网络104中的网络地址转换(NAT)表将它们的记录维持多长时间。服务器110可以调整通信接入策略以指示封装器504应当利用对于应用来说足够的频率来打开发送窗630,从而刷新它们的NAT条目,以保持它们的连接活动等等。
[0114]在多个实施例中,通信接入策略可以将诸如前述的定时信息、应用列表、通信类型、网络状况等等之类的两个或更多接入标准进行组合。例如,通信接入策略可以指示当设备802处于待机时,去往端口 80的所有业务可以被延迟多达5分钟。再举一个例子,通信接入策略可以指示当设备802处于待机时,仅WLAN接口可以被使用。再举一个例子,通信接入策略可以指示当设备802处于待机时,来自“应用X”的“connect O ”套接字调用可以在没有延迟的情况下完成。同时,通信接入策略可以指示当设备802处于待机时,来自“应用Y”的“connect O ”和“write O ”套接字调用可以被延迟。同样地,通信接入策略可以合并其它延迟标准,诸如例如,尝试哪些套接字操作、所尝试的通信的源端口和/或目的端口、目的IP地址等等。再举一个例子,通信接入策略可以指示当无线接入技术是高速分组接入(HSPA)时,通信可以被延迟,但当无线接入技术是LTE时,通信不可以被延迟。本领域中具有普通技能的人员将理解的是,可以以多种方式将通信接入策略的前述方面进行组合。
[0115]图8示出了被配置为实现通信接入策略的示例性设备802。设备可以在上文关于图1所描述的网络环境100中使用。设备802是可以被配置为实现本文所描述的各种方法的设备的例子。例如,设备802可以实现无线设备102的一个或多个功能。在另一个实施例中,设备802可以实现服务器110的一个或多个功能。
[0116]设备802可以包括处理器804,所述处理器804控制设备802的操作。处理器804还可以称作为中央处理单元(CPU)。存储器806 (其可以包括只读存储器(ROM)和随机存取存储器(RAM))向处理器804提供指令和数据。存储器806的一部分还可以包括非易失性随机存取存储器(NVRAM)。处理器804基于存储在存储器806内的程序指令来执行逻辑和算术运算。存储器806中的指令可执行为实现本文所描述的方法。
[0117]当将设备802实现或者使用为无线设备102时,处理器804可以被配置为执行存储在存储器806中的一个或多个应用。在执行期间,应用可以发起在收发机814、发射机810和/或接收机812上的通信。处理器804可以实现上文关于图5所描述的硬件/软件系统500。因此,处理器804可以监控所执行的应用的通信、记录通信统计、通过接收机812来接收通信接入策略,以及可以在存储器806中存储通信接入策略。处理器804可以实现如上文关于图6-7所描述的通信接入策略。
[0118]处理器804可以包括利用一个或多个处理器实现的处理系统的部件,或者可以是利用一个或多个处理器实现的处理系统的部件。一个或多个处理器可以利用下面各项的任意组合来实现:通用微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、状态机、门控逻辑、分立硬件部件、专用硬件有限状态机或者可以执行计算或者信息的其它操作的任何其它适当的实体。
[0119]处理系统还可以包括用于存储软件的机器可读介质。软件应当被广泛地解释为意味着任何类型的指令,无论是称为软件、固件、中间件、微代码、硬件描述语言或其它术语。指令可以包括代码(例如,具有源代码格式、二进制代码格式、可执行代码格式或者任何其它适当的代码格式)。当指令由一个或多个处理器执行时,使得处理系统执行本文所描述的各种功能。
[0120]设备802还可以包括壳体808,所述壳体808可以包括发射机810和/或接收机812,以允许在设备802和远程位置之间进行数据的发送和接收。可以将发射机810和接收机812组合到收发机814中。可以将天线816附着到壳体808以及电力地耦合到收发机814。在一些实施例中,可以省略天线816,以及设备802可以被配置用于有线的通信。设备802还可以包括(没有示出)多个发射机、多个接收机、多个收发机和/或多付天线。
[0121 ] 设备802还可以包括信号检测器818,所述信号检测器818可以用于尽力检测和量化由收发机814接收的信号的电平。信号检测器818可以检测如总能量、每子载波每符号的能量、功率谱密度的这样的信号和其它信号。设备802还可以包括用于处理信号的数字信号处理器(DSP)820。DSP820可以被配置为生成用于传输的分组。在一些方面,分组可以包括物理层数据单元(prou)。
[0122]在一些方面,设备802还可以包括用户接口 822。用户接口 822可以包括接近度检测器、一个或多个输入按钮、键区、麦克风、扬声器、接口端口(例如,通用串行总线(USB )端口)、高清多媒体接口(HDMI)端口等等)、触摸屏、网络接口和/或显示器。用户接口 822可以包括向设备802的用户传送信息和/或从用户接收输入的任何元件或部件。在实施例中,当用户接口 822接收输入或者发送输出(例如,从USB端口、网络接口向显示器发送输出,从麦克风发送输出等等)时,可以认为用户接口 822是活动的。当用户接口 822在门限时间时段(例如,I秒、I分钟、5分钟等等)之内接收输入,或者发送输出时,也可以认为用户接口822是活动的。当用户接口 822不是活动的时,可以认为用户接口 822是非活动的或者空闲的。
[0123]当用户接口 822没有接收到输入时,可以说设备802处于后台状态或者空闲模式。在后台状态下,显示器可以关闭,以及可以禁用设备802的一个或多个功能。在实施例中,没有响应于用户接口 822输入而发起的设备802的过程和通信可以称为后台或者空闲过程或通信。
[0124]当用户接口 822接收到输入时,可以说设备802处于前台状态或者活动模式。在前台状态下,显示器可以开启,以及可以在输入空闲时段内接收输入。输入空闲时段是可配置的,可以是例如I分钟。在实施例中,后台过程和通信可以在活动模式下发生,但可能不直接响应于用户接口 822输入而发起。
[0125]可以通过总线系统826将设备802的各个部件稱合在一起。例如,总线系统826可以包括数据总线,以及除了数据总线之外的电源总线、控制信号总线和状态信号总线。本领域的技术人员将认识到的是,设备802的部件可以耦合在一起,或者可以使用某种其它机构来接受或提供到彼此的输入。
[0126]虽然在图8中示出了多个分开的部件,但本领域的技术人员将认识到的是,可以将部件中的一个或多个部件进行组合或者共同地实现。例如,处理器804可以用于不仅实现上文关于处理器804所描述的功能,还用于实现上文关于信号检测器818和/或DSP820所描述的功能。此外,图8中所示出的部件中的每一个部件可以使用多个分开的元件来实现。
[0127]图9示出了收集通信统计的示例性方法的流程图900。虽然本文参照上文关于图8讨论的设备802描述了流程图900的方法,但本领域中具有普通技能的技术人员将认识到的是,流程图900的方法可以通过上文关于图1所讨论的无线设备102、上文关于图2所讨论的无线设备202和/或任何其它适当的设备来实现。在实施例中,流程图900中的步骤可以通过处理器805结合发射机810、接收机812、存储器806和用户接口 822来执行。虽然本文参照特定的顺序描述了流程图900的方法,但在多个实施例中,可以以不同的顺序来执行本文中的方框,或者可以省略一些方框,以及增加额外的方框。
[0128]首先,在方框905,设备802通过接收机812来接收忽略列表。处理器804可以将忽略列表存储在存储器806中。在实施例中,设备802从服务器110接收忽略列表。在实施例中,忽略列表可以是在设备802上预先设定的。如上文关于图8所讨论的,忽略列表可以指定设备802针对其不应当监控或者记录通信统计的一个或多个应用。在多个实施例中,设备802还可以从服务器110接收其它信息(例如,包含列表和/或排除列表)。
[0129]接着,在方框910,处理器804拦截来自在处理器804上执行的应用的一个或多个通信。处理器804可以通过上文关于通信管理系统108和/或连接引擎208所描述的工具来拦截通信。在实施例中,DSP820、信号检测器818、发射机810和/或收发机814可以拦截通信。
[0130]随后,在方框915,处理器804确定设备状态。设备可以处于至少两种状态(其可以包括后台状态和前台状态)中的一种。处理器804可以通过用户接口 822来确定设备的状态。[0131]随后,在方框920,处理器804判断设备是否处于后台状态。如果设备处于前台状态,则处理器804不记录通信统计,以及在方框925处等待进一步的通信。如果设备处于后台状态,则处理器804继续到方框930。
[0132]在实施例中,在方框920,处理器804判断被拦截的通信是否是后台通信。如果被拦截的通信不是后台通信,则处理器804不记录通信统计,以及在方框925处等待进一步的通信。如果被拦截的通信是后台通信,则处理器804继续到方框930。
[0133]此后,在方框930,处理器804判断与被拦截的通信相关联的应用是否在从服务器110接收的忽略列表上。如果生成被拦截的通信的应用在忽略列表上,则处理器804不记录通信统计,以及在方框925处等待进一步的通信。如果生成被拦截的通信的应用不在忽略列表上,则处理器804继续到方框935。
[0134]然后,在方框935,处理器804基于被拦截的应用通信,记录一个或多个通信统计。通信统计可以包括例如在空闲模式期间活动的应用的应用标识符(例如,完整的或者部分的名称、或者数字的标识符)、由应用传送的数据的量、应用发起了多少连接、由应用进行的传输控制协议(TCP)请求的数量、发送的用户数据报协议(UDP)分组的数量、发送的域名服务(DNS)请求的数量等等。TCP请求统计可以包括关于诸如“connect”、“write”、“FIN”、“RST”等等之类的特定请求的统计。通信统计可以包括原始数据、或者在指定的时间窗期间的请求或者分组的统计计算(例如,最小值、最大值、平均值、中间值、标准偏差等等)。通信统计还可以包括诸如例如设备标识符、SM卡标识符、家庭网络身份、移动国家码、移动网络码、设备802的位置等等之类的额外的信息。处理器804可以将记录的通信统计存储在存储器806中,以及可以通过DSP820对所记录的通信统计进行压缩、加密或者以其它方式编码。
[0135]接着,在方框940,处理器804判断是否报告所积累的通信统计。处理器804可以确定报告标准(例如,所记录的统计的门限数量),所述标准将使处理器804向服务器110报告通?目统计。在实施例中,处理器804可以在定期的基础上(例如,每小时、每天、每周、每月等等)报告所记录的通信统计。在实施例中,当所记录的统计的数量达到门限值和/或当所记录的统计的大小达到门限值时,处理器804可以报告所记录的通信统计。在实施例中,当指定的无线单元(例如,W1-Fi或者蜂窝无线单元)被启用时,处理器804可以仅报告统计。处理器804可以将前述的报告标准中的一个或多个进行组合,或者使用额外的标准。在实施例中,处理器804可以接收关于如何以及何时从服务器110报告通信统计的指令。如果处理器804确定没有满足报告标准,则处理器不报告所记录的通信统计,以及在方框925处进行等待。如果处理器804确定已满足报告标准,则处理器继续到方框945。
[0136]最后,在方框945,处理器804通过发射机810和/或收发机814向服务器110发送所记录的通信统计。处理器804可以通过HTTP POST方法、文件传送协议(FTP)传送,将所记录的通信统计发送成电子邮件,或者通过任何其它的通信方式来发送。在处理器804向服务器110发送所记录的通信统计之后,处理器804可以从存储器806中删除所记录的通信统计,或者保存所记录的通信统计以便日后使用。当向服务器110发送所记录的通信统计之后,处理器804可以从服务器110接收响应,所述响应可以包括下面各项中的一项或多项:忽略列表、排除列表、包含列表、关于何时报告通信统计的指令的列表、以及关于如何记录通信统计的指令的列表。[0137]图10示出了分析通信统计的示例性方法的流程图1000。虽然本文参照上文关于图8讨论的设备80来描述了流程图100的方法,但本领域中具有普通技能的人员将认识到的是,流程图100的方法可以通过上文关于图1所讨论的服务器110或者任何其它适当的设备来实现。在实施例中,流程图1000中的步骤可以通过处理器805结合发射机810、接收机812和存储器806来执行。虽然本文参照特定的顺序描述了流程图1000的方法,但在多个实施例中,可以以不同的顺序来执行本文中的方框,或者可以省略一些方框,以及可以增加额外的方框。
[0138]首先,在方框1005,处理器804从无线设备102接收通信统计。通信统计可以包括例如应用标识符(例如,完整的或者部分的名称、或者数字的标识符)、由应用进行的传输控制协议(TCP)请求的数量、发送的用户数据报协议(UDP)分组的数量、发送的域名服务(DNS)请求的数量等等。TCP请求统计可以包括关于诸如“connect”、“write”、“FIN”、“RST”等等之类的特定请求的统计。通信统计可以包括原始数据、或者在指定的时间窗期间的请求或者分组的统计计算(例如,最小值、最大值、平均值、中间值、标准偏差等等)。通信统计还可以包括诸如例如设备标识符、SM卡标识符、家庭网络身份、移动国家码、移动网络码、设备802的位置等等之类的额外的信息。处理器804可以将接收的通信统计存储在存储器806中,以及可以通过DSP820对接收的通信统计进行压缩、加密或者以其它方式编码。
[0139]接着,在方框1010,处理器804生成忽略列表。处理器804可以基于从设备102接收的通信统计和/或在其它时间和/或从其它设备接收的通信统计,来生成忽略列表。例如,一旦处理器804接收到针对应用的门限数量的通信统计,处理器804就可以将应用标识符增加到忽略列表中。在实施例中,忽略列表最初可以利用已经进行了分析的应用来选出。处理器804可以偶尔地从忽略列表中去除一个或多个应用标识符,以便得知应用通信行为是否以及随时间发生了改变。
[0140]随后,在方框1015,处理器804生成包含列表。处理器804可以基于从设备102接收的通信统计和/或在其它时间和/或从其它设备接收的通信统计来生成包含列表。例如,一旦所记录的由应用进行的通信尝试的数量下降到低于门限,处理器804就可以将应用标识符增加到包含列表中。在实施例中,包含列表最初可以利用已经被确定为是容忍延迟的应用来选出。如果例如所接收的通信统计指示了应用是不容忍延迟的,那么处理器804可以从包含列表中去除一个或多个应用标识符。
[0141]随后,在方框1020,处理器804生成排除列表。处理器804可以基于从设备102接收的通信统计和/或在其它时间和/或从其它设备接收的通信统计来生成排除列表。例如,一旦所记录的由应用进行的通信尝试的数量超过门限,处理器804就可以将应用标识符增加到排除列表中。在实施例中,排除列表最初可以利用已经被确定为是不容忍延迟的应用来选出。如果例如所接收的通信统计指示了应用是容忍延迟的,那么处理器804可以从排除列表中去除一个或多个应用标识符。
[0142]随后,在方框1025,处理器804生成审阅列表。处理器804可以基于从设备102接收的通信统计和/或在其它时间和/或从其它设备接收的通信统计来生成审阅列表。例如,一旦所记录的由应用进行的通信尝试的数量下降到低于门限,处理器804就可以将应用标识符增加到审阅列表中。在实施例中,审阅列表可以是包含列表的初期形式。例如,处理器804可以将候选应用增加到审阅列表,用于进一步的分析。进一步的分析可以由处理器804执行,和/或通过用户接口 822来手动地执行。在实施例中,处理器804可以根据来自用户接口 822的信号,将应用从审阅列表移动到包含列表中。
[0143]最后,在方框1035,处理器804通过发射机810和/或收发机814向无线设备102发送前述的列表中的一个或多个。处理器804可以响应于所接收的通信统计(例如,通过HTTP POST响应)来发送列表。在实施例中,处理器804可以将列表推送给无线设备102。除了前述的列表之外,处理器804可以发送关于何时报告通信统计的指令的列表和/或关于如何记录通信统计的指令的列表。
[0144]图11示出了收集通信统计的示例性方法的流程图1100。虽然本文参照上文相对于图8讨论的设备802描述了流程图1100的方法,但本领域中具有普通技能的人员将认识到的是,流程图1100的方法可以通过上文相对于图1所讨论的无线设备102、上文相对于图2所讨论的无线设备202和/或任何其它适当的设备来实现。在实施例中,流程图1100中的步骤可以通过处理器805结合发射机810、接收机812、存储器806和用户接口 822来执行。虽然本文参照特定的顺序描述了流程图1100的方法,但在多个实施例中,可以以不同的顺序来执行本文的方框,或者可以省略一些方框,以及增加额外的方框。
[0145]首先,在方框1105,设备802通过接收机812接收忽略列表。处理器804可以将忽略列表存储在存储器806中。在实施例中,设备802从服务器110接收忽略列表。如上文关于图8所讨论的,忽略列表可以指定设备802针对其不应当监控或者记录通信统计的一个或多个应用。在多个实施例中,设备802还可以从服务器110接收其它信息(例如,包含列表和/或排除列表)。
[0146]接着,在方框1110,处理器804拦截来自在处理器804上执行的应用的一个或多个通信。处理器804可以通过上文关于通信管理系统108和/或连接引擎208所描述的工具来拦截通信。在实施例中,DSP820、信号检测器818、发射机810和/或收发机814可以拦截通信。
[0147]此后,在方框1115,处理器804判断与所拦截的通信相关联的应用是否在从服务器110接收的忽略列表上。如果生成被拦截的通信的应用在忽略列表上,则处理器804不记录通信统计,以及在方框1120等待进一步的通信。如果生成被拦截的通信的应用不在忽略列表上,则处理器804继续到方框1125。
[0148]随后,在方框1125,处理器804确定设备802的状态。用户接口 826可以是处于至少两种状态(其可以包括后台状态和前台状态)中的一种。处理器804可以基于存在或不存在到用户接口 826的一个或多个输入,来确定用户接口 822的状态。在实施例中,与响应于通过用户接口 822的输入而生成的通信相比,处理器804可以判断被拦截的通信是否是由应用所自动生成的后台通信。
[0149]随后,在方框1130,处理器804确定网络接口的状态。在实施例中,网络接口可以包括收发机814、发射机810和/或接收机812。网络接口可以是处于至少两种状态(其可以包括后台状态和前台状态)中的一种。处理器804可以基于收发机814的无线功率和/或连接状态来确定用户接口 822的状态。在实施例中,处理器804可以确定多个网络接口状态。
[0150]然后,在方框1135,处理器804基于所拦截的应用通信来记录一个或多个通信统计。通信统计可以包括例如针对在后台模式期间活动的应用的应用标识符(例如,完整的或者部分的名称、或者数字的标识符)、由应用传送的数据的量、应用发起了多少连接、应用进行的传输控制协议(TCP)请求的数量、发送的用户数据报协议(UDP)分组的数量、发送的域名服务(DNS)请求的数量等等。TCP请求统计可以包括关于诸如“connect”、“write”、“FIN”、“RST”等等之类的特定请求的统计。通信统计可以包括原始数据、或者在指定的时间窗期间的请求或者分组的统计计算(例如,最小值、最大值、平均值、中间值、标准偏差等等)。通信统计还可以包括诸如例如设备标识符、SM卡标识符、家庭网络身份、移动国家码、移动网络码、设备802的位置等等之类的额外的信息。
[0151]处理器804可以将所记录的通信统计存储在存储器806中,以及可以通过DSP820对所记录的通信统计进行压缩、加密或者以其它方式编码。处理器804可以基于用户接口826和/或网络接口的状态,单独地存储通信统计。例如,处理器804可以针对无线设备802的下面每一种状态,单独地存储通信统计:用户接口 826活动并且网络接口活动、用户接口 826活动并且网络接口不活动、用户接口 826不活动并且网络接口活动、和/或用户接口 826不活动并且网络接口不活动。如本文所使用的,处理器804可以通过维持多个不同的数据库,通过将每一个通信统计标记上用户接口 826和/或网络接口的状态等等,对通信统计“单独地”进行存储。本领域中具有普通技能的人员将认识到的是,可以以任何方式来完成通信统计的单独存储,其中所述任何方式允许在无线设备802的不同状态期间记录的通信统计之间的区分。在多个实施例中,处理器804可以基于无线设备802的其它状态(诸如例如,功率状态、用于指示时间和日期的时钟状态、网络接入状态等等)来单独地存储通信统计。
[0152]接着,在方框1140,处理器804判断是否报告所积累的通信统计。处理器804可以确定报告标准(例如,记录的统计的门限数量),所述报告标准将使处理器804向服务器110报告通信统计。在实施例中,处理器804可以在定期的基础上(例如,每小时、每天、每周、每月等等)报告所记录的通信统计。在实施例中,当所记录的统计的数量达到门限值和/或当所记录的统计的大小达到门限值时,处理器804可以报告所记录的通信统计。在实施例中,当指定的无线单元(例如,W1-Fi或者蜂窝无线单元)被启用时,处理器804可以仅报告统计。处理器804可以将前述的报告标准中的一个或多个进行组合,或者使用额外的标准。在实施例中,处理器804可以接收关于如何以及何时从服务器110报告通信统计的指令。如果处理器804确定没有满足报告标准,则处理器不报告所记录的通信统计,以及在方框1125处等待。如果处理器804确定已满足报告标准,则处理器继续到方框1145。
[0153]最后,在方框1145,处理器804通过发射机810和/或收发机814向服务器110发送所记录的通信统计。处理器804可以通过HTTP POST方法、文件传送协议(FTP)传送,将所记录的通信统计发送成电子邮件,或者通过任何其它通信方式来发送。在处理器804向服务器110发送所记录的通信统计之后,处理器804可以从存储器806中删除所记录的通信统计,或者可以保存所记录的通信统计以便日后使用。当向服务器110发送所记录的通信统计之后,处理器804可以从服务器110接收响应,所述响应可以包括下面各项中的一项或多项:忽略列表、排除列表、包含列表、关于何时报告通信统计的指令的列表、以及关于如何记录通信统计的指令的列表。
[0154]图12示出了应用通信接入策略的示例性方法的流程图1200。在实施例中,流程图1200的一个或多个方面可以对应于图3的方框308。虽然本文参照上文关于图8讨论的设备802描述了流程图1200的方法,但本领域中具有普通技能的人员将认识到的是,流程图1200的方法可以通过上文关于图1所讨论的无线设备132、上文关于图2所讨论的无线设备202和/或任何其它适当的设备来实现。在实施例中,流程图1200中的步骤可以通过处理器805结合发射机810、接收机812、存储器806和用户接口 822来执行。虽然本文参照特定的顺序描述了流程图1200的方法,但在多个实施例中,可以以不同的顺序来执行本文的方框,或者可以省略一些方框,以及可以增加额外的方框。
[0155]首先,在方框1205,设备802通过接收机812接收通信接入策略。处理器804可以将通信接入策略存储在存储器806中。在实施例中,设备802从服务器110接收通信接入策略。如上文关于图7-8所讨论的,通信接入策略可以指定设备802应当如何延迟应用通?目。
[0156]接着,在方框1210,处理器804拦截来自在处理器804上执行的应用的一个或多个通信。处理器804可以通过上文关于通信管理系统138和/或连接引擎208所描述的工具来拦截通信。在实施例中,DSP820、信号检测器818、发射机810和/或收发机814可以拦截通信。
[0157]随后,在方框1215,处理器804确定设备状态。设备可以是处于至少两种状态(其可以包括前台状态和后台状态)中的一种。在实施例中,前台状态可以是前景状态,后台状态可以是背景状态。处理器804可以通过用户接口 822来确定设备的状态。在实施例中,与响应于通过用户接口 822的输入而生成的通信相比,处理器804可以判断被拦截的通信是否是由应用所自动生成的后台通信。
[0158]随后,在方框1220,处理器804判断设备802是否处于后台状态。如果设备没有处于后台状态,则处理器804不延迟应用通信,以及在方框1225,允许通信继续。如果设备处于后台状态,则处理器804继续到方框1230。在一个实施例中,可以省略方框1215和1220,可以不管设备802是否处于后台状态可以延迟应用通信。
[0159]此后,在方框1230,处理器804判断发送窗630是否是打开的。如上文关于图6_7所讨论的,处理器804可以基于通信接入策略来判断发送窗630是否是打开的。例如,如果被拦截的应用通信不在包含列表之中,则处理器804可以打开发送窗630。在实施例中,判断发送窗630是否是打开的可以包括响应于应用通信、事件或者其它触发来打开发送窗630。如果发送窗630是打开的,则处理器804不延迟应用通信,以及在方框1225,允许通信继续。如果关闭发送窗630,则处理器804继续到方框1235。
[0160]之后,在方框1235,处理器804根据通信接入策略对所拦截的通信进行延迟。例如,处理器804可以确定下面各项的一种或多种延迟标准:针对其可以延迟通信的应用的列表(“包含列表”)、针对其不可以延迟通信的应用的列表(“排除列表”)、针对其可以延迟或者不可以延迟通信的通信类型的列表、在其期间可以延迟或`者不可以延迟通信的网络状况的列表、在其期间可以延迟或者不可以延迟通信的时间的指示、可以延迟或者不可以延迟通信的位置的指示。处理器804基于所确定的延迟标准,将允许或者延迟应用通信。在一些实施例中,处理器804可以确定额外的延迟标准。如果处理器804确定应当允许应用通信,则处理器804继续到方框1225。如果处理器804确定应当延迟应用通信,则处理器804继续到方框1210。
[0161]图13示出了被配置为实现通信接入策略的另一种示例性设备1300。设备1300包括接收模件1310、延迟模件1320和允许模件1330。接收模件1310可以被配置为执行上文关于图12中所示出的方框1205所讨论的功能中的一个或多个功能。接收模件1310可以对应于上文关于图8所讨论的接收机812、处理器804、收发机814和存储器806中的一个或多个。接收模件1310还可以对应于上文关于图2所讨论的TX/RX无线单元212和处理器202中的一个或多个。
[0162]延迟模件1320可以被配置为执行上文关于图12中所示出的方框1235所讨论的功能中的一个或多个功能。延迟模件1320可以对应于上文关于图8所讨论的处理器804和发射机810中的一个或多个。延迟模件1320还可以对应于上文关于图2所讨论的TX/RX无线单元212、连接引擎208、联网模件210和处理器202中的一个或多个。
[0163]允许模件1330可以被配置为执行上文关于图12中所示出的方框1225所讨论的功能中的一个或多个。允许模件1330可以对应于上文关于图8所讨论的处理器804和发射机810中的一个或多个。允许模件1330还可以对应于上文关于图2所讨论的TX/RX无线单元212、连接引擎208、联网模件210和处理器202中的一个或多个。
[0164]本领域的技术人员将理解的是,信息和信号可以使用多种不同的工艺和技术中的任何一种来表示。例如,遍及以上描述所提及的数据、指令、命令、信息、信号、比特、符号和码片可以由电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。
[0165]技术人员还将认识到的是,结合本文公开的实施例描述的各种说明性的逻辑方框、模件、电路和算法步骤可以实现为电子硬件、计算机软件或二者的组合。为了清楚地说明硬件和软件的这种互换性,上文围绕各种说明性的部件、方框、模件、电路和步骤的功能,已经对它们进行了一般性描述。至于这样的功能是实现为硬件还是软件,取决于特定的应用以及施加在整个系统上的设计约束。熟练的技术人员可以针对各特定的应用,以变通的方式来实现所描述的功能,但是这样的实现决策不应当被解释为引起脱离本发明的示例性实施例的范围。
[0166]结合本文公开的实施例描述的各种说明性的逻辑方框、模件和电路可以利用被设计为执行本文描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)JI场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件部件或者其任意组合来实现或执行。通用处理器可以是微处理器,但是在替代的方式中,处理器可以是任何处理器、控制器、微控制器或者状态机。处理器还可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它这样的配置。
[0167]结合本文公开的实施例描述的方法或者算法的步骤可以直接地体现在硬件中、由处理器执行的软件模件中,或者二者的组合中。软件模件可以位于随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM (EPR0M)、电可擦除可编程ROM (EEPR0M)、寄存器、硬盘、可移动盘、CD-ROM或者本领域已知的任何其它形式的存储介质中。将示例性的存储介质耦合到处理器,以使处理器可以从存储介质读取信息,以及向存储介质写入信息。在替代的方式中,存储介质可以被整合到处理器中。处理器和存储介质可以位于ASIC中。ASIC可以位于用户终端中。在替代的方式中,处理器和存储介质可以作为分立部件存在于用户终端中。
[0168]在一个或多个示例性实施例中,所描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则所述功能可以作为一个或多个指令或代码存储在计算机可读介质中或者通过其进行传输。计算机可读介质包括计算机存储介质和通信介质二者,所述通信介质包括促进计算机程序从一个地方传送到另一个地方的任何介质。存储介质可以是可由计算机存取的任何可用的介质。通过举例而非限制性的方式,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者可以用于以指令或数据结构的形式携带或存储期望的程序代码以及可以由计算机来存取的任何其它的介质。此外,任何连接可以适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或无线技术(例如红外线、无线电和微波)从网站、服务器或其它远程源发送软件,则同轴电缆、光纤光缆、双绞线、DSL或无线技术(例如红外线、无线电和微波)包括在介质的定义中。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则通常利用激光来光学地复制数据。上述的组合也应当包括在计算机可读介质的范围内。
[0169]提供所公开的示例性实施例的前述描述,以使本领域的任何技术人员能够实现或使用本发明。对这些示例性实施例的各种修改对于本领域的技术人员将是显而易见的,以及在不脱离本发明的精神或范围的情况下,本文所定义的通用原则可以应用到其它实施例中。因此,本发明不旨在受限于本文示出的示例性实施例,而是符合与本文所公开的原则和新颖性特征相一致的最宽的范围。
[0170]要理解的是,本权利要求并不受限于上文示出的精确的配置和部件。在不脱离本权利要求的范围情况下,可以对上文所述的方法和装置的排列、操作和细节做出各种修改、改变和变形。
[0171]虽然上述内容是针对于本公开内容的方面,但是在不脱离其基本范围的情况下可以设计出本公开内容的其它的和进一步的方面,以及其范围是由所附的权利要求来确定的。
【权利要求】
1.一种无线设备,包括: 网络接口,所述网络接口被配置为与通信网络交换数据; 输入设备,所述输入设备被配置为接收一个或多个输入; 处理器,所述处理器电力地连接到所述网络接口,所述处理器被配置为: 基于存在或不存在一个或多个输入,判断所述设备是处于后台状态还是前台状态;执行多个应用,所述多个应用被配置为经由所述网络接口与所述通信网络进行通信;当所述设备处于所述后台状态时,针对所述多个应用中的一个或多个应用,收集一个或多个通信统计;以及 当所述设备处于所述前台状态时,执行以下操作中的任意一种: 与当所述设备处于所述后台状态时收集的所述通信统计分开,收集所述一个或多个通信统计;或者 避免收集所述一个或多个通信统计。
2.根据权利要求1所述的无线设备,还包括: 发射机,所述发射机被配置为向服务器发送所述通信统计。
3.根据权利要求2所述的无线设备,还包括: 接收机,所述接收机被配置为从所述服务器接收指令, 其中,所述处理器还被配置为根`据所述指令,收集所述一个或多个通信统计。
4.根据权利要求2所述的无线设备,还包括: 接收机,所述接收机被配置为从所述服务器接收指令, 其中,所述发射机被配置为根据所述指令报告所述一个或多个通信统计。
5.根据权利要求1所述的无线设备,其中,所述处理器还被配置为: 拦截来自应用的通信; 判断所述应用是否在所述设备处于后台状态时生成被拦截的通信;以及当所述应用响应于前台状态而生成所述被拦截的通信时,分别地收集针对所述被拦截的通信的一个或多个通信统计。
6.根据权利要求2所述的无线设备,还包括: 接收机,所述接收机被配置为从所述服务器接收指令, 其中,所述处理器还被配置为根据所述指令,延迟一个或多个通信。
7.根据权利要求6所述的无线设备,其中,所述指令包括:当延迟所述通信时,所述处理器应当包括和/或排除的应用的列表。
8.根据权利要求7所述的无线设备,其中,所述指令包括:当延迟所述通信时,所述处理器应当包括和/或排除的应用套接字操作的列表。
9.根据权利要求3所述的无线设备,其中,所述指令包括:当收集所述通信统计时,所述处理器应当包括和/或排除的应用的列表。
10.根据权利要求3所述的无线设备,其中,所述指令包括:当收集所述通信统计时,所述处理器应当包括和/或排除的套接字操作的列表。
11.根据权利要求4所述的无线设备,其中,所述指令包括:所述发射机应当在其上发送所述通信统计的通信网络的列表。
12.根据权利要求4所述的无线设备,其中,所述指令包括:用于指示所述发射机应当何时发送所述通信统计的指令。
13.根据权利要求1所述的无线设备,其中,所述通信统计包括:在所述后台模式期间处于前台的应用的列表。
14.根据权利要求1所述的无线设备,其中,所述通信统计包括:针对每一个应用,在后台模式期间由一个或多个应用发起的连接的数量。
15.根据权利要求1所述的无线设备,其中,所述通信统计包括:针对每一个应用,在所述后台模式期间传送的数据的量,以及其中,所述通信统计包括一个或多个套接字操作和所执行的套接字操作的数量的计数。
16.根据权利要求1所述的无线设备,其中,所述处理器被配置为通过应用和套接字操作类型,对所述通信统计进行分类。
17.根据权利要求16所述的无线设备,其中,所述套接字操作类型包括具有以下各项的列表中的至少一项操作:bind()、connect ()、accept O、send()、recv ()、write ()、read ()、sendto ()、recvfrom ()、close ()、gethostbyname ()和 gethostbyaddr ()。
18.根据权利要求1所述的无线设备,其中,所述通信统计包括:所述处理器开始收集所述通信统计的时间以及所述处理器停止收集所述通信统计的时间。
19.根据权利要求1所述的装置,其中,所述通信统计包括:用于标识针对一个或多个套接字操作所使用的通信接口的信息。
20.一种收集应用通信统计的方法,所述方法包括: 基于存在或不存在一个或多个输入,判断设备是处于前台状态还是后台状态; 执行多个应用,所述多个应用被配置为与通信网络进行通信; 当所述设备处于所述后台状态时,针对所述多个应用中的一个或多个应用,收集一个或多个通信统计;以及 当所述设备处于所述前台状态时,执行以下操作中的任意一种: 与当所述设备处于所述后台状态时收集的所述通信统计分开,收集所述一个或多个通信统计;或者 避免收集所述一个或多个通信统计。
21.根据权利要求20所述的方法,还包括: 向服务器发送所述通信统计。
22.根据权利要求21所述的方法,还包括: 从所述服务器接收指令,以及 根据所述指令,收集所述一个或多个通信统计。
23.根据权利要求21所述的方法,还包括: 从所述服务器接收指令,以及 根据所述指令,发送所述一个或多个通信统计。
24.根据权利要求20所述的方法,还包括: 拦截来自应用的通信; 判断所述应用是否是响应于用户接口输入而生成被拦截的通信;以及当所述应用响应于用户接口输入而生成所述被拦截的通信时,分别地收集针对所述被拦截的通信的所述一个或多个通信统计。
25.根据权利要求21所述的方法,还包括: 从所述服务器接收指令;以及 根据所述指令,延迟一个或多个通信。
26.根据权利要求25所述的方法,其中,所述指令包括:当延迟所述通信时,包括和/或排除的应用的列表。
27.根据权利要求26所述的方法,其中,所述指令包括:当延迟所述通信时,包括和/或排除的应用套接字操作的列表。
28.根据权利要求22所述的方法,其中,所述指令包括:当收集所述通信统计时,包括和/或排除的应用的列表。
29.根据权利 要求22所述的方法,其中,所述指令包括:当收集所述通信统计时,包括和/或排除的套接字操作的列表。
30.根据权利要求23所述的方法,其中,所述指令包括:应当在其上发送所述通信统计的通信网络的列表。
31.根据权利要求23所述的方法,其中,所述指令包括:用于指示应当何时发送所述通信统计的指令。
32.根据权利要求20所述的方法,其中,所述通信统计包括:在所述后台模式期间处于前台的应用的列表。
33.根据权利要求20所述的方法,其中,所述通信统计包括:针对每一个应用,在所述后台模式期间由一个或多个应用发起的连接的数量。
34.根据权利要求20所述的方法,其中,所述通信统计包括:针对每一个应用,在所述后台模式期间传送的数据的量,以及其中,所述通信统计包括一个或多个套接字操作和所执行的套接字操作的数量的计数。
35.根据权利要求20所述的方法,还包括: 通过应用和套接字操作类型,对所述通信统计进行分类。
36.根据权利要求35所述的方法,其中,所述套接字操作类型包括具有以下各项的列表中的至少一项操作:bind O、connect O、accept O、send ()、recv ()、write ()、read ()、sendto ()、recvfrom ()、close ()、gethostbyname ()和 gethostbyaddr ()。
37.根据权利要求20所述的方法,其中,所述通信统计包括:收集所述通信统计的时间以及收集所述通信统计的时间。
38.根据权利要求20所述的方法,其中,所述通信统计包括:用于标识针对一个或多个套接字操作所使用的通信接口的信息。
39.一种用于收集应用通信统计的装置,所述装置包括: 用于基于存在或不存在一个或多个输入,判断所述装置是处于前台状态还是后台状态的模块; 用于执行多个应用的模块,所述多个应用被配置为与通信网络进行通信; 用于当所述装置处于所述后台状态时,针对所述多个应用中的一个或多个应用,收集一个或多个通信统计的模块;以及 以下中的任意一个: 用于与当所述设备处于所述后台状态时收集的所述通信统计分开,收集当所述设备处于所述前台状态时的所述一个或多个通信统计的模块;或者 用于当所述设备处于所述前台状态时,避免收集所述一个或多个通信统计的模块。
40.根据权利要求39所述的装置,还包括: 用于向服务器发送所述通信统计的模块。
41.根据权利要求40所述的装置,还包括: 用于从所述服务器接收指令的模块;以及 用于根据所述指令收集所述一个或多个通信统计的模块。
42.根据权利要求40所述的装置,还包括: 用于从所述服务器接收指令的模块;以及 用于根据所述指令发送所述一个或多个通信统计的模块。
43.根据权利要求39所述的装置,还包括: 用于拦截来自应用的通信的模块; 用于判断所述应用是否是响应于用户接口输入而生成被拦截的通信的模块;以及用于当所述应用响应于用户接口输入而生成所述被拦截的通信时,分别地收集针对所述被拦截的通信的所述一个或多个通信统计的模块。
44.根据权利要求40所述的装置,还包括: 用于从所述服务器接收指令的`模块;以及 用于根据所述指令延迟一个或多个通信的模块。
45.根据权利要求44所述的装置,其中,所述指令包括:当延迟所述通信时,包括和/或排除的应用的列表。
46.根据权利要求45所述的装置,其中,所述指令包括:当延迟所述通信时,包括和/或排除的应用套接字操作的列表。
47.根据权利要求41所述的装置,其中,所述指令包括:当收集所述通信统计时,包括和/或排除的应用的列表。
48.根据权利要求41所述的装置,其中,所述指令包括:当收集所述通信统计时,包括和/或排除的套接字操作的列表。
49.根据权利要求42所述的装置,其中,所述指令包括:应当在其上发送所述通信统计的通信网络的列表。
50.根据权利要求42所述的装置,其中,所述指令包括:用于指示应当何时发送所述通信统计的指令。
51.根据权利要求39所述的装置,其中,所述通信统计包括:在所述后台模式期间处于前台的应用的列表。
52.根据权利要求39所述的装置,其中,所述通信统计包括:针对每一个应用,在所述后台模式期间由一个或多个应用发起的连接的数量。
53.根据权利要求39所述的装置,其中,所述通信统计包括:针对每一个应用,在所述后台模式期间传送的数据的量,以及其中所述通信统计包括一个或多个套接字操作和所执行的套接字操作的数量的计数。
54.根据权利要求39所述的装置,还包括: 用于通过应用和套接字操作类型对所述通信统计进行分类的模块。
55.根据权利要求54所述的装置,其中,所述套接字操作类型包括具有以下各项的列表中的至少一项操作:bind O、connect O、accept O、send ()、recv ()、write ()、read ()、sendto ()、recvfrom ()、close ()、gethostbyname ()和 gethostbyaddr ()。
56.根据权利要求39所述的装置,其中,所述通信统计包括:所述用于收集的模块开始收集所述通信统计的时间以及所述用于收集的模块停止收集所述通信统计的时间。
57.根据权利要求39所述的装置,其中,所述通信统计包括:用于标识针对一个或多个套接字操作所使用的通信接口的信息。
58.一种包括代码的非暂时性计算机可读介质,当所述代码被执行时,使得装置执行下面的操作: 基于存在或不存在一个或多个输入,判断所述装置是处于前台状态还是后台状态; 执行多个应用,所述多个应用被配置为与通信网络进行通信; 当所述装置处于所述后台状态时,针对所述多个应用中的一个或多个应用,收集一个或多个通信统计;以及 当所述装置处于所述前台状态时,执行以下操作中的任意一种: 与当所述装置处于所述后台状态时收集的所述通信统计分开,收集所述一个或多个通信统计;或者 避免收集所述通信统计。
59.根据权利要求58所述的介质,还包括: 当被执行时,使得所述装置向服务器发送所述通信统计的代码。
60.根据权利要求59所述的介质,还包括:当被执行时,使得所述装置执行下面操作的代码: 从所述服务器接收指令;以及 根据所述指令,收集所述一个或多个通信统计。
61.根据权利要求59所述的介质,还包括:当被执行时,使得所述装置执行下面操作的代码: 从所述服务器接收指令;以及 根据所述指令,发送所述一个或多个通信统计。
62.根据权利要求58所述的介质,还包括:当被执行时,使得所述装置执行下面操作的代码: 拦截来自应用的通信; 判断所述应用是否是响应于用户接口输入而生成被拦截的通信;以及当所述应用响应于用户接口输入而生成所述被拦截的通信时,分别地收集针对所述被拦截的通信的所述一个或多个通信统计。
63.根据权利要求59所述的介质,还包括:当被执行时,使得所述装置执行下面操作的代码: 从所述服务器接收指令;以及 根据所述指令,延迟一个或多个通信。
64.根据权利要求63所述的介质,其中,所述指令包括:当延迟所述通信时,包括和/或排除的应用的列表。
65.根据权利要求64所述的介质,其中,所述指令包括:当延迟所述通信时,包括和/或排除的应用套接字操作的列表。
66.根据权利要求60所述的介质,其中,所述指令包括:当收集所述通信统计时,包括和/或排除的应用的列表。
67.根据权利要求60所述的介质,其中,所述指令包括:当收集所述通信统计时,包括和/或排除的套接字操作的列表。
68.根据权利要求61所述的介质,其中,所述指令包括:应当在其上发送所述通信统计的通信网络的列表。
69.根据权利要求61所述的介质,其中,所述指令包括:用于指示应当何时发送所述通信统计的指令。
70.根据权利要求58所述的介质,其中,所述通信统计包括:在所述后台模式期间处于前台的应用的列表。
71.根据权利要求58所述的介质,其中,所述通信统计包括:针对每一个应用,在所述后台模式期间由一个或多个应用发起的连接的数量。
72.根据权利要求58所述的介质,其中,所述通信统计包括:针对每一个应用,在所述后台模式期间传送的数据的量,以及其中,所述通信统计包括一个或多个套接字操作和所执行的套接字操作的数量的计数。
73.根据权利要求39所述的装置,还包括: 用于通过应用和套接字操作类型对`所述通信统计进行分类的模块。
74.根据权利要求73所述的装置,其中,所述套接字操作类型包括具有以下各项的列表中的至少一项操作:bind O、connect O、accept O、send ()、recv ()、write ()、read ()、sendto ()、recvfrom ()、close ()、gethostbyname ()和 gethostbyaddr ()。
75.根据权利要求39所述的装置,其中,所述通信统计包括:所述用于收集的模块开始收集所述通信统计的时间以及所述用于收集的模块停止收集所述通信统计的时间。
76.根据权利要求39所述的装置,其中,所述通信统计包括:用于标识针对一个或多个套接字操作所使用的通信接口的信息。
77.根据权利要求58所述的介质,还包括:当被执行时,使得所述装置通过应用和套接字操作类型对所述通信统计进行分类的代码。
78.根据权利要求77所述的介质,其中,所述套接字操作类型包括具有以下各项的列表中的至少一项操作:bind O、connect O、accept O、send ()、recv ()、write ()、read ()、sendto ()、recvfrom ()、close ()、gethostbyname ()和 gethostbyaddr ()。
79.根据权利要求58所述的介质,其中,所述通信统计包括:收集所述通信统计的时间以及收集所述通信统计的时间。
80.根据权利要求58所述的介质,其中,所述通信统计包括:用于标识针对一个或多个套接字操作所使用的通信接口的信息。
【文档编号】H04W52/02GK103891363SQ201280049576
【公开日】2014年6月25日 申请日期:2012年8月29日 优先权日:2011年8月29日
【发明者】A·梅朗, L·本-祖尔, G·贾雷塔, T·R·沙阿 申请人:高通股份有限公司