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?
5 réponses
Android Studio 2.0 introduisez une nouvelle section Network
dans {[2] } qui peut vous aider avec votre problème.
Tx == Transmit Bytes Rx == Receive Bytes
Il y a trois façons...
Vous pouvez afficher dans L'appareil / émulateur. Accédez à paramètre - > utilisation des données , et recherchez votre application dans la liste
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
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)
À 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;
}
}
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:
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
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:
- connectez un périphérique matériel.
- Affichage Android Moniteur.
- cliquez sur L'onglet Réseau.
- ouvrir un projet d'appli et exécuter sur le périphérique matériel.
- pour démarrer le Moniteur réseau, cliquez sur L'icône Pause Pause pour le désélectionner.
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 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);
}
};
}