APP——流量测试——adb命令简单测试

在不知道包名的情况下,在手机里先打开要测试的APP,执行如下命令:adb    shell    dumpsys    window    w    |findstr   \/     |findstr    name=;获取包名

C:\Users\del>adb shell dumpsys window w |findstr \/ |findstr name=
mSurface=Surface(name=com.wawj.app.t/com.wawj.app.t.ui.MainActivity)

C:\Users\del>

包名:com.wawj.app.t

============================================================================================================================

查询进程:adb shell ps -A |findstr com.wawj.app.t

C:\Users\del>adb shell ps -A |findstr com.wawj.app.t
u0_a145 6724 725 3174200 195496 0 0 R com.wawj.app.t
u0_a145 6919 725 2442904 43432 0 0 S com.wawj.app.t:pushcore

C:\Users\del>

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

执行命令:adb shell ps -Aa                      ——查看抬头

C:\Users\del>adb shell ps -Aa
USER PID PPID VSZ RSS WCHAN ADDR S NAME

C:\Users\del>

---------------------------------------------------------------------------------------------------------------------------------------------------------------

通过上面的操作获取进程号即获取PID:6724

下面再通过PID获取UID,执行如下命令:

adb   shell

cd  /proc/6724

cat  status;

----------------------------------------------

C:\Users\del>adb shell
hwedison:/ $ cd /proc/6724
cd /proc/6724
hwedison:/proc/6724 $ cat status
cat status
Name: com.wawj.app.t
State: S (sleeping)
Tgid: 6724
Ngid: 0
Pid: 6724
PPid: 725
TracerPid: 0
Uid: 10145 10145 10145 10145
Gid: 10145 10145 10145 10145
FDSize: 512
Groups: 3001 3002 3003 9997 20145 50145
VmPeak: 3522984 kB
VmSize: 3060492 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 489140 kB
VmRSS: 170988 kB
VmData: 537636 kB
VmStk: 8196 kB
VmExe: 20 kB
VmLib: 163300 kB
VmPTE: 2092 kB
VmPMD: 32 kB
VmSwap: 153696 kB
Threads: 131
SigQ: 2/14487
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000001204
SigIgn: 0000000000000000
SigCgt: 20000006400094f8
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000000000000000
CapAmb: 0000000000000000
Seccomp: 2
Cpus_allowed: ff
Cpus_allowed_list: 0-7
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 999245
nonvoluntary_ctxt_switches: 692834
hwedison:/proc/6724 $

-------------------------------------------------------------

 

获得UID:Uid:    10145 

==============================================================================

因个人手机没有root获取不到流量情况,下面提供示例参考:

===================================================================================

流量测试的原理:在安卓手机上,应用的网络流量数据都会保存在系统的/proc/uid_stat/$UID/tcp_rcv

                             和/proc/uid_stat/$UID/tcp_snd两个文件夹里面;

一个是请求耗费的流量,一个是接受的数据流量,这两个数据是由系统记录的,在我们启动某个软件的时候,

系统会根据这个应用所占用的进程号pid在根目录下创建一个以这个命名的文件夹,在文件夹的下面有存有UID的文件。

===============================================================================================

场景:

APP性能场景典型的无非三种

首次启动,非首次启动(比如后台运行状态切换),后台运行

1、使用安卓系统自身的TCP流量计数人工计算。

场景举例: 测试某APP首次启动到彻底加载完成的流量消耗,被测包名为com.newsplus.tr

1.1安装被测APP到测试机,不启动APP。

1.2使用adb连接到测试机,

cat /data/system/packages.list | grep com.newsplus.tr

图中10216即为该包UID

1.3使用命令查看当前下行(下载)流量情况

cat /proc/uid_stat/10216/tcp_rcv

(结果中4390单位为bytes,其中10216为我们获取到的UID)

1.4启动APP到APP彻底启动

再次执行执行命令cat/proc/uid_stat/10216/tcp_rcv

1.5 rcv代表上行流量,把tcp_rcv换为snd可以查看上行流量。例子如下

cat/proc/uid_stat/10216/tcp_sed

1.6计算实际tcp上下行流量

(78145-4390)/1024计算出下行(下载)流量的大小单位KB

(25413-4338)/1024计算出上行(上传)流量的大小单位KB

注意:启动APP后的流量记录多尝试几次,当不操作APP且流量值不变化时为准。

该方法优势:简单,容易上手,容易测出对应场景下上下行流量,容易封装为脚本。

该方法劣势:协议限制性,无法进行具体的剖析。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用adb命令可以测试安卓应用程序的性能。通过运行adb命令,可以获取应用程序的性能数据,并将其保存在csv文件中。这些性能数据包括均值、最大值和最小值等指标。可以使用adb命令测试应用程序的启动时间、流量消耗和电量消耗等性能指标。 对于启动时间的测试,可以使用adb shell am start -W package命令来测试应用程序的热启动和冷启动时间。其中WaitTime参数表示启动的时间。 对于流量测试,可以使用adb shell命令来查看应用程序的进程ID(pid)和用户ID(uid),然后使用cat /proc/uid_stat/uid/tcp_rcv(tcp_snd)命令来获取发送和接收的流量数据。测试前获取流量数值,测试后再次获取,两者的差值就是应用程序消耗的流量。 对于电量的测试,可以使用adb shell dumpsys batterystats > battery.txt命令来获取电量使用情况。在生成的battery.txt文件中,可以查找关键词"Estimated power use"下的具体uid的耗电情况。 总之,通过adb命令可以方便地测试安卓应用程序的性能,包括启动时间、流量消耗和电量消耗等指标。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [可测含多进程的app-- python调用adb命令获取Android App应用的性能数据:CPU、GPU、内存、电池、耗电量(含...](https://blog.csdn.net/u012089395/article/details/126668946)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [android开发获取应用本身耗电量_APP性能测试——Android](https://blog.csdn.net/weixin_39834780/article/details/110200499)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值