如何查看我的 Android 应用程序的网络消耗?
How can I check my Android app's network consumption?
我需要检查我的 Android 应用程序的互联网消耗。在我的应用程序中,我调用了大量的 Web 服务 API。
我想知道我的应用在 kB/MB 中完整消耗了多少互联网资源。
我该如何检查?有什么工具可以检查吗?
Android Studio 2.0 在 Android Monitor
中引入新的 Network
部分,这可以帮助您解决问题。
Tx == Transmit Bytes Rx == Receive Bytes
为了便于查看,您可以按照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;
}
}
看看:Android Monitor.
因为您可以监控的主题很多。
你会发现 Network Monitor.
正在网络监视器中显示 运行 应用程序:
按照以下步骤操作:
- 连接硬件设备。
- 显示器Android显示器
- 单击“网络”选项卡。
- 打开一个应用程序项目并运行它在硬件设备上。
- 要启动网络监视器,请单击暂停暂停图标以取消select它。
任何网络流量开始出现在网络监视器中:
网络监视器将设备传输和接收千字节数据所需的时间相加。 y 轴以千字节每秒为单位。 x轴以秒开始,然后是分秒,依此类推。
- 要停止网络监视器,请再次单击暂停图标 select。
三种方式...
您可以在Device/Emulator中查看。转到设置 -> 数据使用,然后在列表中找到您的应用程序
在 Eclipse 中,selectDDMS(透视图)-> Select 您来自 Devices 的包(左侧)-> 单击 Network Statistics 选项卡- > 点击开始
如前所述,在 Android Studio 中,转到 Android 监视器(底部选项卡)-> 网络(选项卡)-> 查找 Tx (传输数据)/ Rx(接收数据)
我需要检查我的 Android 应用程序的互联网消耗。在我的应用程序中,我调用了大量的 Web 服务 API。
我想知道我的应用在 kB/MB 中完整消耗了多少互联网资源。
我该如何检查?有什么工具可以检查吗?
Android Studio 2.0 在 Android Monitor
中引入新的 Network
部分,这可以帮助您解决问题。
Tx == Transmit Bytes Rx == Receive Bytes
为了便于查看,您可以按照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;
}
}
看看:Android Monitor.
因为您可以监控的主题很多。
你会发现 Network Monitor.
正在网络监视器中显示 运行 应用程序:
按照以下步骤操作:
- 连接硬件设备。
- 显示器Android显示器
- 单击“网络”选项卡。
- 打开一个应用程序项目并运行它在硬件设备上。
- 要启动网络监视器,请单击暂停暂停图标以取消select它。
任何网络流量开始出现在网络监视器中:
网络监视器将设备传输和接收千字节数据所需的时间相加。 y 轴以千字节每秒为单位。 x轴以秒开始,然后是分秒,依此类推。
- 要停止网络监视器,请再次单击暂停图标 select。
三种方式...
您可以在Device/Emulator中查看。转到设置 -> 数据使用,然后在列表中找到您的应用程序
在 Eclipse 中,selectDDMS(透视图)-> Select 您来自 Devices 的包(左侧)-> 单击 Network Statistics 选项卡- > 点击开始
如前所述,在 Android Studio 中,转到 Android 监视器(底部选项卡)-> 网络(选项卡)-> 查找 Tx (传输数据)/ Rx(接收数据)