Skip to content

Commit

Permalink
Fixed: NetEase#40 & NetEase#19 incorrect network traffic in some high…
Browse files Browse the repository at this point in the history
… level sdk
  • Loading branch information
andrewleo committed Mar 24, 2015
1 parent 88bf84d commit 2d2a44f
Showing 1 changed file with 23 additions and 9 deletions.
32 changes: 23 additions & 9 deletions src/com/netease/qa/emmagee/utils/TrafficInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import java.io.IOException;
import java.io.RandomAccessFile;

import android.net.TrafficStats;
import android.util.Log;

/**
Expand All @@ -30,6 +31,7 @@
public class TrafficInfo {

private static final String LOG_TAG = "Emmagee-" + TrafficInfo.class.getSimpleName();
private static final int UNSUPPORTED = -1;

private String uid;

Expand All @@ -44,21 +46,34 @@ public TrafficInfo(String uid) {
* @return total traffic include received and send traffic
*/
public long getTrafficInfo() {

Log.i(LOG_TAG, "get traffic information");
Log.d(LOG_TAG, "uid===" + uid);

long rcvTraffic = UNSUPPORTED;
long sndTraffic = UNSUPPORTED;

// Use getUidRxBytes and getUidTxBytes to get network traffic,these API
// return both tcp and udp usage
rcvTraffic = TrafficStats.getUidRxBytes(Integer.parseInt(uid));
sndTraffic = TrafficStats.getUidTxBytes(Integer.parseInt(uid));

if (rcvTraffic == UNSUPPORTED || sndTraffic == UNSUPPORTED) {
return UNSUPPORTED;
}

RandomAccessFile rafRcv = null, rafSnd = null;
String rcvPath = "/proc/uid_stat/" + uid + "/tcp_rcv";
String sndPath = "/proc/uid_stat/" + uid + "/tcp_snd";
long rcvTraffic = -1;
long sndTraffic = -1;

try {
rafRcv = new RandomAccessFile(rcvPath, "r");
rafSnd = new RandomAccessFile(sndPath, "r");
rcvTraffic = Long.parseLong(rafRcv.readLine());
sndTraffic = Long.parseLong(rafSnd.readLine());
} catch (FileNotFoundException e) {
rcvTraffic = -1;
sndTraffic = -1;
rcvTraffic = UNSUPPORTED;
sndTraffic = UNSUPPORTED;
} catch (NumberFormatException e) {
Log.e(LOG_TAG, "NumberFormatException: " + e.getMessage());
e.printStackTrace();
Expand All @@ -73,13 +88,12 @@ public long getTrafficInfo() {
if (rafSnd != null)
rafSnd.close();
} catch (IOException e) {
Log.i(LOG_TAG, "close randomAccessFile exception: " + e.getMessage());
Log.w(LOG_TAG, "Close randomAccessFile exception: " + e.getMessage());
}
}
Log.d(LOG_TAG, "rcvTraffic===" + rcvTraffic);
Log.d(LOG_TAG, "sndTraffic===" + sndTraffic);
if (rcvTraffic == -1 || sndTraffic == -1) {
return -1;

if (rcvTraffic == UNSUPPORTED || sndTraffic == UNSUPPORTED) {
return UNSUPPORTED;
} else
return rcvTraffic + sndTraffic;
}
Expand Down

0 comments on commit 2d2a44f

Please sign in to comment.