2011-11-25 15 views
13

android.net.TrafficStatsへの拡張を実装して、アプリケーションごとまたはAPNごとのデータトラフィックを測定したいと考えています。私はandroid.net.TrafficStats.javaを読んAndroidでは、アプリケーションごとにインターフェイスごとのデータトラフィックを測定する方法

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.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]/,には、tcp_rcvとの2つのファイルしかありません。各APNトラフィック統計でどのように各アプリケーションを取得できますか。

+0

あなたはICSにいますか?私の意見では、アプリケーショントラフィックの統計情報はICSでのみ利用可能です。http://developer.android.com/sdk/android-4.0-highlights.html#data-dev – ChrLipp

+2

これを満たすことができるICSのNetworkStatsFactory.javaが見つかりました要件。ありがとう – freeman

答えて

0

Android 4.0に移行してください。ここでは、これを監視しているデータの使用状況を監視しています。これらのAPIは、インターフェイスごとのUIDごとのトラフィック情報を収集する、より複雑なサービスの上に置かれています。

それぞれのインターフェイス名には意味がありませんので、あるデバイスで特定の名前が別のデバイスで同じものを意味すると考えることはできません。

関連する問題