Время задержки в андроиде

1

Я загружаю любой тип файла и хочу рассчитать время задержки, которое скачал файл.

Plzz поможет, как это будет реализовано в android.

Спасибо

Теги:

2 ответа

2
Лучший ответ

Для меня что-то вроде этого делает трюк:

Process process = Runtime.getRuntime().exec("ping -c 1 google.com");
process.waitFor();

Вы можете повторно выражать ответ, читая InputStream, предоставляемые процессом.

0

Я искал аналогичную проблему.

Вот некоторые связанные ресурсы, которые я нашел. Как проверить скорость интернета (JavaSE)?

В этом сообщении блога рекомендуется использовать InetAddress.getByName(host).isReachable(timeOut), а затем измерять время отклика.

http://tech.gaeatimes.com/index.php/archive/how-to-do-icmp-ping-in-java-jdk-15-and-above/

Это, скорее всего, не лучшее решение, но это легко. Так что-то вроде этого.

String host = "172.16.0.2";
int timeOut = 3000; 
long[] time = new long[5];
Boolean reachable;

for(int i=0; i<5; i++)
{
long BeforeTime = System.currentTimeMillis();
reachable =  InetAddress.getByName(host).isReachable(timeOut);
long AfterTime = System.currentTimeMillis();
Long TimeDifference = AfterTime - BeforeTime;
time[i] = TimeDifference;
}

Теперь у вас есть массив из 5 значений, которые показали примерно, сколько времени потребовалось, чтобы проверить, достижимо ли машина путем ping; false в противном случае. Мы знаем, если время разницы составляет 3 секунды, а затем время ожидания, вы также можете добавить массив логических чисел, чтобы показать успех и скорость отказа.

Это не идеально, но дает приблизительное представление о задержке в данный момент времени.

Это соответствует определению латентности, найденному по ссылке ниже, за исключением того, что оно измеряет время отправки и возврата, а не время от отправителя к получателю: http://searchcio-midmarket.techtarget.com/definition/latency

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

Выполнение большего количества исследований показывает, что isReachable может не работать так хорошо. Отладка Android InetAddress.isReachable

Это может работать лучше.

HttpGet request = new HttpGet(Url.toString());

HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 3000);
HttpClient httpClient = new DefaultHttpClient(httpParameters);
for(int i=0; i<5; i++)
{
long BeforeTime = System.currentTimeMillis();
HttpResponse response = httpClient.execute(request);
long AfterTime = System.currentTimeMillis();
Long TimeDifference = AfterTime - BeforeTime;
time[i] = TimeDifference;
 }

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

Если это поможет, примите этот ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню