1. tcpdump + wireshark

1.1 tcpdump抓包

注意:Android设备使用tcpdump需要root权限

tcpdump是一个在Unix-like系统中通用的网络抓包工具,当然,这个工具在Android系统中也是可以使用的。

先去下载Android系统使用的tcpdump工具

下载地址:http://www.androidtcpdump.com/

下载后,push到手机设备上,如:

abd push tcpdump /data/local/tmp/tcpdump

tcpdump命令支持许多参数,常见的有:

-i指定网卡(interface),any表示不限网卡;
-c指定接收的packets数量,接收完成后自动停止抓包;
-w指定输出文件,输出文件的格式为pcap;
-s(--snapshot-length)指定在每个packet中最多截取的字节数,设置为0时表示截取上限取默认值262144;
-v/-vv/-vvv,指定输出的详细程度,针对流量测试,我们不需要非常详尽的输出数据,取-v即可。

看完上面的参数,我们在terminal执行以下命令:

adb shell su -c /data/local/tmp/tcpdump -v -i any -s  -w /sdcard/dedao.pcap

tcpdump开始采集后,在手机执行测试场景,执行完毕后,control + c 结束采集。

然后运行下面命令把.pcap文件down下来:

adb pull /sdcard/dedao.pcap ./

1.2 wireshark分析

打开已安装的wireshark,文件——打开本地的dedao.pcap。

可以看到列表内有非常多的通讯信息,不过可以用wireshark的筛选功能只显示我们想要的数据。

在筛选器中输入http.host contains "dedao.com",回车,即可符合条件的数据。

接下来查看流量大小。

计算总流量

右键一个请求,选择追踪流—— TCP流,会弹出一个“追踪TCP流”的窗体。

红框圈中的位置,会有三个选项,依次是总流量,总上行流量,总下载流量。

所以这里可以看到本次抓包的全部流量,(前提是只有一个服务器,如果多个服务器,相加计算)

计算单个请求的流量

在选择追踪流—— TCP流后,列表已经自动改变查询条件,显示是你选择请求所在tcp流的所有数据。

选择统计——端点

勾选显示过滤器的限制,切换到TCP和UDP标签,分别查看流量大小,相加

2. 腾讯GT

下载GT for Android

很简单,不详细描述了。

2.1 选择被调试的应用,并勾选Net指标。

2.2 在参数tab,拖动NET参数到已关注,并勾选。

2.3 启动被测App,操作前,点击GT的悬浮窗的开始录制按钮。开始操作测试场景。

2.4 操作完后,暂停GT的悬浮窗,回到GT参数页面,保存数据到手机。

2.5 pull数据文件到本地,打开.csv文件。最下面的一行即为此次的总流量。

3. 查看手机系统文件

先拿到被测App的UID,如下,10084就是com.UCMobile.trunk应用的UID

root@hammerhead:/ # cat /data/system/packages.list | grep com.UCMobile.trunk
com.UCMobile.trunk /data/data/com.UCMobile.trunk default ,,

然后,具体获取流量有两个位置。

第一种:

流量数据分为接收流量(tcp_rcv)和发送流量(tcp_snd)两部分,这两个状态数值我们可以通过读取/proc/uid_stat/<UID>目录下的两个文件得到。

shell@hammerhead:/ $ cat /proc/uid_stat//tcp_rcv                          

shell@hammerhead:/ $ cat /proc/uid_stat//tcp_snd

单位bytes,这个数据是累加的,除非卸载应用才会被删除。否则会一直增加。

所以测试前记录下数字,测试完后减去记录的数字就是流量大小。

还有,这种方式只能获取TCP协议的流量,UDP的没有计算。。

第二种:

adb shell cat /proc/net/xt_qtaguid/stats | grep 
 wlan0 0x0
wlan0 0x0
wlan0 0x3792d5b400000000
wlan0 0x3792d5b400000000
wlan0 0xfa1dcc4b00000000
wlan0 0xfa1dcc4b00000000

其中第6和8列为 rx_bytes(接收数据)和tx_bytes(传输数据)包含tcp,udp等所有网络流量传输的统计。

但是我的手机这种方式不行,,不管怎么操作被测应用,一直不会变化。。

Android测试流量的几种方法的更多相关文章

  1. Android 抗锯齿的两种方法

    Android 抗锯齿的两种方法 (其一:paint.setAntiAlias(ture);paint.setBitmapFilter(true))   在Android中,目前,我知道有两种出现锯齿 ...

  2. android emulator启动的两种方法详解

    android emulator启动的两种方法详解    转https://blog.csdn.net/TTS_Kevin/article/details/7452237 对于android学习者,模 ...

  3. android使用全局变量的两种方法

         在我们使用android编写程序的时候,少不了想利用全局变量,但是面向对象语言和过程语言区别很大,不再是include就可以的.这里我写了使用全局变量的两种方法: 1.使用applicati ...

  4. android 实现分享功能两种方法

    当我想做一个智能的记事本的时候,我就在尝试自己写一组分享功能.后来才知道,原来每个社交软件中都有自己的分享接口. 这就大大减少了我们的代码量了. 第一种方法:特点--简单 package com.ex ...

  5. 解决android 大图OOM的两种方法

    最近做程序中,需要用到一张大图.这张图片是2880*2180大小的,在我开发所用的华为3C手机上显示没有问题,但是给米3装的时候,一打开马上报OOM错误.给nexus5装,则是图片无法出来,DDMS中 ...

  6. [转]android使用全局变量的两种方法

    本文转自:http://blog.csdn.net/feiyangxiaomi/article/details/9966215 在我们使用android编写程序的时候,少不了想利用全局变量,但是面向对 ...

  7. Android开发中退出程序几种方法

    参考:http://johncookie.iteye.com/blog/890734 Android程序有很多Activity,比如说主窗口A,调用了子窗口B,子窗口B又调用子窗口C,back返回子窗 ...

  8. android 实现拍照的2种方法

    android系统的照相功能,已实现2种方法,可供大家参考: 1.调用系统摄像头来拍照 首先,找到AndroidManifest.xml文件里加入用户权限 <uses-permission an ...

  9. Android ListView 滚动的N种方法

    Android 里面让ListView滚动有N种方法,这儿列举三种: 我的需求是通过按键让Listview滚动起来,当然这些按键不是通过Android标识接口传输过来的,所以不能通过监听按键事件来实现 ...

随机推荐

  1. NYOJ 745 蚂蚁问题(两)

    蚂蚁的难题(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描写叙述 下雨了,下雨了.蚂蚁搬家了. 已知有n种食材须要搬走,这些食材从1到n依次排成了一个圈.小蚂蚁对每种 ...

  2. Java程序猿从底层到CTO的技术路线图

    首先.附一张图片展示所在各个阶段的工作职能: 其次.文字型描写叙述所在各个阶段的工作职能: Java程序猿 高级特性 反射.泛型.凝视符.自己主动装箱和拆箱.枚举类.可变參数.可变返回类型.增强循环. ...

  3. javascript动画中的“帧”

    在写游戏的时候,动画移动的速度需要保持一致,为了在各个软硬件环境中速度的一致,需要考虑帧频的不同. 计算时间系数: 时间系数 = 目标FPS / 实际FPS 计算实际FPS actualFPS = 1 ...

  4. GitLab 安装配置笔记(转)

    GitLab的安装方式 GitLab的两种安装方法: 编译安装 优点:可定制性强.数据库既可以选择MySQL,也可以选择PostgreSQL;服务器既可以选择Apache,也可以选择Nginx. 缺点 ...

  5. Android:创建耐磨应用 - 语音操作

    加入语音处理能力(Adding Voice Capabilities) 语音操作为用户体验可穿戴的重要组成部分,它允许用户快速.免提方式来运行操作. Wear它提供了两种类型的语音操作的: 该系统提供 ...

  6. 探秘Java虚拟机——内存管理与垃圾回收(转)

    本文主要是基于Sun JDK 1.6 Garbage Collector(作者:毕玄)的整理与总结,原文请读者在网上搜索. 1.Java虚拟机运行时的数据区 2.常用的内存区域调节参数 -Xms:初始 ...

  7. ORA-01791: not a SELECTed expression 一种是不 bug 的 bug!

    [ora11@lixora ~]$ !sql sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Wed Aug 27 09: ...

  8. hdu4888 Redraw Beautiful Drawings

    14更多学校的第二个问题 网络流量   分别以行,列作为结点建图 i行表示的结点到j列表示的结点的流量便是(i, j)的值 跑遍最大流   若满流了便是有解   推断是否unique  就是在残余网络 ...

  9. WP8关于对地图开发的改进

    原文:WP8关于对地图开发的改进 微软在2012年6月21日 发布了 Windows Phone 8的更新.带来大量的功能更新和全新的SDK.作为重头戏的部分是引入了 C++ 和 DirectX,支持 ...

  10. 第一pga 畸形消费分析

     第一pga 畸形消费分析 os: aix 6 db:10205 ------使用os 命令观察oracle 存消耗情况 #ps gv ......                         ...