当前位置: 首页 > news >正文

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

一.  获取应用pid号

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

二.  查看应用流量情况

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

备注:

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: 1798112History since boot:ident=[{type=WIFI, subType=COMBINED, networkId="Guest", metered=false}] uid=-1 set=ALL tag=0x0NetworkStatsHistory: bucketDuration=3600st=1497891600 rb=1220280 rp=1573 tb=309870 tp=1271 op=0st=1497895200 rb=29733 rp=145 tb=85354 tp=185 op=0st=1497898800 rb=46784 rp=162 tb=42531 tp=192 op=0st=1497902400 rb=27570 rp=111 tb=35990 tp=121 op=0
Xt stats:Pending bytes: 1771782History since boot:ident=[{type=WIFI, subType=COMBINED, networkId="Guest", metered=false}] uid=-1 set=ALL tag=0x0NetworkStatsHistory: bucketDuration=3600st=1497891600 rb=1219598 rp=1557 tb=291628 tp=1255 op=0st=1497895200 rb=29623 rp=142 tb=82699 tp=182 op=0st=1497898800 rb=46684 rp=160 tb=39756 tp=191 op=0st=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: 744Complete history:ident=[[type=MOBILE_SUPL, subType=COMBINED, subscriberId=311111...], [type=MOBILE, subType=COMBINED, subscriberId=311111...]] uid=10007  set=DEFAULT tag=0x0NetworkStatsHistory: bucketDuration=7200000bucketStart=1406167200000 activeTime=7200000 rxBytes=4666 rxPackets=7 txBytes=1597 txPackets=10 operations=0ident=[[type=WIFI, subType=COMBINED, networkId="MySSID"]] uid=10007  set=DEFAULT tag=0x0NetworkStatsHistory: bucketDuration=7200000bucketStart=1406138400000 activeTime=7200000 rxBytes=17086802 rxPackets=15387 txBytes=1214969 txPackets=8036 operations=28bucketStart=1406145600000 activeTime=7200000 rxBytes=2396424 rxPackets=2946 txBytes=464372 txPackets=2609 operations=70bucketStart=1406152800000 activeTime=7200000 rxBytes=200907 rxPackets=606 txBytes=187418 txPackets=739 operations=0bucketStart=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数相加处理,然后统计总流量

相关文章:

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

一. 获取应用pid号 通过adb shell ps -A | grep 包名 来获取app的 pid号 二. 查看应用流量情况 使用adb shell cat /proc/#pid#/net/dev 命令 来获取流量数据 备注: Recevice: 表示收包 Transmit: 表示发包 bytes: 表示收发的字节数 packets: 表示收发正确的…...

超全的测试类型详解,再也不怕面试答不出来了!

在软件测试工作过程中或者在面试过程中经常会被问到一些看起来简单但是总是有些回答不上的问题,比如你说说“黑盒测试和白盒测试的区别?”,“你们公司做灰度测试么?", ”α测试和β测试有什么不一样?“&#xff0…...

【Linux】

Linux零基础入门 列出文件/文件夹新建/切换路径查看当前路径重命名或者移动文件夹拷贝文件/文件夹删除文件夹设置环境变量编辑文本文件压缩和解压查看cpu的信息查看/杀死进程查看进程的CPU和内存占用重定向日志场景一场景二场景三场景四 列出文件/文件夹 命令:Ls(L…...

「 网络安全常用术语解读 」网络攻击者的战术、技术和常识知识库ATTCK详解

引言:随着网络攻击手段的不断升级和多样化,网络安全领域面临着越来越严峻的挑战。为了帮助网络安全专业人员更好地识别和防御网络攻击,MITRE公司创建了ATT&CK框架,以提供一个统一且结构化的方法来描述网络攻击者的行为和技巧。…...

Java.lang.Integer类详解

Java.lang.Integer类详解 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在今天的文章中,我们将深度解析Java中的一个重要类——java.lang.Integer&…...

GitFlow工作流

基于 Git 这一版本控制系统,通过定义不同的分支,探索合适的工作流程来完成开发、测试、修改等方面的需求。 例如:在开发阶段,创建 feature 分支,完成需求后,将此分支合并到 develop 分支上;在发…...

GitHub Copilot 与 OpenAI ChatGPT 的区别及应用领域比较

GitHub Copilot 和 OpenAI ChatGPT 都是近年来颇受关注的人工智能项目,它们在不同领域中的应用继续引发热议。本文旨在分析和比较这两个项目的区别,从技术原理、应用场景、能力和限制、输出结果、能力与限制和发展前景等方面进行综合评估,帮助…...

【C++】类和对象(上篇)

文章目录 🛟一、面向过程和面向对象初步认识🛟二、类的引入🛟三、类的定义📝1、类的两种定义方式📝2、成员变量命名规则的建议 🛟四、类的访问限定符及封装🍩1、访问限定符🍩2、封装…...

甜蜜而简洁——深入了解Pytest插件pytest-sugar

在日常的软件开发中,测试是确保代码质量的关键步骤之一。然而,对于测试报告的生成和测试结果的可读性,一直以来都是开发者关注的焦点。Pytest插件 pytest-sugar 以其清晰而美观的输出,为我们提供了一种愉悦的测试体验。本文将深入介绍 pytest-sugar 插件的基本用法和实际案…...

SpringBoot3整合OpenAPI3(Swagger3)

文章目录 一、引入依赖二、使用1. OpenAPIDefinition Info2. Tag3. Operation4. Parameter5. Schema6. ApiResponse swagger2更新到3后&#xff0c;再使用方法上发生了很大的变化&#xff0c;名称也变为OpenAPI3。 官方文档 一、引入依赖 <dependency><groupId>…...

2023美赛各题分析,2024美赛数学建模思路解析2.2日第一时间更新

目录 2024美赛数学建模各题思路模型代码&#xff1a;开赛后第一时间更新&#xff0c;更新见文末 一、2023题目重述 拟解决的问题 我们的工作&#xff1a; 二、模型和计算 1.数据预处理 2.报告数量区间预测模型 3.猜词结果分布预测模型 2024美赛数学建模交流&#xff0…...

分享一个学习git的网站

Learn Git Branching...

用户拉新的4大关键策略,照着做就对了!

今天给大家分享用户拉新的4个关键策略&#xff0c;掌握了这些策略&#xff0c;不仅有助于增加用户数量&#xff0c;还能让对方成为你忠实的粉丝。 1、制定明确的目标&#xff1a;在开始拉新之前&#xff0c;你需要明确自己的目标。你想要吸引什么样的用户&#xff1f;你希望他…...

如何用“VMware安装Ubuntu”win11系统?

一、 下载Ubuntu 企业开源和 Linux |Ubuntu的 二、 安装 三、 启动虚拟机 选中Try or Install Ubuntu Server&#xff0c;按回车...

ZJOI2009 对称的正方形

P2601 [ZJOI2009] 对称的正方形 题目大意 给定一个 n m n\times m nm的矩阵&#xff0c;求这个矩阵中满足上下对称且左右对称的正方形子矩阵的个数。 1 ≤ n , m ≤ 1000 1\leq n,m\leq 1000 1≤n,m≤1000 题解 首先&#xff0c;我们对原矩阵、左右翻转后的矩阵、上下翻转后…...

大模型学习与实践笔记(十一)

一、使用OpenCompass 对模型进行测评 1.环境安装&#xff1a; git clone https://github.com/open-compass/opencompass cd opencompass pip install -e . 当github超时无法访问时&#xff0c;可以在原命令基础上加上地址&#xff1a; https://mirror.ghproxy.com git clon…...

Elasticsearch+Kibana 学习记录

文章目录 安装Elasticsearch 安装Kibana 安装 Rest风格API操作索引基本概念示例创建索引查看索引删除索引映射配置&#xff08;不配置好像也行、智能判断&#xff09;新增数据随机生成ID自定义ID 修改数据删除数据 查询基本查询查询所有&#xff08;match_all&#xff09;匹配查…...

Cesium叠加超图二维服务、三维场景模型

前言 Cesium作为开源的库要加超图的服务则需要适配层去桥接超图与Cesium的数据格式。这个工作iClient系列已经做好&#xff0c;相比用过超图二维的道友们可以理解&#xff1a;要用Openlayer加载超图二维&#xff0c;那就用iClient for Openlayer库去加载&#xff1b;同样的要用…...

【低危】OpenSSL 拒绝服务漏洞

漏洞描述 OpenSSL 是广泛使用的开源加密库。 在 OpenSSL 3.0.0 到 3.0.12, 3.1.0 到 3.1.4 和 3.2.0 中 &#xff0c;使用函数 EVP_PKEY_public_check() 来检查 RSA 公钥的应用程序可能会遇到长时间延迟。如果检查的密钥是从不可信任的来源获取的&#xff0c;这可能会导致拒绝…...

TDL-Tiny Synopsis-TED-ED 网络理论 Network Theory

Tiny Synopsis on TED-ED-Network Theory I) Webpage addressII&#xff09;Context ExceptionIII) Diagram/Chart Research&Developement I) Webpage address URL Resource II&#xff09;Context Exception what does “going viral” on Internet really mean? (网络…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...