web-dev-qa-db-ja.com

Androidアプリのネットワーク消費量を確認するにはどうすればよいですか?

Androidアプリのインターネット消費量を確認する必要があります。アプリでは、多数のWebサービスAPIが呼び出されています。

私のアプリが一気にkB/MB単位でインターネットを消費する量を知りたいです。

どうすれば確認できますか?それを確認するツールはありますか?

29
WISHY

Android Studio 2.0Android Monitorに新しいNetworkセクションを導入すると、問題の解決に役立ちます。

enter image description here

Tx == Transmit Bytes Rx == Receive Bytes
25
M D

3つの方法があります...

  1. デバイス/エミュレーターで表示できます。 Setting-> Data usageに移動し、リストでアプリケーションを見つけます Enter image description here

  2. Eclipseで、DDMS(パースペクティブ)->デバイスからパッケージを選択(左側)->ネットワーク統計タブをクリック->スタートをクリック- enter image description here

  3. すでに回答したように、Android Studioで、Androidモニター(下部タブ)->ネットワーク(タブ)-> Tx(データ送信)を探します/ Rx(受信データ)Enter image description here

9
Iamat8

表示のために、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;
    }
}
7
Madhukar Hebbar

ご覧ください:Android Monitor

その点で、監視できる多くのトピックがあります。

Network Monitor が見つかります。

ネットワークモニターで実行中のアプリを表示する:

次の手順を実行します:

  • ハードウェアデバイスを接続します。
  • ディスプレイAndroidモニター。
  • [ネットワーク]タブをクリックします。
  • アプリプロジェクトを開き、ハードウェアデバイスで実行します。
  • ネットワークモニターを起動するには、[一時停止] [一時停止]アイコンをクリックして選択を解除します。

ネットワークモニターにネットワークトラフィックが表示され始めます。

Enter image description here

ネットワークモニターは、デバイスがキロバイトのデータを送受信するのにかかる時間を合計します。 y軸は、キロバイト/秒です。 x軸は秒で始まり、次に分と秒、というように続きます。

  • ネットワークモニターを停止するには、[一時停止] [一時停止]アイコンをもう一度クリックして選択します。

参照:Androidモニター