尝试使用我的ADB shell命令确定数据吞吐量

时间:2016-11-15 05:58:12

标签: android performance shell

我正在连接手机进行一些吞吐量测试,我正在尝试确定平均带宽。它将是Mbits / sec

中的某个值

我在服务器端运行以下命令(手机连接在我的电脑上):

adb shell setprop android.telephony.apn-restore 10000000; 
export PATH=/data/busybox:$PATH#; 
export PATH=/data:$PATH#; 
chmod 777 /data/iperf
adb shell /data/iperf -s -p 5199 -B 172.20.184.121  -u  -i 1 
adb shell exit
exit

其中172.20.184.121是我设备的IP。

在客户端,我有这个:

iperf -c 172.20.184.121 -p 5199 -u -b 300M -t 60 -i 1 

现在,我所做的是,我将上面的adb shell命令编写到一个小的.bat文件中,我调用该bat文件,并试图将其输出管道输出到.txt文件,以便我可以得到输出实际的UDP传输。我希望看到带宽等。我使用Perl脚本中的系统命令调用adbcommands.bat。所以我的脚本会在命令提示符下启动批处理文件:

start adbcommands.bat > output.txt

但是我的.txt文件中没有任何内容。该文件为空。正如您所看到的最后一条指令是exit,因此打开以运行adb shell命令的新命令窗口将自行关闭,我希望当它关闭时,我的.txt文件将具有数据传输信息。不。

那么,我尝试使用这样的tee.exe命令:

start adbcommands.bat | tee output.txt

仍然没有。所以现在我没有子弹,想要一些帮助。有没有人知道如何获得吞吐量信息?

对于那些好奇的人,如果我没有将输出传递给文件,并且如果我运行上面的adbcommands.bat文件,则输出如下所示:

adb shell /data/iperf -s -p 5115 -B 172.20.184.121  -u  -i 1
------------------------------------------------------------
Server listening on UDP port 5115
Binding to local address 172.20.184.121
Receiving 1470 byte datagrams
UDP buffer size:  224 KByte (default)
------------------------------------------------------------
[  3] local 172.20.184.121 port 5115 connected with 172.20.98.85 port 51948
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0- 1.0 sec   148 KBytes  1.21 Mbits/sec   7.762 ms 38211/38314 (88%)
[  3]  2.0- 3.0 sec   159 KBytes  1.31 Mbits/sec   5.820 ms  743/  854 (87%)
[  3]  3.0- 4.0 sec   159 KBytes  1.31 Mbits/sec   6.762 ms  756/  867 (87%)
.....
.....
[  3]  0.0-166.2 sec  54.5 MBytes  2.75 Mbits/sec   7.700 ms 4506398/4545298 (99%)

我需要的是最后一行:2.75 Mbits/sec。这是我的吞吐量。我试图管道到.txt文件,以便我的脚本可以解析它并找到该值。

1 个答案:

答案 0 :(得分:1)

根据您在问题中描述的内容,如果您运行

adb shell /data/iperf -s -p 5199 -B 172.20.184.121  -u  -i 1 > output.txt

您应该能够将输出重定向到文件。