Подтвердить что ты не робот

Как я могу проверить потребление сети Android?

Мне нужно проверить потребление интернет-приложений Android. В моем приложении у меня появилось множество API-интерфейсов веб-сервисов.

Я хочу знать, насколько мое приложение потребляет Интернет в kB/MB с полным ходом.

Как я могу проверить это? Есть ли какой-нибудь инструмент для проверки этого?

4b9b3361

Ответ 1

Android Studio 2.0 Представьте новый раздел Network в Android Monitor, который поможет вам в решении вашей проблемы.

введите описание изображения здесь

Tx == Transmit Bytes Rx == Receive Bytes

Ответ 2

Существует три способа...

  • Вы можете просмотреть в устройстве/эмуляторе. Перейдите в Настройка → Использование данных и найдите приложение в списке Введите описание изображения здесь

  • В Eclipse выберите DDMS (перспектива) → Выберите свой пакет из Устройства (слева) → Щелкните вкладку Статистика сети → Нажмите Пуск введите описание изображения здесь

  • Как уже было сказано, в Android Studio перейдите в Android Monitor (нижняя вкладка) → Сеть (вкладка) → найдите Tx (Transmit Data)/Rx (Получить данные) Введите описание изображения здесь

Ответ 3

Посмотрите: Android-монитор.

В том, что есть много тем, которые вы можете контролировать.

Вы найдете Сетевой монитор.

Отображение запущенного приложения в сетевом мониторе:

Выполните следующие действия:

  • Подключить аппаратное устройство.
  • Дисплей монитора Android.
  • Перейдите на вкладку Сеть.
  • Откройте проект приложения и запустите его на аппаратном устройстве.
  • Чтобы запустить Сетевой монитор, нажмите "Приостановить паузу", чтобы отменить выбор.

В сетевом мониторе начинает появляться любой сетевой трафик:

Введите описание изображения здесь

Сетевой монитор суммирует время, необходимое устройству для передачи и получения килобайт данных. Ось y находится в килобайтах в секунду. Ось x начинается с секунд, а затем минут и секунд и т.д.

  • Чтобы остановить сетевой монитор, нажмите "Приостановить паузу" еще раз, чтобы выбрать его.

Ссылка: Android-монитор

Ответ 4

В целях просмотра вы можете проверить его на мониторе, как указано MD.

Чтобы сохранить, вы можете сделать это программно

    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;
    }
}

Ответ 5

Если вы хотите проверить потребление сети вашего приложения любыми инструментами, используйте Android Studio 2.0, которые вы можете увидеть. См. Ниже, как его использовать.

Сетевой монитор

Сетевой монитор позволяет отслеживать, когда приложение выполняет сетевые запросы. С помощью этого инструмента вы можете отслеживать, как и когда приложение переносит данные, и соответствующим образом оптимизируйте базовый код.

Контролируя частоту передачи данных и объем данных, передаваемых во время каждого соединения, вы можете определить области вашего приложения, которые могут быть более эффективными и использовать меньше энергии аккумулятора. Как правило, вы должны искать короткие спайки, которые могут быть отсрочены, или это может привести к вытеснению более поздней передачи.

Отображение запущенного приложения в сетевом мониторе

Выполните следующие действия:

  • Подключить аппаратное устройство.
  • Показать монитор Android.
  • Перейдите на вкладку Сеть.
  • Откройте проект приложения и запустите его на аппаратном устройстве.
  • Чтобы запустить Сетевой монитор, нажмите "Приостановить паузу", чтобы отменить выбор.

Введите описание изображения здесь

Сетевой монитор суммирует время, необходимое устройству для передачи и получения килобайт данных. Ось y находится в килобайтах в секунду. Ось x начинается с секунд, а затем минут и секунд и т.д.

  1. Чтобы остановить сетевой монитор, нажмите "Приостановить паузу" еще раз, чтобы выбрать его.

<Н1 > ИЛИ

Вы хотите отображать потребление сети с помощью собственного приложения, а затем использовать ниже пример

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