我们知道,andorid实现流量统计其实通过ndk调用的以下几个文件
发送包:/sys/class/net/rmnet0/statistics/tx_packets
接收包:/sys/class/net/rmnet0/statistics/rx_packets
发送字节:/sys/class/net/rmnet0/statistics/tx_bytes
接收字节:/sys/class/net/rmnet0/statistics/rx_bytes
或者:/proc/self/net/dev
但是,我通过读取以下文件或者直接调用用andorid的流量api(2.2以上),进行流量统计。
发现和运营商直接通过RNC测速的结果差距有点大(下载时候,手机的结果大于了RNC的结果,理论上应该相反);
在手机上的测试结果,发现某些手机都超过WCDMA的理论值(7.2Mbps)
不知道有人碰见过类似的问题没。
现在主要是怀疑是不是Linux底层的实现问题?PS:我补充下程序进行下载测速的过程
手机通过启动5个线程的FTP客户端,然后等所有客户端连接成功后,开启下载;在下载启动3秒后,记录第一个时间(t1)和第一个下行流量(接收字节)(rx1)。然后在一定时间后(比如5分钟),记录第二个时间(t2)和第二个下行流量(rx2)。
然后得到平均下载速度S = (tx2-rx1)/(t2-t1);
用S和运营商RNC测速(S1)进行比较,会发现S>S1,这个是不正常的……