title: 安卓計算下載速度
date: 2016-07-28 11:23:13
tags:
- android
昨天開始封裝一個安卓多線程下載器,在寫的過程中,猜測想加入檢測下載過程中的速度,于是google一番,得出一個比較靠譜的答案,在此總結一下。
NANOSECONDS
NANOSECONDS,毫微秒,十億分之一秒,1s=1000000000毫微秒。
CODE EXAMPLE#
long start = System.nanoTime(); //開始時間
long totalRead = 0; //總共下載了多少
final double NANOS_PER_SECOND = 1000000000.0; //1秒=10億nanoseconds
final double BYTES_PER_MIB = 1024 * 1024; //1M=1024*1024byte
while (((len = is.read(buffler, 0, 1024)) >0)) {
totalRead += len;
double speed = NANOS_PER_SECOND / BYTES_PER_MIB * totalRead / (System.nanoTime() - start + 1);
}
WARNING
這種方法計算的是從start開始時間的平均速度,不是實時速度。