Chcę zaimplementować rozszerzenie do android.net.TrafficStats
, aby zmierzyć ruch danych na APN lub na APN na aplikację. prototyp metody wygląda następująco:W systemie Android, jak mierzyć ruch danych w interfejsie aplikacji
getInterfaceTxPackets(String interface)
getInterfaceRxPackets(String interface)
getInterfaceTxBytes(String interface)
getInterfaceRxBytes(String interface)
getUidInterfaceTxPackets(int uid,String interface)
getUidInterfaceRxPackets(int uid,String interface)
getUidInterfaceTxBytes(int uid,String interface)
getUidInterfaceRxBytes(int uid,String interface)
czytam android.net.TrafficStats.java
, to zadzwoń do metod natywnych w android_net_TrafficStats.cpp
i metody natywne przeczytać statystyki ruchu z niektórych plików:
łączne plików statystycznych o ruchu drogowym znajdują się w folderze
/sys/class/net/
, w tym folderze znajdują się podkatalogi takie jak: eth0, ip6tnl0, rmnet0, rmnet1, rmnet2, rmnet3., szczegółowe pliki statystyczne są zapisywane w tych folderach.per ruchu statystyki są pliki aplikacji w
/proc/uid_stat/[uid]/
moje pytania:
Czy folder
rmnet0, rmnet1, rmnet2, rmnet3..
. dopasować każdy APN? Jeśli tak, jaka jest zasada dopasowania? jeśli nie, w jaki sposób mogę uzyskać statystyki ruchu APN?W folderze
/proc/uid_stat/[uid]/,
istnieją tylko dwa pliki:tcp_rcv
itcp_snd
, jak mogę dostać każdy applicaton na każdej APN statystykach ruchu?
Czy jesteś na ICS? Moim zdaniem statystyki ruchu aplikacji są dostępne tylko na ICS, zobacz http://developer.android.com/sdk/android-4.0-highlights.html#data-dev – ChrLipp
Znalazłem NetworkStatsFactory.java na ICS, który może spełnić to wymaganie. Dzięki – freeman