uso tiempo saber para moviles minutos medir medidor los gastan datos cuanto controlar control consumo como celular app aplicacion android api network-monitoring

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 ...

  1. Puede ver en Dispositivo / Emulador. Vaya a Configuración -> Uso de datos , y encuentre su aplicación en la lista

  2. 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

  3. 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:

  1. Conecte un dispositivo de hardware.
  2. Muestra Android Monitor.
  3. Haga clic en la pestaña Red.
  4. Abra un proyecto de aplicación y ejecútelo en el dispositivo de hardware.
  5. 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.

  1. 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); } }; }


Android Studio 2.0 introduce la nueva sección de Network en Android Monitor que puede ayudarte con tu problema.

Tx == Transmit Bytes Rx == Receive Bytes