我需要查看我的Android应用的互联网消费情况。在我的应用程序中,我调用了大量的Web服务API。
我想知道我的应用程序在完整的时间内以KB / MB为单位消耗了多少互联网。
我该怎么检查?有没有工具可以检查?
答案 0 :(得分:25)
Android Studio 2.0 在Network
中引入新的Android Monitor
部分,可以帮助您解决问题。
Tx == Transmit Bytes Rx == Receive Bytes
答案 1 :(得分:9)
有三种方式......
答案 2 :(得分:7)
出于查看目的,您可以在MD中提到的显示器中进行检查。
要存储,您可以通过编程方式执行此操作
int UID = android.os.Process.myUid();
rxBytes += getUidRxBytes(UID);
txBytes += getUidTxBytes(UID);
/**
* Read UID Rx Bytes
*
* @param uid
* @return rxBytes
*/
public Long getUidRxBytes(int uid) {
BufferedReader reader;
Long rxBytes = 0L;
try {
reader = new BufferedReader(new FileReader("/proc/uid_stat/" + uid
+ "/tcp_rcv"));
rxBytes = Long.parseLong(reader.readLine());
reader.close();
}
catch (FileNotFoundException e) {
rxBytes = TrafficStats.getUidRxBytes(uid);
//e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
return rxBytes;
}
/**
* Read UID Tx Bytes
*
* @param uid
* @return txBytes
*/
public Long getUidTxBytes(int uid) {
BufferedReader reader;
Long txBytes = 0L;
try {
reader = new BufferedReader(new FileReader("/proc/uid_stat/" + uid
+ "/tcp_snd"));
txBytes = Long.parseLong(reader.readLine());
reader.close();
}
catch (FileNotFoundException e) {
txBytes = TrafficStats.getUidTxBytes(uid);
//e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
return txBytes;
}
}
答案 3 :(得分:6)
看看: Android Monitor 。
因为您可以监控许多主题。
在网络监视器中显示正在运行的应用程序:
请按照以下步骤操作:
任何网络流量都开始出现在网络监视器中:
网络监视器会增加设备传输和接收千字节数据所需的时间。 y轴以千字节/秒为单位。 x轴以秒开始,然后是分钟和秒,依此类推。
参考: Android Monitor