در Android 4.0، آمار گزارششده توسط میاناهای شبکه Linux درطول زمان ثبت میشود و برای اعمال محدودیتهای سهمیه شبکه، ارائه نمودارهای قابلمشاهده برای کاربر، و موارد دیگر استفاده میشود.
هر درایور دستگاه شبکه (ازجمله Wi-Fi) باید از چرخه حیات استاندارد دستگاه هسته پیروی کند و آمار صحیح را ازطریق dev_get_stats() برگرداند. بهویژه، آمار برگشتی باید درحالیکه میانای کاربری فعال است
کاملاً یکنواخت باشد. درایورها ممکن است آمار را فقط پساز تکمیل موفقیتآمیز unregister_netdev() یا معادل آن که رویداد NETDEV_UNREGISTER را برای فراخوانیهای ثبتشده با register_netdevice_notifier() / register_inetaddr_notifier() / register_inet6addr_notifier() تولید میکند بازنشانی کنند.
اپراتورهای تلفن همراه معمولاً مصرف داده را در لایه اینترنت (IP) اندازهگیری میکنند. برای مطابقت با این رویکرد در Android 4.0، ما به این واقعیت تکیه میکنیم که
برای دستگاههای هستهای که به آنها اهمیت میدهیم، مقادیر rx_bytes و tx_bytes
که توسط dev_get_stats() برگردانده میشوند، دقیقاً بایتهای منتقلشده لایه اینترنت
(IP) را برمیگردانند. اما میدانیم که برای دستگاههای دیگر ممکن است اینطور نباشد. درحالحاضر، این ویژگی به این
ویژگی خاص متکی است. درایورهای جدید نیز باید این دارایی را داشته باشند و مقادیر
dev_get_stats() نباید هیچگونه سربار کپسولهسازی از لایههای شبکه پایینتر (مثل سرایندههای اترنت) را شامل شود و ترجیحاً نباید ترافیک دیگری (مثل ARP) را شامل شود، مگر اینکه ناچیز باشد.
چارچوب Android فقط آمار را از میاناهای شبکه
مرتبط با NetworkStateTracker در ConnectivityService جمعآوری میکند. این
به چارچوب امکان میدهد تا هر میانای شبکه را بهطور مشخص شناسایی کند،
ازجمله نوع آن (مانند TYPE_MOBILE یا TYPE_WIFI) و
هویت مشترک (مانند IMSI). همه میاناهای شبکه که برای مسیریابی دادهها استفاده میشوند باید با NetworkStateTracker نشان داده شوند تا آمارها بهدرستی محاسبه شوند.