Как я могу проверить потребление сети моим Android-приложением? [закрыто]

Мне нужно проверить потребление Интернета моим приложением Android. В моем приложении вызывается большое количество API веб-сервисов.

Я хочу знать, сколько мое приложение потребляет Интернет в кБ/МБ при полной загрузке.

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


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

  Tx == Передача байтов Rx == Получение байтов  

9

Есть три способа …

  1. Вы можете просмотреть в Device/ Эмулятор. Перейдите в Настройка -> Использование данных и найдите свое приложение в списке

  2. В Eclipse выберите DDMS (перспектива) -> Выберите свой пакет из Устройства (слева) -> Щелкните вкладку «Сетевая статистика» -> Нажмите «Пуск»

  3. Как уже было сказано, в Android Studio перейдите в Android Monitor (нижняя вкладка) -> Сеть (вкладка) -> найдите Tx (Передача данных)/Rx (Получение данных)

Улучшите этот ответ
отредактировано 4 мая 2016 года в 7:20
ответил 19 апр. ’16 в 07:13
добавить комментарий |

Есть три способа …

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

  2. В Eclipse выберите DDMS (перспектива) -> Выберите свой пакет из Устройства (слева) -> Щелкните вкладку «Сетевая статистика» -> Нажмите «Пуск»

  3. Как уже было сказано, в Android Studio перейдите в Android Monitor (нижняя вкладка) -> Сеть (вкладка) -> найдите Tx (Передача данных)/Rx (Получение данных)


8

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

Для хранения вы можете сделать это программно

  int UID = android.os.Process. myUid ();  rxBytes + = getUidRxBytes (UID);  txBytes + = getUidTxBytes (UID); /** * Чтение байтов UID Rx * * @param uid * @return rxBytes */public Long getUidRxBytes (int uid) {BufferedReader reader;  Длинный rxBytes = 0L;  попробуйте {reader = new BufferedReader (новый 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;  }/** * Чтение байтов UID Tx * * @param uid * @return txBytes */public Long getUidTxBytes (int uid) {BufferedReader reader;  Длинный txBytes = 0L;  попробуйте {reader = new BufferedReader (новый 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;  }}  

Улучшите этот ответ
отредактировано 19 апреля 2016 в 16:44
Peter Mortensen
27.4k2121 золотой знак9393 серебряных знака123123 бронзовых знака
ответил 19 апреля ’16 в 7:00
  • 2
    Хороший образец, мне он очень помог. — Тирумалвалаван 4 апр. ’17 в 8:39
  • Не работает с Android 6 — T.Coutlakis 25 мая 2017, 10:07
добавить комментарий |

Для просмотра вы можете проверить это на мониторе, как указано MD.

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

  int UID = android.os.Process.myUid ();  rxBytes + = getUidRxBytes (UID);  txBytes + = getUidTxBytes (UID); /** * Чтение байтов UID Rx * * @param uid * @return rxBytes */public Long getUidRxBytes (int uid) {BufferedReader reader;  Длинный rxBytes = 0L;  попробуйте {reader = new BufferedReader (новый 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;  }/** * Чтение байтов UID Tx * * @param uid * @return txBytes */public Long getUidTxBytes (int uid) {BufferedReader reader;  Длинный txBytes = 0L;  попробуйте {reader = new BufferedReader (new FileReader ("/proc/uid_stat/" + uid + "/tcp_snd"));  txBytes = Long.parseLong (reader.readLine ());  читатель. Закрыть();  } catch (FileNotFoundException e) {txBytes = TrafficStats.getUidTxBytes (uid); //e.printStackTrace ();  } catch (IOException e) {e.printStackTrace ();  } return txBytes;  }}  

6

Иметь взгляд: Android Monitor .

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

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

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

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

Любой сетевой трафик начинает отображаться в сетевом мониторе:

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

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

Ссылка: Android Monitor

Улучшите этот ответ
отредактировано 20 июня ’20 в 9:12
Сообщество ♦
111 серебряных значков
ответил 19 апр. ’16 в 7:04
добавить комментарий |

Посмотрите: Android Monitor .

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

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

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

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

Любой сетевой трафик начинает отображаться в сетевом мониторе:

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

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

Ссылка: Android Monitor



Как узнать, как большая пропускная способность интернета каждый процесс использует в данный момент?

На Android у меня есть хороший модуль Xposed, который показывает текущее использование интернета, но для всей системы, а не для каждого приложения:

На моем настольном компьютере у меня есть этот элемент расширяемой панели, который показывает я точно знаю, какие приложения используют подключение к Интернету в любой момент. Он также показывает мне, сколько именно они загружают и скачивают в секунду прямо сейчас, для каждого приложения . Пользовательский интерфейс выглядит так:

Итак, мне интересно если это возможно и на Android. Я прошу указать для каждого приложения метрики использования вверх/вниз прямо сейчас, как на скриншоте выше с моего настольного компьютера.

Есть ли способ поняли?

Чтобы еще больше уточнить, я прошу указать текущую скорость, а не прошлое накопленное использование.

Приветствуются решения, требующие root-доступа и Xposed Framework.


Simple System Monitor делает это

Соответствующая функция из описания приложения

Просмотр списка активных приложений и процессов и их использования ЦП, использования ОЗУ, сетевой активности , PID и UID.

Если вы отслеживаете вкладку Активные процессы , вы можете увидеть изменение в использовании данных. Вы можете упорядочить вид на основе параметров, как показано на втором снимке экрана. Интервал обновления по умолчанию в настройках составляет 3 секунды, который может быть изменен по мере необходимости. Если вас беспокоит расход заряда батареи, вы можете приостановить приложение из пункта меню в левом верхнем углу

Оцените статью
logicle.ru
Добавить комментарий