android - tiempo - como se gastan los datos moviles
¿Cómo puedo verificar el consumo de red de mi aplicación Android? (5)
Echa un vistazo: Android Monitor .
En eso hay muchos temas que puedes monitorear.
Encontrará el Monitor de red .
Mostrar una aplicación en ejecución en el Monitor de red:
Sigue estos pasos:
- Conecte un dispositivo de hardware.
- Muestra Android Monitor.
- Haga clic en la pestaña Red.
- Abra un proyecto de aplicación y ejecútelo en el dispositivo de hardware.
- Para iniciar el Monitor de red, haga clic en el icono Pausa en pausa para deseleccionarlo.
Cualquier tráfico de red comienza a aparecer en el Monitor de red:
El Monitor de red suma la cantidad de tiempo que le lleva al dispositivo transmitir y recibir kilobytes de datos. El eje y está en kilobytes por segundo. El eje x comienza con segundos, luego minutos y segundos, y así sucesivamente.
- Para detener el Monitor de red, haga clic en el ícono Pausa en pausa nuevamente para seleccionarlo.
Referencia: Android Monitor
Necesito verificar el consumo de Internet de mi aplicación Android. En mi aplicación, tengo una gran cantidad de API de servicios web a las que se llama.
Quiero saber cuánto consume mi aplicación Internet en kB / MB a toda velocidad.
¿Cómo puedo verificar eso? ¿Hay alguna herramienta para verificar eso?
Hay tres formas ...
Puede ver en Dispositivo / Emulador. Vaya a Configuración -> Uso de datos , y encuentre su aplicación en la lista
En Eclipse, seleccione DDMS (perspectiva) -> Seleccione su paquete de Dispositivos (lado izquierdo) -> Haga clic en la pestaña Estadísticas de red -> Haga clic en Inicio
Como ya se respondió, en Android Studio, vaya a Android Monitor (pestaña inferior) -> Red (pestaña) -> busque Tx (Transmitir datos) / Rx (Recibir datos)
Para fines de visualización, puede verificarlo en el monitor como lo menciona MD.
Para almacenar, puedes hacer eso programáticamente
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;
}
}
Si desea verificar el consumo de red de su aplicación con cualquier herramienta, entonces use Android Studio 2.0 que puede ver. Vea a continuación cómo usarlo
Monitor de red
Network Monitor hace posible rastrear cuándo su aplicación está haciendo solicitudes de red. Al usar esta herramienta, puede monitorear cómo y cuándo su aplicación transfiere datos y optimizar el código subyacente de manera apropiada.
Al monitorear la frecuencia de las transferencias de datos y la cantidad de datos transferidos durante cada conexión, puede identificar las áreas de su aplicación que pueden ser más eficientes y usar menos energía de la batería. En general, debe buscar picos cortos que pueden retrasarse, o que podrían hacer que una transferencia posterior sea sustituida.
Mostrar una aplicación en ejecución en el monitor de red
Sigue estos pasos:
- Conecte un dispositivo de hardware.
- Muestra Android Monitor.
- Haga clic en la pestaña Red.
- Abra un proyecto de aplicación y ejecútelo en el dispositivo de hardware.
- Para iniciar el Monitor de red, haga clic en el icono Pausa en pausa para deseleccionarlo.
El Monitor de red suma la cantidad de tiempo que le lleva al dispositivo transmitir y recibir kilobytes de datos. El eje y está en kilobytes por segundo. El eje x comienza con segundos, luego minutos y segundos, y así sucesivamente.
- Para detener el Monitor de red, haga clic en el icono Pausa pausa nuevamente para seleccionarlo.
O
Desea mostrar el consumo de red con su propia aplicación y luego utilice el siguiente ejemplo
main.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>
Main.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);
}
};
}