Search in sources :

Example 21 with NetworkStatsHistory

use of android.net.NetworkStatsHistory in project android_frameworks_base by DirtyUnicorns.

the class NetworkStatsServiceTest method assertNetworkTotal.

private void assertNetworkTotal(NetworkTemplate template, long start, long end, long rxBytes, long rxPackets, long txBytes, long txPackets, int operations) throws Exception {
    // verify history API
    final NetworkStatsHistory history = mSession.getHistoryForNetwork(template, FIELD_ALL);
    assertValues(history, start, end, rxBytes, rxPackets, txBytes, txPackets, operations);
    // verify summary API
    final NetworkStats stats = mSession.getSummaryForNetwork(template, start, end);
    assertValues(stats, IFACE_ALL, UID_ALL, SET_DEFAULT, TAG_NONE, ROAMING_NO, rxBytes, rxPackets, txBytes, txPackets, operations);
}
Also used : NetworkStats(android.net.NetworkStats) NetworkStatsHistory(android.net.NetworkStatsHistory)

Example 22 with NetworkStatsHistory

use of android.net.NetworkStatsHistory in project android_frameworks_base by DirtyUnicorns.

the class NetworkStatsCollection method read.

public void read(DataInputStream in) throws IOException {
    // verify file magic header intact
    final int magic = in.readInt();
    if (magic != FILE_MAGIC) {
        throw new ProtocolException("unexpected magic: " + magic);
    }
    final int version = in.readInt();
    switch(version) {
        case VERSION_UNIFIED_INIT:
            {
                // uid := size *(NetworkIdentitySet size *(uid set tag NetworkStatsHistory))
                final int identSize = in.readInt();
                for (int i = 0; i < identSize; i++) {
                    final NetworkIdentitySet ident = new NetworkIdentitySet(in);
                    final int size = in.readInt();
                    for (int j = 0; j < size; j++) {
                        final int uid = in.readInt();
                        final int set = in.readInt();
                        final int tag = in.readInt();
                        final Key key = new Key(ident, uid, set, tag);
                        final NetworkStatsHistory history = new NetworkStatsHistory(in);
                        recordHistory(key, history);
                    }
                }
                break;
            }
        default:
            {
                throw new ProtocolException("unexpected version: " + version);
            }
    }
}
Also used : ProtocolException(java.net.ProtocolException) NetworkStatsHistory(android.net.NetworkStatsHistory)

Example 23 with NetworkStatsHistory

use of android.net.NetworkStatsHistory in project android_frameworks_base by DirtyUnicorns.

the class NetworkStatsCollection method dumpCheckin.

/**
     * Dump all contained stats that match requested parameters, but group
     * together all matching {@link NetworkTemplate} under a single prefix.
     */
private void dumpCheckin(PrintWriter pw, long start, long end, NetworkTemplate groupTemplate, String groupPrefix) {
    final ArrayMap<Key, NetworkStatsHistory> grouped = new ArrayMap<>();
    // Walk through all history, grouping by matching network templates
    for (int i = 0; i < mStats.size(); i++) {
        final Key key = mStats.keyAt(i);
        final NetworkStatsHistory value = mStats.valueAt(i);
        if (!templateMatches(groupTemplate, key.ident))
            continue;
        if (key.set >= NetworkStats.SET_DEBUG_START)
            continue;
        final Key groupKey = new Key(null, key.uid, key.set, key.tag);
        NetworkStatsHistory groupHistory = grouped.get(groupKey);
        if (groupHistory == null) {
            groupHistory = new NetworkStatsHistory(value.getBucketDuration());
            grouped.put(groupKey, groupHistory);
        }
        groupHistory.recordHistory(value, start, end);
    }
    for (int i = 0; i < grouped.size(); i++) {
        final Key key = grouped.keyAt(i);
        final NetworkStatsHistory value = grouped.valueAt(i);
        if (value.size() == 0)
            continue;
        pw.print("c,");
        pw.print(groupPrefix);
        pw.print(',');
        pw.print(key.uid);
        pw.print(',');
        pw.print(NetworkStats.setToCheckinString(key.set));
        pw.print(',');
        pw.print(key.tag);
        pw.println();
        value.dumpCheckin(pw);
    }
}
Also used : ArrayMap(android.util.ArrayMap) NetworkStatsHistory(android.net.NetworkStatsHistory)

Example 24 with NetworkStatsHistory

use of android.net.NetworkStatsHistory in project android_frameworks_base by DirtyUnicorns.

the class NetworkStatsCollection method readLegacyNetwork.

@Deprecated
public void readLegacyNetwork(File file) throws IOException {
    final AtomicFile inputFile = new AtomicFile(file);
    DataInputStream in = null;
    try {
        in = new DataInputStream(new BufferedInputStream(inputFile.openRead()));
        // verify file magic header intact
        final int magic = in.readInt();
        if (magic != FILE_MAGIC) {
            throw new ProtocolException("unexpected magic: " + magic);
        }
        final int version = in.readInt();
        switch(version) {
            case VERSION_NETWORK_INIT:
                {
                    // network := size *(NetworkIdentitySet NetworkStatsHistory)
                    final int size = in.readInt();
                    for (int i = 0; i < size; i++) {
                        final NetworkIdentitySet ident = new NetworkIdentitySet(in);
                        final NetworkStatsHistory history = new NetworkStatsHistory(in);
                        final Key key = new Key(ident, UID_ALL, SET_ALL, TAG_NONE);
                        recordHistory(key, history);
                    }
                    break;
                }
            default:
                {
                    throw new ProtocolException("unexpected version: " + version);
                }
        }
    } catch (FileNotFoundException e) {
    // missing stats is okay, probably first boot
    } finally {
        IoUtils.closeQuietly(in);
    }
}
Also used : ProtocolException(java.net.ProtocolException) AtomicFile(android.util.AtomicFile) BufferedInputStream(java.io.BufferedInputStream) FileNotFoundException(java.io.FileNotFoundException) NetworkStatsHistory(android.net.NetworkStatsHistory) DataInputStream(java.io.DataInputStream)

Example 25 with NetworkStatsHistory

use of android.net.NetworkStatsHistory in project android_frameworks_base by DirtyUnicorns.

the class NetworkStatsCollection method recordHistory.

/**
     * Record given {@link NetworkStatsHistory} into this collection.
     */
private void recordHistory(Key key, NetworkStatsHistory history) {
    if (history.size() == 0)
        return;
    noteRecordedHistory(history.getStart(), history.getEnd(), history.getTotalBytes());
    NetworkStatsHistory target = mStats.get(key);
    if (target == null) {
        target = new NetworkStatsHistory(history.getBucketDuration());
        mStats.put(key, target);
    }
    target.recordEntireHistory(history);
}
Also used : NetworkStatsHistory(android.net.NetworkStatsHistory)

Aggregations

NetworkStatsHistory (android.net.NetworkStatsHistory)109 NetworkStats (android.net.NetworkStats)21 ProtocolException (java.net.ProtocolException)18 AtomicFile (android.util.AtomicFile)12 BufferedInputStream (java.io.BufferedInputStream)12 DataInputStream (java.io.DataInputStream)12 FileNotFoundException (java.io.FileNotFoundException)12 RemoteException (android.os.RemoteException)10 ArrayList (java.util.ArrayList)6 INetworkStatsSession (android.net.INetworkStatsSession)5 NetworkPolicy (android.net.NetworkPolicy)5 Time (android.text.format.Time)5 ArrayMap (android.util.ArrayMap)5 IntArray (android.util.IntArray)5 Date (java.util.Date)5 Suppress (android.test.suitebuilder.annotation.Suppress)4 HashMap (java.util.HashMap)2 Map (java.util.Map)2 PendingIntent (android.app.PendingIntent)1 Context (android.content.Context)1