如何查看我的Android应用程序的网络消耗?

WIS*_*SHY 29 api android network-monitoring

我需要查看我的Android应用程序的互联网消费情况.在我的应用程序中,我调用了大量的Web服务API.

我想知道我的应用程序在完整的时间内以KB/MB的速度消耗互联网的​​程度.

我该怎么检查?有没有工具来检查?

M D*_*M D 25

Android Studio 2.0引入新的Network部分Android Monitor,可以帮助您解决问题.

在此输入图像描述

Tx == Transmit Bytes Rx == Receive Bytes
Run Code Online (Sandbox Code Playgroud)

  • 我知道这是一个老问题,但如何使用此工具获取一段时间内使用的总兆字节?该图仅表示特定时间点的传输速率,但不表示到目前为止传输的总数.我希望我可以在图表上标记一个部分并得到总和但不幸的是没有运气. (7认同)

Iam*_*at8 9

有三种方式......

  1. 您可以在设备/模拟器中查看.转到设置 - >数据使用情况,然后在列表中找到您的应用程序 在此输入图像描述

  2. 在Eclipse中,选择DDMS(透视图) - >从Devices(左侧)选择包 - >单击Network Statistics选项卡 - >单击Start 在此输入图像描述

  3. 如前所述,在Android Studio中,转到Android监视器(底部选项卡) - >网络(选项卡) - >查找Tx(传输数据)/ Rx(接收数据) 在此输入图像描述


Mad*_*bar 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 很好的样品,这对我很有帮助. (2认同)

Pra*_*ani 6

看看:Android Monitor.

因此,您可以监控许多主题.

你会发现网络监视器.

在网络监视器中显示正在运行的应用程序

跟着这些步骤:

  • 连接硬件设备.
  • 显示Android监视器.
  • 单击"网络"选项卡.
  • 打开应用程序项目并在硬件设备上运行它.
  • 要启动网络监视器,请单击"暂停暂停"图标以取消选择它.

任何网络流量都开始出现在网络监视器中:

在此输入图像描述

网络监视器会增加设备传输和接收千字节数据所需的时间.y轴以千字节/秒为单位.x轴以秒开始,然后是分钟和秒,依此类推.

  • 要停止网络监视器,请再次单击"暂停暂停"图标以将其选中.

参考:Android监视器

  • 这也很有用 (2认同)