13

android.net.TrafficStatsAPNごとまたはアプリケーションごとのAPNごとのデータトラフィックを測定するための拡張機能を実装したいと思います。メソッドのプロトタイプは次のようになります。

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)

私はを読みandroid.net.TrafficStats.java、それはのネイティブメソッドを呼び出し、ネイティブメソッドはandroid_net_TrafficStats.cppいくつかのファイルからトラフィック統計を読み取ります。

  • 合計トラフィック統計ファイルはフォルダー/sys/class/net/にあります。このフォルダーには、eth0、ip6tnl0、rmnet0、rmnet1、rmnet2、rmnet3などのサブフォルダーがあります。詳細な統計ファイルはこれらのフォルダーに保存されます。

  • アプリケーションごとのトラフィック統計ファイルは/proc/uid_stat/[uid]/

私の質問:

  1. フォルダを実行しますrmnet0, rmnet1, rmnet2, rmnet3..。各APNに一致しますか?もしそうなら、一致ルールは何ですか?そうでない場合、どうすれば各APNトラフィック統計を取得できますか?

  2. フォルダ/proc/uid_stat/[uid]/,には2つのファイルしかありません:tcp_rcvtcp_snd、各APNトラフィック統計で各アプリケーションを取得するにはどうすればよいですか?

4

1 に答える 1