2

我正在寻找通过 adb/adb shell 在运行 2.3 的 android 手机上发送和接收应用程序的数据量

我发现的最接近的线程是这个

使用 ADB 跟踪应用程序的网络统计信息 (netstats)

但这对我不起作用。

理想情况下,我希望查看给定应用程序的网络统计信息,并且还知道如何在需要时擦除/重置这些统计信息。

有任何想法吗?

4

2 回答 2

1

如果不需要使用 adb/adb shell, 您可以使用trafficStats类来计算设备中安装的不同应用程序的互联网使用情况

       final PackageManager pm = getPackageManager();
        // get a list of installed apps.
        List<ApplicationInfo> packages = pm
                .getInstalledApplications(PackageManager.GET_META_DATA);

        // loop through the list of installed packages and see if the selected
        // app is in the list
        for (ApplicationInfo packageInfo : packages) {

        // get the UID for the selected app
        UID = packageInfo.uid;
          //internet usage for particular app(sent and received) 
        long recived = TrafficStats.getUidRxBytes(UID);
        long send = TrafficStats.getUidTxBytes(UID);


        }

仅适用于您的应用程序的 Internet 使用:

receivedMbs = (double) TrafficStats.getUidRxBytes(android.os.Process
                .myUid()) / (1024 * 1024);
sentMbs = (double) TrafficStats.getUidTxBytes(android.os.Process
                .myUid()) / (1024 * 1024);

相关链接 :

TrafficStats Api android和每日数据使用量的计算

流量统计示例

希望能帮助到你 。

于 2013-07-15T12:33:34.443 回答
0
echo $(($(adb shell ifconfig rmnet_mhi0|grep "RX bytes"|cut -d ":" -f 2|cut -d " " -f 1)/1024)) Mb

but this is since last reboot or last connection.

or: https://gist.github.com/Zibri/387f0bd0acf09f71384ce78dd45aa058

#!/bin/bash
# Get android network usage statistics from phone.
# by Zibri
function getUsage () 
{ 
    rb=0;
    tb=0;
    for a in $(adb shell dumpsys netstats|grep "rb="|cut -d "=" -f 3|cut -d " " -f 1);
    do
        rb=$((rb+a/1024));
    done;
    rb=$((rb/2));
    for a in $(adb shell dumpsys netstats|grep "rb="|cut -d "=" -f 5|cut -d " " -f 1);
    do
        tb=$((tb+a/1024));
    done;
    tb=$((tb/2));
    echo RX: $rb Kb TX: $tb Kb
    echo Total: $(((rb+tb)/1024)) Mb
};
getUsage

which gives you the same number you get in settings/data usage menu.
(in my case this is what I needed).

于 2019-08-05T17:01:00.920 回答