web-dev-qa-db-fra.com

Comment puis-je vérifier la consommation réseau de mon application Android?

Je dois vérifier la consommation Internet de mon application Android. Dans mon application, un certain nombre d'API de service Web sont appelées.

Je veux savoir combien mon application consomme Internet en Ko/Mo en une fois.

Comment puis-je vérifier cela? Existe-t-il un outil pour vérifier cela?

29
WISHY

Android Studio 2.0 Introduisez une nouvelle section Network dans Android Monitor qui peut vous aider à résoudre votre problème.

enter image description here

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

Il y a trois façons ...

  1. Vous pouvez voir dans Device/Emulator. Allez dans Paramètres -> Utilisation des données , et trouvez votre application dans la liste Enter image description here

  2. Dans Eclipse, sélectionnez DDMS (perspective) -> Sélectionnez votre package dans Périphériques (côté gauche) -> Cliquez sur l'onglet Statistiques réseau -> Cliquez sur Démarrer - enter image description here

  3. Comme déjà répondu, dans Android Studio, accédez à Android Monitor (onglet inférieur) -> Réseau (onglet) -> recherchez Tx (Transmit Data)/Rx (recevoir des données) Enter image description here

9
Iamat8

À des fins de visualisation, vous pouvez le vérifier sur le moniteur comme mentionné par MD.

Pour stocker, vous pouvez le faire par programme

    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

Jetez un œil: Android Monitor.

En cela, il existe de nombreux sujets que vous pouvez surveiller.

Vous trouverez Moniteur résea .

Affichage d'une application en cours d'exécution dans le Moniteur réseau:

Suivez ces étapes:

  • Connectez un périphérique matériel.
  • Affichage Android Moniteur.
  • Cliquez sur l'onglet Réseau.
  • Ouvrez un projet d'application et exécutez-le sur le périphérique matériel.
  • Pour démarrer le Moniteur réseau, cliquez sur l'icône Pause Pause pour la désélectionner.

Tout trafic réseau commence à apparaître dans le Moniteur réseau:

Enter image description here

Le Moniteur réseau ajoute le temps nécessaire à l'appareil pour transmettre et recevoir des kilo-octets de données. L'axe des y est en kilo-octets par seconde. L'axe des abscisses commence par les secondes, puis les minutes et les secondes, etc.

  • Pour arrêter le Moniteur réseau, cliquez à nouveau sur l'icône Pause Pause pour le sélectionner.

Référence: Android Monitor