Android TrafficStats API在不同的API级别上提供不同的值?

Android TrafficStats API在不同的API级别上提供不同的值?,android,android-networking,Android,Android Networking,在我的应用程序中,我将一个4MB大小的文件上传到服务器。我正在使用getUidTxBytesint-uid方法监视我的应用程序传输的字节。以下是我的观察: API 18及以上 我传输的总字节数总是大于4MBEgs:4.27MB,因此我假设它是我的有效负载+头的总和 API 17及以下 我传输的总字节数总是等于4MBEgs:4.0003MB,所以我假设这是我的有效负载的总和 为什么在不同的API级别上计算的字节会有差异?请注意,getUidTxBytes不是事务性的,它将包括您的进程在测量之间所做

在我的应用程序中,我将一个4MB大小的文件上传到服务器。我正在使用getUidTxBytesint-uid方法监视我的应用程序传输的字节。以下是我的观察:

API 18及以上

我传输的总字节数总是大于4MBEgs:4.27MB,因此我假设它是我的有效负载+头的总和

API 17及以下

我传输的总字节数总是等于4MBEgs:4.0003MB,所以我假设这是我的有效负载的总和


为什么在不同的API级别上计算的字节会有差异?

请注意,getUidTxBytes不是事务性的,它将包括您的进程在测量之间所做的任何事情。您确定在您的流程中没有其他可能只在API级别18+中起作用的事情吗?看起来TrafficStats在API级别18中经历了一些变化,这是一堆不推荐的东西,所以您看到的完全可能是TrafficStats行为的实际变化。@Commonware感谢您的快速响应。我确信我的应用程序中只发生了特定的交易。每秒钟我都在测量getUidTxBytes,这个API提供给我的数据量等于我在OutputStream上写入的数据量,而在API 18+中,这个值总是大于我在OutputStream中写入的数据量,这似乎是正确的,因为它应该是有效负载+头字节。是的,但是0.27MB的头字节看起来太多了。你的标题实际上是文件大小的1/16?很抱歉延迟回复,但我已经在不同的OEM上进行了测试,它显示了所有这些文件的确切行为。对于不同的API,我得到的头仍然是不同的。API 18以下和以上版本的实现有什么不同吗?据我所知没有,但TrafficStats的实现必须是相当低的级别。