Во-первых, позвольте мне сказать, что подсчет сетевых данных в Android не так прост, потому что нет API, который бы предоставлял эту информацию в чистом виде. Разработчики приложений должны работать с некоторыми внутренними компонентами Linux и другими проблемами. Вот почему большинство приложений для подсчета трафика работают не на каждой комбинации аппаратного и программного обеспечения. Например, у меня было приложение, которое работало с Eclair, но перестало работать с Gingerbread на моей Galaxy S.
Android представила поддержку Long Term Evolution (4G) с API уровня 11 (Honeycomb). Большинство счетчиков трафика считывают информацию о своем объеме из базового сетевого интерфейса Linux. AFAIK есть только два интерфейса, один для Wifi и один 2G / 3G / 4G, что означает:
- Будет трудно контролировать данные 4G, отделенные от 2G / 3G
- Если приложение говорит, что оно контролирует 2G / 3G, вполне вероятно, что оно также включает 4G
- Android 4G API является относительно новым. Поддержка, включая отдельный подсчет трафика (если это возможно), появится в приложениях в ближайшем будущем.
Вот пример списка, который показывает интерфейсы и их трафик на моей Galaxy S. pdp0 - это мобильный телефон, а eth0 - это интерфейс Wi-Fi :
Interface name: lo
Bytes in: 204335770
Bytes out: 204335770
Interface name: svnet0
Bytes in: 669002
Bytes out: 38238
Interface name: ifb0
Bytes in: 0
Bytes out: 0
Interface name: ifb1
Bytes in: 0
Bytes out: 0
Interface name: usb0
Bytes in: 0
Bytes out: 0
Interface name: sit0
Bytes in: 0
Bytes out: 0
Interface name: ip6tnl0
Bytes in: 0
Bytes out: 0
Interface name: eth0
Bytes in: 9981470
Bytes out: 3524023
Interface name: pdp0
Bytes in: 1421620
Bytes out: 361198