Android 通过adb命令查看应用流量

这篇具有很好参考价值的文章主要介绍了Android 通过adb命令查看应用流量。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.  获取应用pid号

        通过adb shell ps -A  |  grep 包名  来获取app的 pid号

Android 通过adb命令查看应用流量,Android Framework,adb查看流量,流量统计

二.  查看应用流量情况

        使用adb shell cat /proc/#pid#/net/dev 命令 来获取流量数据

Android 通过adb命令查看应用流量,Android Framework,adb查看流量,流量统计

备注:

Recevice: 表示收包
Transmit:  表示发包
bytes: 表示收发的字节数
packets: 表示收发正确的包量
errs: 表示收发错误的包量
drop: 表示收发丢弃的包量

wlan0: 表示代表的是wlan端口,wifi流量就是用的这个Interface

三.  计算使用流量

1. 先记录此时的流量情况

2. 然后操作业务场景,再记录一次流量情况

3. 前后数据相减就得到了流量使用,这里用的单位是byte  然后换成M(兆)即可

四.  网络流量诊断情况

指定 netstats 服务可提供自设备上次启动以来收集的网络使用情况统计信息。若要输出额外信息,如详细的唯一用户 ID (UID) 信息,请包含 detail 选项,如下所示:

#查看设备开机以来各应用流量的使用情况
adb shell dumpsys netstats detail

#查看各应用历史流量使用情况
adb shell dumpsys netstats --full --uid --tag

输出内容因连接的设备上搭载的 Android 版本不同而异。以下部分介绍您通常会看到的信息类型。

活动接口和活动 UID 接口

以下示例输出内容中列出了连接的设备的活跃接口和活跃 UID 接口。在大多数情况下,活跃接口和活跃 UID 接口的信息是相同的。

Active interfaces:
  iface=wlan0 ident=[{type=WIFI, subType=COMBINED, networkId="Guest"}]
Active UID interfaces:
  iface=wlan0 ident=[{type=WIFI, subType=COMBINED, networkId="Guest"}]
“Dev”和“Xt”统计信息

以下是 Dev 统计信息部分的示例输出:

Dev stats:
  Pending bytes: 1798112
  History since boot:
  ident=[{type=WIFI, subType=COMBINED, networkId="Guest", metered=false}] uid=-1 set=ALL tag=0x0
    NetworkStatsHistory: bucketDuration=3600
      st=1497891600 rb=1220280 rp=1573 tb=309870 tp=1271 op=0
      st=1497895200 rb=29733 rp=145 tb=85354 tp=185 op=0
      st=1497898800 rb=46784 rp=162 tb=42531 tp=192 op=0
      st=1497902400 rb=27570 rp=111 tb=35990 tp=121 op=0
Xt stats:
  Pending bytes: 1771782
  History since boot:
  ident=[{type=WIFI, subType=COMBINED, networkId="Guest", metered=false}] uid=-1 set=ALL tag=0x0
    NetworkStatsHistory: bucketDuration=3600
      st=1497891600 rb=1219598 rp=1557 tb=291628 tp=1255 op=0
      st=1497895200 rb=29623 rp=142 tb=82699 tp=182 op=0
      st=1497898800 rb=46684 rp=160 tb=39756 tp=191 op=0
      st=1497902400 rb=27528 rp=110 tb=34266 tp=120 op=0

上面log信息是用于统计设备总流量情况

St=1497895200  是时间戳,转化成北京时间为:2017-06-20 03:00:00

bucketDuration=3600  单位是秒   就是每隔1小时记录一次流量使用

UID 统计信息

以下是每个 UID 的详细统计信息的示例:

UID stats:
  Pending bytes: 744
  Complete history:
  ident=[[type=MOBILE_SUPL, subType=COMBINED, subscriberId=311111...], [type=MOBILE, subType=COMBINED, subscriberId=311111...]] uid=10007  set=DEFAULT tag=0x0
    NetworkStatsHistory: bucketDuration=7200000
      bucketStart=1406167200000 activeTime=7200000 rxBytes=4666 rxPackets=7 txBytes=1597 txPackets=10 operations=0
  ident=[[type=WIFI, subType=COMBINED, networkId="MySSID"]] uid=10007  set=DEFAULT tag=0x0
    NetworkStatsHistory: bucketDuration=7200000
      bucketStart=1406138400000 activeTime=7200000 rxBytes=17086802 rxPackets=15387 txBytes=1214969 txPackets=8036 operations=28
      bucketStart=1406145600000 activeTime=7200000 rxBytes=2396424 rxPackets=2946 txBytes=464372 txPackets=2609 operations=70
      bucketStart=1406152800000 activeTime=7200000 rxBytes=200907 rxPackets=606 txBytes=187418 txPackets=739 operations=0
      bucketStart=1406160000000 activeTime=7200000 rxBytes=826017 rxPackets=1126 txBytes=267342 txPackets=1175 operations=35

如需查找应用的 UID,请运行以下命令:adb shell dumpsys package your-package-name。然后查找标有 userId 的行。

例如,如需查找应用“com.example.myapp”的网络使用情况,请运行以下命令:

adb shell dumpsys package com.example.myapp | grep userId

输出的内容应类似于以下文本:

userId=10007 gids=[3003, 1028, 1015]

使用上述示例转储,查找包含 uid=10007 的行。有两个这样的行,第一个表示移动数据连接,第二个表示 Wi-Fi 连接。在每一行下方,您可以看到每个两小时期限(bucketDuration 以毫秒为单位表示)的以下信息:

  • set=DEFAULT 表示前台网络使用情况,set=BACKGROUND 表示后台网络使用情况,set=ALL 表示这两种网络使用情况。
  • tag=0x0 表示与流量关联的套接字标记。
  • rxBytes 和 rxPackets 表示在相应时间间隔内接收的字节数和数据包数。
  • txBytes 和 txPackets 表示在相应时间间隔内发送(传输)的字节数和数据包数。

总结: 第四种方式,需要自己去把每个时间段的接收和发送的byte数相加处理,然后统计总流量文章来源地址https://www.toymoban.com/news/detail-822199.html

到了这里,关于Android 通过adb命令查看应用流量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • android 通过adb shell命令旋转Android屏幕朝向方向

    注意: 默认0有的为横向,有的为纵向 纵向返回结果: cur 的值 宽 短 x 高 长 init=1080x1920 420dpi cur=1080x1920 app=1080x1794 rng=1080x1017-1794x1731 横向返回结果: cur 的值 宽 长 x 高 短 init=1080x1920 420dpi cur=1920x1080 app=1794x1080 rng=1080x1017-1794x1731

    2024年02月06日
    浏览(61)
  • android通过adb命令获取boot.img镜像

    当前系统支持双分区,区a分区boot_a.img如下: 取boot.img 取出来后通过fastboot方式刷机: 参考博客:  Android手机如何提取系统内核(boot.img镜像文件提取)_Mintimate的博客-CSDN博客_安卓boot.img提取

    2024年02月13日
    浏览(45)
  • 通过adb命令卸载小米手机预设的应用

    首先介绍adb命令 ADB是Android Debug brige ,是一种用于于安卓设备通信的命令行工具,卸载应用需要用到这个命令 adb命令安装方法: 1.adb工具下载: 下载适合您的系统的 ADB 工具。可以从以下链接下载 adb 工具: https://developer.android.com/studio/releases/platform-tools 2.在windows上生效: 下

    2024年02月16日
    浏览(49)
  • 【Android】通过命令行adb install 将apk下载到手机之中

    mac 电脑中有一个apk,想将该apk下载install到Android手机中。 首先在手机中删除原有的apk,然后再连上数据线到电脑中(我是在Android studio的命令行)进行如下的命令行: 路径按照实际的输入即可

    2024年02月11日
    浏览(60)
  • adb命令导出手机已安装的android应用apk文件

    前提条件是手机已经和PC电脑可以通过adb建立连接。 (1)通过adb shell命令获取当前手机所有已经安装的应用包名:   (2)根据上面打印出来的包名,找到想要导出apk文件的应用包名,这个包名可以通过多种方式找到,也可以用一些工具找,假设已经知道某个应用的包名后,

    2024年02月16日
    浏览(59)
  • Android进阶之路 - 通过Gradle 窗口、插件、命令 查看项目依赖

    最近在处理一个依赖冲突的问题,虽然根据错误提示已经解决了问题;但还是很有必要了解一下 如何查看项目中各模块的依赖组件 ,以便于快速解决组件依赖的问题,故特记录于此 在实战中我们一般可以通过 Gradle窗口 、 Gradle插件 、以及 Terminal 执行Gradle相关命令 获取项目

    2024年02月04日
    浏览(43)
  • 在Android Studio通过adb命令强制安装debug版本apk到手机,且允许version code降级

    在Android Studio通过adb命令强制安装debug版本apk到手机,且允许version code降级 切换到Terminal: .appbuildintermediatesapkdebug是android studio的apk编译生成路径。 参数: -t   允许安装测试包 -d   运行version code 降级 -r   取代现有application -g  授予所有权限       adb命令导出手机已安

    2024年02月14日
    浏览(64)
  • 【Android】使用 adb 命令行工具结合 pm列出 Android 设备上已安装应用的应用名称和包名

    要列出 Android 设备上已安装应用的应用名称和包名,你可以使用 adb 命令行工具结合 pm(PackageManager)命令来实现。 首先,确保你已经安装了 Android SDK,并将 adb 工具添加到系统的环境变量中。 然后,打开终端或命令行窗口,连接你的 Android 设备,并输入以下命令: 上述命令

    2024年02月09日
    浏览(45)
  • 【Android12】Android Framework系列---Adb和PMS安装apk源码流程

    通过adb install命令可以将apk安装到Android系统(注意:特定类型的apk,比如persist类型是无法通过adb安装的) 下述命令中adb解析install命令,并调用Android PackageManagerService进行apk安装。 基于Android12,分析从adb install到 PakcageManagerService安装apk的流程。 adb install命令的源码实现 Andro

    2024年01月22日
    浏览(60)
  • 通过注册表查看安装了哪些版本的.net Framework

    win键加r调出运行窗口,录入regedit回车打开注册表编辑器 其中HKLM为HKEY_LOCAL_MACHINE: 1.0 HKLMSoftwareMicrosoft.NETFrameworkPolicyv1.03705 Install REG_SZ 等于1 1.1 HKLMSoftwareMicrosoftNET Framework SetupNDPv1.1.4322 Install REG_DWORD 等于1 2.0 HKLMSoftwareMicrosoftNET Framework SetupNDPv2.0.50727 Install REG_DWORD 等

    2024年02月05日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包