网络流量统计方法及装置转让专利

申请号 : CN201610622084.1

文献号 : CN106230662B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王乐刘鸣刘健全

申请人 : 北京小米移动软件有限公司

摘要 :

本公开是关于一种网络流量统计方法及装置,其中,方法包括:当第一应用程序通过第二应用程序访问网络时,获取所述第二应用程序在访问网络的过程中创建的所有socket文件描述符;获取所述第一应用程序对应的第一用户身份标识信息;使用所述第一用户身份标识信息标记所述所有socket文件描述符;根据标记后的所有socket文件描述符,确定所述第一应用程序在访问网络的过程中所使用的流量。通过该技术方案,就可以确定第一应用程序在访问网络的过程中所使用的流量,从而避免将访问网络过程中的所有流量都统计到第二应用程序的名下,使得流量统计更精细和准确。

权利要求 :

1.一种网络流量统计方法,其特征在于,包括:当第一应用程序通过第二应用程序访问网络时,获取所述第二应用程序在访问网络的过程中创建的所有socket文件描述符;

获取所述第一应用程序对应的第一用户身份标识信息;

使用所述第一用户身份标识信息标记所述所有socket文件描述符;

根据标记后的所有socket文件描述符,确定所述第一应用程序在访问网络的过程中所使用的流量;

所述使用所述第一用户身份标识信息标记所述所有socket文件描述符,包括:从所述所有socket文件描述符中获取第二应用程序对应的第二用户身份标识信息;

使用所述第一用户身份标识信息替代所述所有socket文件描述符中的第二用户身份标识信息。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将确定的所述流量保存到操作系统支持的统计信息数据文件中;

当接收到第一流量查询命令时,从所述统计信息数据文件中获取所述流量。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:接收所述第一应用程序在预设时间段内所使用的流量总量的查询命令;

根据所述查询命令,从所述统计信息数据文件中获取预设时间段内保存的关于所述第一应用程序的所有流量信息;

对所述所有流量信息进行统计,得到所述流量总量。

4.根据权利要求1所述的方法,其特征在于,所述获取所述第一应用程序对应的第一用户身份标识信息,包括:从所述第一应用程序对应的进程中获取所述第一用户身份标识信息。

5.一种网络流量统计装置,其特征在于,包括:第一获取模块,用于当第一应用程序通过第二应用程序访问网络时,获取所述第二应用程序在访问网络的过程中创建的所有socket文件描述符;

第二获取模块,获取所述第一应用程序对应的第一用户身份标识信息;

标记模块,用于使用所述第一用户身份标识信息标记所述所有socket文件描述符;

确定模块,用于根据标记后的所有socket文件描述符,确定所述第一应用程序在访问网络的过程中所使用的流量;

所述标记模块包括:

获取子模块,用于从所述所有socket文件描述符中获取第二应用程序对应的第二用户身份标识信息;

替代子模块,用于使用所述第一用户身份标识信息替代所述所有socket文件描述符中的第二用户身份标识信息。

6.根据权利要求5所述的装置,其特征在于,所述装置还包括:存储模块,用于将确定的所述流量保存到操作系统支持的统计信息数据文件中;

第三获取模块,用于当接收到第一流量查询命令时,从所述统计信息数据文件中获取所述流量。

7.根据权利要求6所述的装置,其特征在于,所述装置还包括:接收模块,用于接收所述第一应用程序在预设时间段内所使用的流量总量的查询命令;

第四获取模块,用于根据所述查询命令,从所述统计信息数据文件中获取预设时间段内保存的关于所述第一应用程序的所有流量信息;

统计模块,用于对所述所有流量信息进行统计,以得到所述流量总量。

8.根据权利要求5所述的装置,其特征在于,所述第二获取模块用于:从所述第一应用程序对应的进程中获取所述第一用户身份标识信息。

9.一种网络流量统计装置,其特征在于,包括:处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

当第一应用程序通过第二应用程序访问网络时,获取所述第二应用程序在访问网络的过程中创建的所有socket文件描述符;

获取所述第一应用程序对应的第一用户身份标识信息;

使用所述第一用户身份标识信息标记所述所有socket文件描述符;

根据标记后的所有socket文件描述符,确定所述第一应用程序在访问网络的过程中所使用的流量;

所述使用所述第一用户身份标识信息标记所述所有socket文件描述符,包括:从所述所有socket文件描述符中获取第二应用程序对应的第二用户身份标识信息;

使用所述第一用户身份标识信息替代所述所有socket文件描述符中的第二用户身份标识信息。

说明书 :

网络流量统计方法及装置

技术领域

[0001] 本公开涉及流量统计技术领域,尤其涉及一种网络流量统计方法及装置。

背景技术

[0002] 在Android系统中会出现很多单个应用程序APP为其他应用程序提供网络服务的情况,例如系统下载程序、PUSH通道等。在这种情况下产生的网络流量都会统计到网络流量真正发生的APP上。这样导致该类APP会积累很多流量,而且无法准确区分请求者各自的流量消耗情况。
[0003] 为了解决上述技术问题,现有的技术方案是产生网络请求的APP通过记录请求APP的信息,区分记录各个APP通过自己消耗的流量。然后提供给各个模块查询,自己产生的流量都是给哪些APP消耗的。
[0004] 这种方式不是Android系统的官方支持方式,Android系统提供的流量查询方式无法把流量承担APP记录的细分数据合并到原始数据,第三方应用查询的时候还是流量承担APP消耗了所有流量。

发明内容

[0005] 本公开实施例提供一种网络流量统计方法及装置,包括如下技术方案:
[0006] 根据本公开实施例的第一方面,提供一种网络流量统计方法,包括:
[0007] 当第一应用程序通过第二应用程序访问网络时,获取所述第二应用程序在访问网络的过程中创建的所有socket文件描述符;
[0008] 获取所述第一应用程序对应的第一用户身份标识信息;
[0009] 使用所述第一用户身份标识信息标记所述所有socket文件描述符;
[0010] 根据标记后的所有socket文件描述符,确定所述第一应用程序在访问网络的过程中所使用的流量。
[0011] 在一个实施例中,所述方法还包括:
[0012] 将确定的所述流量保存到操作系统支持的统计信息数据文件中;
[0013] 当接收到第一流量查询命令时,从所述统计信息数据文件中获取所述流量。
[0014] 在一个实施例中,所述方法还包括:
[0015] 接收所述第一应用程序在预设时间段内所使用的流量总量的查询命令;
[0016] 根据所述查询命令,从所述统计信息数据文件中获取预设时间段内保存的关于所述第一应用程序的所有流量信息;
[0017] 对所述所有流量信息进行统计,以得到所述流量总量。
[0018] 在一个实施例中,所述获取所述第一应用程序对应的第一用户身份标识信息,包括:
[0019] 从所述第一应用程序对应的进程中获取所述第一用户身份标识信息。
[0020] 在一个实施例中,所述使用所述第一用户身份标识信息标记所述所有socket文件描述符,包括:
[0021] 从所述所有socket文件描述符中获取第二应用程序对应的第二用户身份标识信息;
[0022] 使用所述第一用户身份标识信息替代所述所有socket文件描述符中的第二用户身份标识信息。
[0023] 根据本公开实施例的第二方面,提供一种网络流量统计装置,包括:
[0024] 第一获取模块,用于当第一应用程序通过第二应用程序访问网络时,获取所述第二应用程序在访问网络的过程中创建的所有socket文件描述符;
[0025] 第二获取模块,获取所述第一应用程序对应的第一用户身份标识信息;
[0026] 标记模块,用于使用所述第一用户身份标识信息标记所述所有socket文件描述符;
[0027] 确定模块,用于根据标记后的所有socket文件描述符,确定所述第一应用程序在访问网络的过程中所使用的流量。
[0028] 在一个实施例中,所述装置还包括:
[0029] 存储模块,用于将确定的所述流量保存到操作系统支持的统计信息数据文件中;
[0030] 第三获取模块,用于当接收到第一流量查询命令时,从所述统计信息数据文件中获取所述流量。
[0031] 在一个实施例中,所述装置还包括:
[0032] 接收模块,用于接收所述第一应用程序在预设时间段内所使用的流量总量的查询命令;
[0033] 第四获取模块,用于根据所述查询命令,从所述统计信息数据文件中获取预设时间段内保存的关于所述第一应用程序的所有流量信息;
[0034] 统计模块,用于对所述所有流量信息进行统计,以得到所述流量总量。
[0035] 在一个实施例中,所述第二获取模块用于:
[0036] 从所述第一应用程序对应的进程中获取所述第一用户身份标识信息。
[0037] 在一个实施例中,所述标记模块包括:
[0038] 获取子模块,用于从所述所有socket文件描述符中获取第二应用程序对应的第二用户身份标识信息;
[0039] 替代子模块,用于使用所述第一用户身份标识信息替代所述所有socket文件描述符中的第二用户身份标识信息。
[0040] 根据本公开实施例的第三方面,提供一种网络流量统计装置,包括:
[0041] 处理器;
[0042] 用于存储处理器可执行指令的存储器;
[0043] 其中,所述处理器被配置为:
[0044] 当第一应用程序通过第二应用程序访问网络时,获取所述第二应用程序在访问网络的过程中创建的所有socket文件描述符;
[0045] 获取所述第一应用程序对应的第一用户身份标识信息;
[0046] 使用所述第一用户身份标识信息标记所述所有socket文件描述符;
[0047] 根据标记后的所有socket文件描述符,确定所述第一应用程序在访问网络的过程中所使用的流量。
[0048] 本公开的实施例提供的技术方案可以包括以下有益效果:
[0049] 上述技术方案,当第一应用程序通过第二应用程序访问网络时,即请求访问的应用程序通过网络承担应用程序访问网络时,可以使用第一应用程序对应的第一用户身份标识信息标记在访问网络过程中创建的所有socket文件描述符,这样,就可以确定第一应用程序在访问网络的过程中所使用的流量,从而避免将访问网络过程中的所有流量都统计到第二应用程序的名下,使得流量统计更精细和准确。
[0050] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

[0051] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0052] 图1是根据一示例性实施例示出的一种网络流量统计方法的流程图。
[0053] 图2是根据一示例性实施例示出的另一种网络流量统计方法的流程图。
[0054] 图3是根据一示例性实施例示出的又一种网络流量统计方法的流程图。
[0055] 图4是根据一示例性实施例示出的另一种网络流量统计方法的流程图。
[0056] 图5是根据一示例性实施例示出的一种网络流量统计方法中步骤S103的流程图。
[0057] 图6是根据一示例性实施例示出的一种网络流量统计装置的框图。
[0058] 图7是根据一示例性实施例示出的另一种网络流量统计装置的框图。
[0059] 图8是根据一示例性实施例示出的另一种网络流量统计装置的框图。
[0060] 图9是根据一示例性实施例示出的一种网络流量统计装置中标记模块的框图。
[0061] 图10是根据一示例性实施例示出的一种用于网络流量统计装置的框图。

具体实施方式

[0062] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0063] 在Android操作系统每一个应用程序APP都拥有一个或者跟其他应用程序共享一个用户身份标识UID。Android操作系统以UID为标示来记录流量。当在APP运行过程中,APP的进程会携带自己的UID信息。所有进程产生网络请求的时候都需要创建一个socket FD,并且通过socket系统调用请求内核访问网络。相关技术中,系统内核会记录请求网络的进程的UID,然后把这个进程创建的socket FD所产生的网络流量都统计到这个UID上。此时,第一应用程序若通过第二应用程序访问网络,则访问网络过程中产生的流量都会统计到第二应用程序的名下。通过第三方应用程序并查不到第一应用程序在访问网络过程中产生的流量。
[0064] 为了解决上述技术问题,本公开实施例提供了一种网络流量统计方法,该方法可用于终端设备中,如移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
[0065] 图1是根据一示例性实施例示出的一种网络流量统计方法的流程图。
[0066] 如图1所示,该网络流量统计方法包括步骤S101-S104:
[0067] 在步骤S101中,当第一应用程序通过第二应用程序访问网络时,获取第二应用程序在访问网络的过程中创建的所有socket文件描述符;
[0068] 在第一应用程序通过第二应用程序访问网络时,在第二应用程序运行过程中,第二应用程序的进程会携带自己的用户身份标识信息,所有进程产生网络的时候都需要创建socket文件描述符,并且通过socket系统调用请求内核访问网络,即所有socket文件描述符都应该是使用第二应用程序对应的第二用户身份标识信息进行标识的。
[0069] 在步骤S102中,获取第一应用程序对应的第一用户身份标识信息;
[0070] 在步骤S103中,使用第一用户身份标识信息标记所有socket文件描述符;
[0071] 获取第一应用程序对应的第一用户身份标识信息,并使用第一用户身份标识信息标记第一应用程序在通过第二应用程序访问网络的过程中创建的所有socket文件描述符,这样,在此过程中产生的流量就可以统计到第一用户身份标识信息对应的第一应用程序的名下,从而实现操作系统底层的合理流量分配,从而避免将访问网络过程中的所有流量都统计到第二应用程序的名下,使得流量统计更精细和准确。
[0072] 在步骤S104中,根据标记后的所有socket文件描述符,确定第一应用程序在访问网络的过程中所使用的流量。
[0073] 在确定第一应用程序在访问网络的过程中所使用的流量时,可以获取在访问网络的过程中,所有产生的标记有第一用户身份标识信息的目标socket文件描述符,进而根据这些目标socket文件描述符统计出第一应用程序在访问网络过程中所使用的流量。
[0074] 在该实施例中,当第一应用程序通过第二应用程序访问网络时,即请求访问的应用程序通过网络承担应用程序访问网络时,可以使用第一应用程序对应的第一用户身份标识信息标记在访问网络过程中创建的所有socket文件描述符,这样,就可以确定第一应用程序在访问网络的过程中所使用的流量,从而避免将访问网络过程中的所有流量都统计到第二应用程序的名下,使得流量统计更精细和准确。
[0075] 例如,某购物应用程序通过浏览器应用程序访问网络时,在购物应用程序访问网络的过程中,所有进程产生网络的时候都会创建socket文件描述符,而进行流量统计时,也是根据这些socket文件描述符上标识的用户身份标识信息进行统计的,在本实施例中,获取购物应用程序的用户身份标识信息,并使用购物应用程序的用户身份标识信息标记访问网络过程中创建的socket文件描述符,这样,进行流量统计时,就可以统计出购物应用程序所使用的流量,而不会将此过程中产生的所有流量都统计到浏览器的名下,从而使得流量统计更精细和准确。
[0076] 图2是根据一示例性实施例示出的另一种网络流量统计方法的流程图。
[0077] 如图2所示,在一个实施例中,上述方法还包括步骤S201-S202:
[0078] 在步骤S201中,将确定的流量保存到操作系统支持的统计信息数据文件中;
[0079] 在步骤S202中,当接收到第一流量查询命令时,从统计信息数据文件中获取流量。
[0080] 在该实施例中,将确定的第一应用程序的流量保存到操作系统支持的统计信息数据文件中,这样,第三方应用程序查询的时候能够得到细分后的流量数据,使得流量统计更精细和准确。
[0081] 图3是根据一示例性实施例示出的又一种网络流量统计方法的流程图。
[0082] 如图3所示,在一个实施例中,上述方法还包括步骤S301-S303:
[0083] 在步骤S301中,接收第一应用程序在预设时间段内所使用的流量总量的查询命令;
[0084] 用户可以输入流量总量查询命令,查询第一应用程序在预设时间段内所使用的流量总量,如查询一个星期内第一应用程序使用的流量总量。
[0085] 在步骤S302中,根据查询命令,从统计信息数据文件中获取预设时间段内保存的关于第一应用程序的所有流量信息;
[0086] 当接收到查询命令时,可以根据时间条件对流量进行统计,如统计预设时间段内,第一应用程序所使用的所有流量。其中,用户或者厂商可以根据个人需要任意设置预设时间段,从而满足不同不同用户的不同流量统计需求。
[0087] 在步骤S303中,对所有流量信息进行统计,以得到流量总量。
[0088] 在该实施例中,当第一应用程序通过第二应用程序访问网络时,即请求应用程序通过网络承担应用程序访问网络时,可以统计请求应用程序在此过程中所使用的流量,即可以对流量统计进行细分,从而方便用户获知请求应用程序所产生的流量,提升用户的使用体验。
[0089] 图4是根据一示例性实施例示出的另一种网络流量统计方法的流程图。
[0090] 如图4所示,在一个实施例中,上述步骤S102包括步骤S401:
[0091] 在步骤S401中,从第一应用程序对应的进程中获取第一用户身份标识信息。
[0092] 在该实施例中,在第一应用程序对应的进程中,会包含第一用户身份标识信息,因此,可以在这些进程中获取第一用户身份标识信息,这样,可以保证第一用户身份标识信息的准确性。
[0093] 图5是根据一示例性实施例示出的一种网络流量统计方法中步骤S103的流程图。
[0094] 如图5所示,在一个实施例中,上述步骤S103包括步骤S501-S502:
[0095] 在步骤S501中,从所有socket文件描述符中获取第二应用程序对应的第二用户身份标识信息;
[0096] 在第一应用程序通过第二应用程序访问网络时,在第二应用程序运行过程中,第二应用程序的进程会携带自己的用户身份标识信息,所有进程产生网络的时候都需要创建socket文件描述符,并且通过socket系统调用请求内核访问网络,即所有socket文件描述符都应该是使用第二应用程序对应的第二用户身份标识信息进行标识的。因此,需要先从所有socket文件描述符中获取第二应用程序对应的第二用户身份标识信息。
[0097] 在步骤S502中,使用第一用户身份标识信息替代所有socket文件描述符中的第二用户身份标识信息。
[0098] 在获取到所有socket文件描述符中的第二用户身份标识信息后,用第一用户身份标识替代第二用户身份标识,这样,这些socket文件描述符中就都包含了第一用户身份标识信息,进行流量统计时,即可统计到第一应用程序的名下。
[0099] 其中,为了保证流量统计的安全有效性,可以设置在调用上述获取第一用户身份标识信息并用其替代第二用户身份标识信息时,需要操作系统权限,只有操作系统可以拥有这个权限,从而避免其他应用程序擅自修改socket文件描述符中的用户身份标识信息。
[0100] 下述为本公开装置实施例,可以用于执行本公开方法实施例。
[0101] 图6是根据一示例性实施例示出的一种网络流量统计装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为终端设备的部分或者全部。如图6所示,该网络流量统计装置包括:
[0102] 第一获取模块61,被配置为当第一应用程序通过第二应用程序访问网络时,获取所述第二应用程序在访问网络的过程中创建的所有socket文件描述符;
[0103] 第二获取模块62,被配置为获取所述第一应用程序对应的第一用户身份标识信息;
[0104] 标记模块63,被配置为使用所述第一用户身份标识信息标记所述所有socket文件描述符;
[0105] 确定模块64,被配置为根据标记后的所有socket文件描述符,确定所述第一应用程序在访问网络的过程中所使用的流量。
[0106] 在确定第一应用程序在访问网络的过程中所使用的流量时,可以获取在访问网络的过程中,所有产生的标记有第一用户身份标识信息的目标socket文件描述符,进而根据这些目标socket文件描述符统计出第一应用程序在访问网络过程中所使用的流量。
[0107] 在该实施例中,当第一应用程序通过第二应用程序访问网络时,即请求访问的应用程序通过网络承担应用程序访问网络时,可以使用第一应用程序对应的第一用户身份标识信息标记在访问网络过程中创建的所有socket文件描述符,这样,就可以确定第一应用程序在访问网络的过程中所使用的流量,从而避免将访问网络过程中的所有流量都统计到第二应用程序的名下,使得流量统计更精细和准确。
[0108] 例如,某购物应用程序通过浏览器应用程序访问网络时,在购物应用程序访问网络的过程中,所有进程产生网络的时候都会创建socket文件描述符,而进行流量统计时,也是根据这些socket文件描述符上标识的用户身份标识信息进行统计的,在本实施例中,获取购物应用程序的用户身份标识信息,并使用购物应用程序的用户身份标识信息标记访问网络过程中创建的socket文件描述符,这样,进行流量统计时,就可以统计出购物应用程序所使用的流量,而不会将此过程中产生的所有流量都统计到浏览器的名下,从而使得流量统计更精细和准确。
[0109] 图7是根据一示例性实施例示出的另一种网络流量统计装置的框图。
[0110] 如图7所示,在一个实施例中,上述装置还包括:
[0111] 存储模块71,被配置为将确定的所述流量保存到操作系统支持的统计信息数据文件中;
[0112] 第三获取模块72,被配置为当接收到第一流量查询命令时,从所述统计信息数据文件中获取所述流量。
[0113] 在该实施例中,将确定的第一应用程序的流量保存到操作系统支持的统计信息数据文件中,这样,第三方应用程序查询的时候能够得到细分后的流量数据,使得流量统计更精细和准确。
[0114] 图8是根据一示例性实施例示出的另一种网络流量统计装置的框图。
[0115] 如图8所示,在一个实施例中,上述装置还包括:
[0116] 接收模块81,被配置为接收所述第一应用程序在预设时间段内所使用的流量总量的查询命令;
[0117] 第四获取模块82,被配置为根据所述查询命令,从所述统计信息数据文件中获取预设时间段内保存的关于所述第一应用程序的所有流量信息;
[0118] 统计模块83,被配置为对所述所有流量信息进行统计,以得到所述流量总量。
[0119] 在该实施例中,当第一应用程序通过第二应用程序访问网络时,即请求应用程序通过网络承担应用程序访问网络时,可以统计请求应用程序在此过程中所使用的流量,即可以对流量统计进行细分,从而方便用户获知请求应用程序所产生的流量,提升用户的使用体验。
[0120] 在一个实施例中,所述第二获取模块62用于:
[0121] 从所述第一应用程序对应的进程中获取所述第一用户身份标识信息。
[0122] 在该实施例中,在第一应用程序对应的进程中,会包含第一用户身份标识信息,因此,可以在这些进程中获取第一用户身份标识信息,这样,可以保证第一用户身份标识信息的准确性。
[0123] 图9是根据一示例性实施例示出的一种网络流量统计装置中标记模块的框图。
[0124] 如图9所示,在一个实施例中,所述标记模块63包括:
[0125] 获取子模块91,被配置为从所述所有socket文件描述符中获取第二应用程序对应的第二用户身份标识信息;
[0126] 在第一应用程序通过第二应用程序访问网络时,在第二应用程序运行过程中,第二应用程序的进程会携带自己的用户身份标识信息,所有进程产生网络的时候都需要创建socket文件描述符,并且通过socket系统调用请求内核访问网络,即所有socket文件描述符都应该是使用第二应用程序对应的第二用户身份标识信息进行标识的。因此,需要先从所有socket文件描述符中获取第二应用程序对应的第二用户身份标识信息。
[0127] 替代子模块92,被配置为使用所述第一用户身份标识信息替代所述所有socket文件描述符中的第二用户身份标识信息。
[0128] 在获取到所有socket文件描述符中的第二用户身份标识信息后,用第一用户身份标识替代第二用户身份标识,这样,这些socket文件描述符中就都包含了第一用户身份标识信息,进行流量统计时,即可统计到第一应用程序的名下。
[0129] 根据本公开实施例的第三方面,提供一种网络流量统计装置,包括:
[0130] 处理器;
[0131] 用于存储处理器可执行指令的存储器;
[0132] 其中,处理器被配置为:
[0133] 当第一应用程序通过第二应用程序访问网络时,获取所述第二应用程序在访问网络的过程中创建的所有socket文件描述符;
[0134] 获取所述第一应用程序对应的第一用户身份标识信息;
[0135] 使用所述第一用户身份标识信息标记所述所有socket文件描述符;
[0136] 根据标记后的所有socket文件描述符,确定所述第一应用程序在访问网络的过程中所使用的流量。
[0137] 上述处理器还可被配置为:
[0138] 将确定的所述流量保存到操作系统支持的统计信息数据文件中;
[0139] 当接收到第一流量查询命令时,从所述统计信息数据文件中获取所述流量。
[0140] 上述处理器还可被配置为:
[0141] 接收所述第一应用程序在预设时间段内所使用的流量总量的查询命令;
[0142] 根据所述查询命令,从所述统计信息数据文件中获取预设时间段内保存的关于所述第一应用程序的所有流量信息;
[0143] 对所述所有流量信息进行统计,以得到所述流量总量。
[0144] 上述处理器还可被配置为:
[0145] 所述获取所述第一应用程序对应的第一用户身份标识信息,包括:
[0146] 从所述第一应用程序对应的进程中获取所述第一用户身份标识信息。
[0147] 上述处理器还可被配置为:
[0148] 所述使用所述第一用户身份标识信息标记所述所有socket文件描述符,包括:
[0149] 从所述所有socket文件描述符中获取第二应用程序对应的第二用户身份标识信息;
[0150] 使用所述第一用户身份标识信息替代所述所有socket文件描述符中的第二用户身份标识信息。
[0151] 图10是根据一示例性实施例示出的一种用于网络流量统计装置的框图,该装置适用于终端设备。例如,装置1000可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
[0152] 装置1000可以包括以下一个或多个组件:处理组件1002,存储器1004,电源组件1006,多媒体组件1008,音频组件1010,输入/输出(I/O)的接口1012,传感器组件1014,以及通信组件1016。
[0153] 处理组件1002通常控制装置1000的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1002可以包括一个或多个处理器1020来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1002可以包括一个或多个模块,便于处理组件1002和其他组件之间的交互。例如,处理组件1002可以包括多媒体模块,以方便多媒体组件1008和处理组件1002之间的交互。
[0154] 存储器1004被配置为存储各种类型的数据以支持在装置1000的操作。这些数据的示例包括用于在装置1000上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1004可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
[0155] 电源组件1006为装置1000的各种组件提供电力。电源组件1006可以包括电源管理系统,一个或多个电源,及其他与为装置1000生成、管理和分配电力相关联的组件。
[0156] 多媒体组件1008包括在所述装置1000和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1008包括一个前置摄像头和/或后置摄像头。当装置1000处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0157] 音频组件1010被配置为输出和/或输入音频信号。例如,音频组件1010包括一个麦克风(MIC),当装置1000处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1004或经由通信组件1016发送。在一些实施例中,音频组件1010还包括一个扬声器,用于输出音频信号。
[0158] I/O接口1012为处理组件1002和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0159] 传感器组件1014包括一个或多个传感器,用于为装置1000提供各个方面的状态评估。例如,传感器组件1014可以检测到装置1000的打开/关闭状态,组件的相对定位,例如所述组件为装置1000的显示器和小键盘,传感器组件1014还可以检测装置1000或装置1000一个组件的位置改变,用户与装置1000接触的存在或不存在,装置1000方位或加速/减速和装置1000的温度变化。传感器组件1014可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1014还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1014还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0160] 通信组件1016被配置为便于装置1000和其他设备之间有线或无线方式的通信。装置1000可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1016经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1016还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
[0161] 在示例性实施例中,装置1000可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子组件实现,用于执行上述方法。
[0162] 在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1004,上述指令可由装置1000的处理器1020执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
[0163] 一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置1000的处理器执行时,使得装置1000能够执行上述网络流量统计方法,所述方法包括:
[0164] 当第一应用程序通过第二应用程序访问网络时,获取所述第二应用程序在访问网络的过程中创建的所有socket文件描述符;
[0165] 获取所述第一应用程序对应的第一用户身份标识信息;
[0166] 使用所述第一用户身份标识信息标记所述所有socket文件描述符;
[0167] 根据标记后的所有socket文件描述符,确定所述第一应用程序在访问网络的过程中所使用的流量。
[0168] 在一个实施例中,所述方法还包括:
[0169] 将确定的所述流量保存到操作系统支持的统计信息数据文件中;
[0170] 当接收到第一流量查询命令时,从所述统计信息数据文件中获取所述流量。
[0171] 在一个实施例中,所述方法还包括:
[0172] 接收所述第一应用程序在预设时间段内所使用的流量总量的查询命令;
[0173] 根据所述查询命令,从所述统计信息数据文件中获取预设时间段内保存的关于所述第一应用程序的所有流量信息;
[0174] 对所述所有流量信息进行统计,以得到所述流量总量。
[0175] 在一个实施例中,所述获取所述第一应用程序对应的第一用户身份标识信息,包括:
[0176] 从所述第一应用程序对应的进程中获取所述第一用户身份标识信息。
[0177] 在一个实施例中,所述使用所述第一用户身份标识信息标记所述所有socket文件描述符,包括:
[0178] 从所述所有socket文件描述符中获取第二应用程序对应的第二用户身份标识信息;
[0179] 使用所述第一用户身份标识信息替代所述所有socket文件描述符中的第二用户身份标识信息。
[0180] 本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0181] 应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。