Когда я добавляю детальное потребление для приложения
NetworkStats networkStats = networkStatsManager.querySummary(ConnectivityManager.TYPE_WIFI, null, start, end);
long totalData = 0;
NetworkStats.Bucket bucket = new NetworkStats.Bucket();
while (networkStats.hasNextBucket()) {
networkStats.getNextBucket(bucket);
totalData = bucket.getTxBytes() + bucket.getRxBytes();
}
Если я сравнил totalData с тем, что показывает Android в качестве использования добавленных данных, они отличаются. Откуда эта разница?
Я предполагаю, 1024 байта = 1 КБ, 1024 КБ = 1 МБ и так далее ...
-
Если вы сравните Datally и настройки Android - у них также есть некоторые расхождения между общим использованием в некоторых устройствах.
- Я предполагаю, что это из-за заголовков, которые, возможно, Android не добавляет в качестве данных? IPV4 может быть где-то между 20-60 байтами на MTU (1500 байтов), что добавило бы еще 3-4% к общему использованию данных. Но я не смог найти никакой информации, подтверждающей это ...
- и прежде чем спросить - да. Я удостоверился, что циклы и даты синхронизированы, все тесты были сделаны, когда данные были очищены.
Вот прикрепленное изображение с примером. В этом примере, если мы сложим все данные об использовании приложения, общая сумма составит 59,88 МБ , в отличие от 62,27 МБ , о которых сообщает мне Android.