首先,我要说的是,Android中的网络数据计数并不是那么容易,因为没有API可以干净地提供此信息。应用程序开发人员必须处理一些Linux内部问题和其他问题。这就是为什么大多数流量计数应用程序不能在每种硬件/软件组合上都起作用的原因。例如,我有一个与Eclair一起使用的应用程序,但在我的Galaxy S上不再与Gingerbread一起使用。
Android引入了API级别11(Honeycomb)的长期演进(4G)支持。大多数流量计数器从底层linux网络接口读取其卷信息。AFAIK只有两个接口,一个用于Wifi,一个用于2G / 3G / 4G,这意味着:
- 很难监视与2G / 3G分离的4G数据
- 如果某个应用说它监控2G / 3G,则很可能还包括4G
- Androids 4G API相对较新。支持,包括单独的流量计数(如果可能),将在不久的将来出现在应用程序中。
这是一个示例清单,显示了我的Galaxy S上的接口及其流量。pdp0是移动设备,eth0是wifi接口:
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