android adb shell 查询进程流量情况

        本文仅仅是通过adb查询应用的流量使用情况。当然在Android应用程序的Java代码中同样可以获得应用的流量使用情况。


1、获得应用的Pid。

      可以通过adb shell ps获得所有进程信息,里面当然包含应用的pid和包名。然后对返回信息进行查找(按包名查找)。

2、获得应用的Uid.

      Android系统的目录文件/proc/pid/status(注意:标红的pid是第1步中获得的pid,是一个大于0的数字)中包含关于uid的信息。以pid=7328为例,通过adb shell cat /proc/7328/status可以得到以下信息:


1|shell@p1:/ $ cat /proc/7328/status
cat /proc/7328/status
Name:   .qihoo.secstore
State:  S (sleeping)
Tgid:   7328
Pid:    7328
PPid:   479
TracerPid:      0
Uid:    10194   10194   10194   10194
Gid:    10194   10194   10194   10194
FDSize: 128
Groups: 1015 1028 3001 3002 3003 9997 50194
VmPeak:  1828500 kB
VmSize:  1709912 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:    123552 kB
VmRSS:     62932 kB
VmData:   186776 kB
VmStk:      8192 kB
VmExe:        12 kB
VmLib:     87568 kB
VmPTE:       716 kB
VmSwap:    21692 kB
Threads:        44
SigQ:   0/9853
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000001a04
SigIgn: 0000000000000000
SigCgt: 00000002000094f8
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000000000000000
Cpus_allowed:   3f
Cpus_allowed_list:      0-5
voluntary_ctxt_switches:        5671
nonvoluntary_ctxt_switches:     4188

     

     解析以上信息即可得到Uid.

3、读取流量值。

      Android系统的目录文件/proc/uid_stat/uid/下一般会有两个文件tcp_snd和tcp_rcv。(注意:标红的uid是第二步中获得的Uid数值)。通过adb shell cat /proc/uid_stat/10194/tcp_snd和adb shell cat /proc/uid_stat/10194/tcp_rcv即可分别获得上行流量和下行流量。


shell@p1:/ $ ls /proc/uid_stat/10194
ls /proc/uid_stat/10194
tcp_rcv
tcp_snd
shell@p1:/ $

shell@p1:/ $ cat /proc/uid_stat/10194/tcp_snd
cat /proc/uid_stat/10194/tcp_snd
36006

shell@p1:/ $ cat /proc/uid_stat/10194/tcp_rcv
cat /proc/uid_stat/10194/tcp_rcv
41460

注意:

1、这里的值的单位是Byte字节,并且是累积量

2、有的应用是没有tcp_snd和tcp_rcv这两个文件的,比如某些系统应用。

3、某些没有流量交换的应用的可能也没有这两个文件,或者这两个文件里没有数据。



  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android ADB ShellAndroid Debug Bridge的缩写,旨在提供与Android设备之间的连接和调试,是Android开发的重要工具之一。使用ADB Shell可以直接在手机上执行Linux命令,而无需连接到PC上进行操作。 常用的ADB Shell命令有: 1. adb shell ls:列出当前目录下所有文件和文件夹; 2. adb shell ps:查看当前正在运行的进程; 3. adb shell cd:进入指定目录; 4. adb shell pwd:显示当前所在的目录; 5. adb shell rm:删除指定文件或目录; 6. adb shell mkdir:创建目录; 7. adb shell mv:移动或重命名文件或目录; 8. adb shell top:查看系统状态和资源情况。 此外,ADB Shell还可以用于发送广播、启动Activity、查看日志等操作,具有丰富的功能。需要注意的是,使用ADB Shell需要先将Android设备连接到PC并开启USB调试模式,否则无法正常执行命令。 总之,ADB ShellAndroid开发和调试必须要掌握的工具之一,对于改善开发体验和提高开发效率会起到至关重要的作用。 ### 回答2: Android adb shell指令是在Android开发中非常常用的一种工具。它可以连接到Android设备并对设备进行控制和管理。在使用这些指令前,需要先保证已经安装了Android SDK,并且将其添加到了系统的PATH中。 其中,adb shell命令是进入设备命令控制台的主要指令,可以通过这个命令进入设备的内部命令行环境,从而实现一些需要在命令行环境中操作的任务。比如: 1. 查看设备的文件系统:可以通过adb shell命令进入设备的内部命令行环境,并使用ls命令、cat命令、cd命令等来查看、打印、切换设备的文件系统。 2. 安装和卸载应用程序:可以通过adb install命令来将apk包安装到设备上,并使用adb uninstall命令卸载应用程序。 3. 查看设备的IP地址:可以通过adb shell ip命令来查看设备的IP地址和MAC地址。 4. 启动Activity:可以通过adb shell am命令启动Activity,从而实现模拟用户点击和操作的功能。 5. 清除应用数据:可以使用adb shell pm命令清除应用程序的数据,来实现数据清除的功能。 此外,还有一些其他的adb shell指令,比如adb shell dumpsys命令可以获取设备的系统信息、adb shell screencap命令可以截取设备的屏幕、adb shell input命令可以模拟用户操作输入等等。这些指令都能够提高开发效率,让开发者更方便地管理和调试Android设备。 ### 回答3: Android的开发者工具软件包中,有一个重要的组件——adbAndroid Debug Bridge),它被设计为一种模拟器上的调试工具,同时它也能够工作在真实的Android设备上。 adb是一个命令行工具,可以提供许多实用的功能,包括文件上传下载、设备状态监测、安装和卸载应用、执行Shell命令等等。 其中,adb shell指令是adb中最强大的一项指令,它可以帮助我们直接在设备上执行命令,操作设备上的文件、目录和进程等等。以下是几个常用的adb shell指令: 1. ls ls指令用来列出当前目录下的文件和文件夹,常用参数有: ls -a :列出目录下所有文件和文件夹,包括隐藏文件 ls -l :以详细的形式列出目录下的所有文件和文件夹,包括文件的属性和权限 2. cd cd指令用来进入指定的目录,可以使用绝对路径或相对路径: cd /sdcard :进入sdcard目录 cd .. :返回上一级目录 3. mkdir mkdir指令用来创建文件夹,使用方式: mkdir FolderName :创建名为FolderName的文件夹 4. rm rm指令用来删除文件或文件夹,使用方式: rm FileName :删除指定的文件 rm -r Folder :删除整个文件夹及其内容 5. ps ps指令用来列出设备上正在运行的进程,使用方式: ps :列出所有进程 ps | grep Keyword :列出包含关键字“Keyword”的进程 以上只是adb shell指令的部分功能,还有许多高级操作需要深入研究和学习。总之,adb shell指令在Android开发和调试中非常实用,可以提高效率和便捷性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值