我正在寻找通过 adb/adb shell 在运行 2.3 的 android 手机上发送和接收应用程序的数据量
我发现的最接近的线程是这个
使用 ADB 跟踪应用程序的网络统计信息 (netstats)
但这对我不起作用。
理想情况下,我希望查看给定应用程序的网络统计信息,并且还知道如何在需要时擦除/重置这些统计信息。
有任何想法吗?
我正在寻找通过 adb/adb shell 在运行 2.3 的 android 手机上发送和接收应用程序的数据量
我发现的最接近的线程是这个
使用 ADB 跟踪应用程序的网络统计信息 (netstats)
但这对我不起作用。
理想情况下,我希望查看给定应用程序的网络统计信息,并且还知道如何在需要时擦除/重置这些统计信息。
有任何想法吗?
如果不需要使用 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和每日数据使用量的计算
希望能帮助到你 。
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).