一种数据流量统计方法及终端技术

技术编号:7852678 阅读:262 留言:0更新日期:2012-10-13 09:37
本发明专利技术适用于移动通信领域,提供一种数据流量统计方法及终端,所述方法包括下述步骤:当产生网络连接时,获取当前进行网络连接的单应用并开始计算数据流量值;当所述单应用停止使用网络连接时,获取本次网络连接产生的数据流量值;将所述本次网络连接产生的数据流量值计入所述单应用的数据流量总值。本发明专利技术通过获取到产生网络连接的各个单应用,在产生网络连接的单应用发生变化时,对当前单应用产生的数据流量值进行统计,这样即使存在多个单应用属于同一UID的情况下,最终也可以统计出各个单应用所产生的数据流量总值。

【技术实现步骤摘要】

本专利技术属于移动通信领域,尤其涉及一种数据流量统计方法及终端
技术介绍
如今大部分的智能终端都具有上网功能,尤其是随着智能手机的普及,将人们带入了网络时代。通常智能终端都安装有大量的应用软件,但其中可能存在一些在后台偷偷消耗流量的吸费软件,这样用户即使在不使用网络连接亦会耗费不少流量,用户却难以查找是哪些应用软件在后台偷偷消耗流量从而对应删除该应用,因此让人头痛不已。虽然在智能终端上出现了一些流量统计软件,这些软件能够统计出应用程序所属UID(UserID,用户号)所产生的流量,可以通过缩小范围大致判断哪些应用产生了多少流量。由于每个应用程序都有一个WD,默认情况下,互不相关的应用程序的WD通常不同,但 如果应用程序间需要互相调用,那么这些相互调用的应用程序的WD必须相同,所以UID号和单应用之间是一对多的关系,即多个单应用可能具有同一个WD,那么在这种情况下,现有技术只能知道属于同一 WD的单应用所产生的数据流量,无法进一步确认是该UID下具体的哪些单应用产生了多少数据流量。
技术实现思路
鉴于上述问题,本专利技术的目的是提供一种数据流量统计方法,旨在解决现有技术中,无法按照不同的单应用区分数据流量的产生和使用的技术问题。本专利技术是这样实现的,一种数据流量的统计方法,所述方法包括下述步骤当产生网络连接时,获取当前进行网络连接的单应用并开始计算数据流量值;当所述单应用停止使用网络连接时,获取本次网络连接产生的数据流量值;将所述本次网络连接产生的数据流量值计入所述单应用的数据流量总值。本专利技术的另一目的在于提供一种终端,所述终端包括网络连接单应用获取单元,用于当产生网络连接时,获取当前进行网络连接的单应用并开始计算数据流量值。网络连接数据流量获取单元,用于当所述单应用停止使用网络连接时,获取本次网络连接产生的数据流量值。数据流量计入单元,用于将所述本次网络连接产生的数据流量值计入所述单应用的数据流量总值。在本专利技术实施例中,通过获取产生网络连接的各个单应用,再对各个单应用产生的网络流量进行统计,得到各个单应用产生的数据流量总值,解决了现有技术中只能统计每个WD所产生的数据流量,无法统计单个应用产生的数据流量的技术问题。在本专利技术实施例中,用户可以根据各个单应用所产生的数据流量总值,可以进一步确定哪些单应用是后台吸费软件并做后续处理。附图说明图I是本专利技术第一实施例提供的一种数据流量统计方法的流程图;图2是本专利技术第二实施例提供的一种数据流量统计方法的流程图;图3是本专利技术第三实施例提供的一种终端的结构方框图;图4是本专利技术第四实施例提供的另一种终端的结构方框图。具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。 实施例一:图I示出了本专利技术实施例提供的一种数据流量统计方法的流程,为了便于说明仅不出了与本专利技术实施例相关的部分。在步骤SlOl中,当产生网络连接时,获取当前进行网络连接的单应用并开始计算数据流量值。其中,每个单应用都有唯——个应用包名,本步骤中需要监控网络连接,当产生网络连接时,根据网络端口的连接请求获取当前进行网络连接的单应用的包名,并根据所述包名确定当前进行网络连接的单应用。在获取当前进行网络连接的单应用之后,开始计算数据流量值。在步骤S102中,当所述单应用停止使用网络连接时,获取本次网络连接产生的数据流量值。在本步骤中,获取到当前进行网络连接的单应用后,开始计算该单应用实际产生的数据流量值,直至该单应用停止使用网络连接,那么就可以获取到本次网络连接所产生的数据流量值。在步骤S103中,将所述本次网络连接产生的数据流量值计入所述单应用的数据流量总值。每个单应用都在数据库中对应一个数据流量总值,所述数据流量总值表明了该单应用总共产生了多少数据流量。在本步骤中,每次网络连接都可以获取到发起该次网络连接的单应用在本次网络连接中所产生的数据流量值,再将所述数据流量值计入到所述单应用的数据流量总值,这样根据所述数据库中的数据流量总值就可以知晓每个单应用总共产生了多少数据流量。在本专利技术实施例I中,通过获取产生网络连接的各个单应用,再对各个单应用产生的网络流量进行统计,得到各个单应用产生的数据流量总值,解决了现有技术中只能统计每个WD所产生的数据流量,无法统计单个应用产生的数据流量的技术问题。在本专利技术实施例中,用户可以根据各个单应用所产生的数据流量总值,可以进一步确定哪些单应用是后台吸费软件并做后续处理。实施例二 :图2示出了本专利技术第二实施例提供的一种数据流量统计方法的流程,为了便于说明仅不出了与本专利技术实施例相关的部分。在步骤S201中,建立流量数据库,为每个有网络连接权限的单应用分别建立数据流量总值。在本步骤中,首先需要分析出安装的单应用中哪些具有网络连接权限,并建立流量数据库,为这些单应用分别建立数据流量总值。本步骤通过建立数据库实现存储数据流量总值,便于流量数据的统一管理和调用。在步骤S202中,当产生网络连接时,获取当前产生数据流量的单应用并开始计算数据流量值。在本步骤中,通常需要单独监控各个单应用,当监控到有单应用产生网络连接时,获取所述单应用即可。进一步的,为了提高监控效率,只需监控数据流量端口,当监控到有网络连接时,根据数据包中的包头标示位即可找到对应的产生该网络连接的单应用。在获 取产生数据流量的单应用后,开始计算数据流量值。具体来说,为了实现获取到产生数据流量的单应用,首先需要获取产生数据流量的当前线程所在单应用的包名(PackageName),并根据所述包名确定当前进行网络连接的单应用,根据所述获取的单应用开始计算数据流量值。所述包名的获取可以通过以下方式实现每一个单应用都有一个唯一包名,通常一个单应用的程序包中可以包括多个线程,这些线程有可能有不同的创建方法和运行上下文,如 Activity 线程,Service 线程,Content Provider 线程,Java 类线程,以及 JNI (JavaNative Interface, Java本机接口)直接调C创建的线程等。单应用在执行不同的线程时,如果线程需要使用网络连接,那么就需要记下该线程所在的单应用的包名。为了实现此目的,在具体实现时通过设置一组函数用来设置和获取当前线程所在单应用的包名,比如函数SetThreadPackageName与getThreadPackageName,该函数可以通过JNI操作底层内核,最终在内核层中通过Current获取到当前进程的Task struct结构体的地址,进而获取到该结构体中包含的所述单应用包包名。具体的,针对不同线程具体处理方式如下对于Activity线程,它的handlemessage每处理一个消息,调用SetThreadPackageName 函数记录 Activity 线程当前处理的 package。对于Content Provider线程,在执行onTransact时,如果发现当前线程还没有设置过包名,调用SetThreadPackageName函数记录Activity线程当前处理的pack本文档来自技高网...
一种数据流量统计方法及终端

【技术保护点】

【技术特征摘要】
1.一种数据流量统计方法,其特征在于,所述方法包括下述步骤 当产生网络连接时,获取当前进行网络连接的单应用并开始计算数据流量值; 当所述单应用停止使用网络连接时,获取本次网络连接产生的数据流量值; 将所述本次网络连接产生的数据流量值计入所述单应用的数据流量总值。2.如权利要求I所述的数据流量统计方法,其特征在于,所述方法在获取当前产生网络连接的单应用之前还包括 为每个有网络连接权限的单应用分别建立流量数据库;3.如权利要求2所述的数据流量统计方法,其特征在于,所述将本次网络连接产生的数据流量值计入所述单应用的数据流量总值包括 将所述本次网络连接产生的数据流量值计入所述单应用对应的流量数据库。4.如权利要求1-3中任意一项所述的数据流量统计方法,其特征在于,所述当产生网络连接时,获取当前进行网络连接的单应用并开始计算数据流量值包括 当产生网络连接时,获取当前产生数据流量的单应用并开始计算数据流量值; 所述当所述单应用停止使用网络连接时,获取本次网络连接产生的数据流量值包括 当所述产生数据流量的单应用发生变化时,停止计算数据流量值并获取计算结果作为本次网络连接产生的数据流量值。5.如权利要求1-4中任意一项所述的数据流量统计方法,其特征在于,所述数据流量统计方法还包括 当到达预定的数据更新时间时,清空所有单应用的数据流量总值。6.—种终端...

【专利技术属性】
技术研发人员:赵吉昌
申请(专利权)人:华为终端有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1