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

Je dois vérifier la consommation Internet de mon application Android. Dans mon application, j'ai un grand nombre d'API de service web appelées.

Je veux savoir combien mon application consomme Internet en kB / MB à pleine vitesse.

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

27
demandé sur Kainix 2016-04-19 09:43:36

5 réponses

Android Studio 2.0 introduisez une nouvelle section Network dans {[2] } qui peut vous aider avec votre problème.

entrez la description de l'image ici

Tx == Transmit Bytes Rx == Receive Bytes
25
répondu M D 2016-05-09 08:32:55

Il y a trois façons...

  1. Vous pouvez afficher dans L'appareil / émulateur. Accédez à paramètre - > utilisation des données , et recherchez votre application dans la liste Entrez la description de l'image ici

  2. Dans Eclipse, sélectionnez DDMS (perspective) - > Sélectionnez votre package à partir de périphériques (côté gauche) - > cliquez sur L'onglet Statistiques réseau - > cliquez sur Démarrer entrez la description de l'image ici

  3. Comme déjà répondu, dans Android Studio, allez dans Moniteur Android (onglet du bas) - > réseau (onglet) - > Rechercher Tx (Transmettre Des Données) / Rx (Recevoir Des Données) Entrez la description de l'image ici

9
répondu Mohit 2016-05-04 07:20:22

À des fins d'Affichage, Vous pouvez le vérifier dans 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;
    }
}
6
répondu Madhukar Hebbar 2016-04-19 16:44:37

Jetez un oeil: Moniteur Android.

En ce sens qu'il existe de nombreux sujets que vous pouvez surveiller.

, Vous trouverez Moniteur Réseau.

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

Procédez comme suit:

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

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

Entrez la description de l'image ici

Le Moniteur réseau additionne 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 x commence par secondes, puis minutes et secondes, et ainsi de suite.

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

Référence: Android Moniteur

6
répondu Pratik Butani 2016-04-19 16:46:39

Si vous voulez vérifier la consommation de votre réseau d'applications avec des outils, utilisez Android Studio 2.0 que vous pouvez voir. Voir ci-dessous comment l'utiliser

Le Moniteur Réseau

Le Moniteur réseau permet de suivre lorsque votre application effectue des requêtes réseau. Grâce à cet outil, vous pouvez surveiller comment et quand votre application transfère des données et optimiser le code sous-jacent de manière appropriée.

En surveillant la fréquence des transferts de données et la quantité de données transféré lors de chaque connexion, vous pouvez identifier les zones de votre application qui peuvent être rendues plus efficaces et utiliser moins d'énergie de la batterie. Généralement, vous devriez rechercher des pointes courtes qui peuvent être retardées, ou qui pourraient causer un transfert ultérieur à préempter.

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

Procédez comme suit:

  1. connectez un périphérique matériel.
  2. Affichage Android Moniteur.
  3. cliquez sur L'onglet Réseau.
  4. ouvrir un projet d'appli et exécuter sur le périphérique matériel.
  5. pour démarrer le Moniteur réseau, cliquez sur L'icône Pause Pause pour le désélectionner.

Entrez la description de l'image ici

Le Moniteur réseau additionne 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 x commence par secondes, puis minutes et secondes, et ainsi de suite.

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

Ou

Vous voulez afficher la consommation réseau avec propre application puis utilisez l'exemple ci-dessous

Principal.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:textSize="16sp"
         android:textStyle="bold"
         android:gravity="center"
         android:paddingBottom="20dip"
         android:text="Traffic Stats Demo" />
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:textColor="#00ff00"
        android:gravity="center"
        android:text="Transmit Bytes" />
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:gravity="center"
        android:text="0"
        android:id="@+id/TX"/>
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:textColor="#ff0000"
        android:gravity="center"
        android:text="Receive Bytes" />
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:gravity="center"
        android:text="0"
        android:id="@+id/RX"/>
 </LinearLayout>

Principal.java

 import android.app.Activity;
 import android.app.AlertDialog;
 import android.net.TrafficStats;
 import android.os.Bundle;
 import android.os.Handler;
 import android.widget.TextView;

 public class Main extends Activity {
     private Handler mHandler = new Handler();
     private long mStartRX = 0;
     private long mStartTX = 0;

     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
         mStartRX = TrafficStats.getTotalRxBytes();
         mStartTX = TrafficStats.getTotalTxBytes();
         if (mStartRX == TrafficStats.UNSUPPORTED || mStartTX == TrafficStats.UNSUPPORTED) {
              AlertDialog.Builder alert = new AlertDialog.Builder(this);
              alert.setTitle("Uh Oh!");
              alert.setMessage("Your device does not support traffic stat monitoring.");
              alert.show();
         }
         else {
             mHandler.postDelayed(mRunnable, 1000);
         }
     }

     private final Runnable mRunnable = new Runnable() {
         public void run() {
              TextView RX = (TextView)findViewById(R.id.RX);
              TextView TX = (TextView)findViewById(R.id.TX);
              long rxBytes = TrafficStats.getTotalRxBytes() - mStartRX;
              RX.setText(Long.toString(rxBytes));
              long txBytes = TrafficStats.getTotalTxBytes() - mStartTX;
              TX.setText(Long.toString(txBytes));
              mHandler.postDelayed(mRunnable, 1000);
         }
     };
 }
6
répondu Ravi Vaghela 2016-04-19 16:54:19