public class android.net.metrics.WakeupStats
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.net.metrics.WakeupStats
super_class: java.lang.Object
{
private static final int NO_UID;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
public final long creationTimeMs;
descriptor: J
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final java.lang.String iface;
descriptor: Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public long totalWakeups;
descriptor: J
flags: (0x0001) ACC_PUBLIC
public long rootWakeups;
descriptor: J
flags: (0x0001) ACC_PUBLIC
public long systemWakeups;
descriptor: J
flags: (0x0001) ACC_PUBLIC
public long nonApplicationWakeups;
descriptor: J
flags: (0x0001) ACC_PUBLIC
public long applicationWakeups;
descriptor: J
flags: (0x0001) ACC_PUBLIC
public long noUidWakeups;
descriptor: J
flags: (0x0001) ACC_PUBLIC
public long durationSec;
descriptor: J
flags: (0x0001) ACC_PUBLIC
public long l2UnicastCount;
descriptor: J
flags: (0x0001) ACC_PUBLIC
public long l2MulticastCount;
descriptor: J
flags: (0x0001) ACC_PUBLIC
public long l2BroadcastCount;
descriptor: J
flags: (0x0001) ACC_PUBLIC
public final android.util.SparseIntArray ethertypes;
descriptor: Landroid/util/SparseIntArray;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final android.util.SparseIntArray ipNextHeaders;
descriptor: Landroid/util/SparseIntArray;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokestatic android.os.SystemClock.elapsedRealtime:()J
putfield android.net.metrics.WakeupStats.creationTimeMs:J
2: aload 0
lconst_0
putfield android.net.metrics.WakeupStats.totalWakeups:J
3: aload 0
lconst_0
putfield android.net.metrics.WakeupStats.rootWakeups:J
4: aload 0
lconst_0
putfield android.net.metrics.WakeupStats.systemWakeups:J
5: aload 0
lconst_0
putfield android.net.metrics.WakeupStats.nonApplicationWakeups:J
6: aload 0
lconst_0
putfield android.net.metrics.WakeupStats.applicationWakeups:J
7: aload 0
lconst_0
putfield android.net.metrics.WakeupStats.noUidWakeups:J
8: aload 0
lconst_0
putfield android.net.metrics.WakeupStats.durationSec:J
9: aload 0
lconst_0
putfield android.net.metrics.WakeupStats.l2UnicastCount:J
10: aload 0
lconst_0
putfield android.net.metrics.WakeupStats.l2MulticastCount:J
11: aload 0
lconst_0
putfield android.net.metrics.WakeupStats.l2BroadcastCount:J
12: aload 0
new android.util.SparseIntArray
dup
invokespecial android.util.SparseIntArray.<init>:()V
putfield android.net.metrics.WakeupStats.ethertypes:Landroid/util/SparseIntArray;
13: aload 0
new android.util.SparseIntArray
dup
invokespecial android.util.SparseIntArray.<init>:()V
putfield android.net.metrics.WakeupStats.ipNextHeaders:Landroid/util/SparseIntArray;
14: aload 0
aload 1
putfield android.net.metrics.WakeupStats.iface:Ljava/lang/String;
15: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Landroid/net/metrics/WakeupStats;
0 16 1 iface Ljava/lang/String;
MethodParameters:
Name Flags
iface
public void updateDuration();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokestatic android.os.SystemClock.elapsedRealtime:()J
aload 0
getfield android.net.metrics.WakeupStats.creationTimeMs:J
lsub
ldc 1000
ldiv
putfield android.net.metrics.WakeupStats.durationSec:J
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/net/metrics/WakeupStats;
public void countEvent(android.net.metrics.WakeupEvent);
descriptor: (Landroid/net/metrics/WakeupEvent;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
dup
getfield android.net.metrics.WakeupStats.totalWakeups:J
lconst_1
ladd
putfield android.net.metrics.WakeupStats.totalWakeups:J
1: aload 1
getfield android.net.metrics.WakeupEvent.uid:I
lookupswitch { // 3
-1: 6
0: 2
1000: 4
default: 8
}
2: StackMap locals:
StackMap stack:
aload 0
dup
getfield android.net.metrics.WakeupStats.rootWakeups:J
lconst_1
ladd
putfield android.net.metrics.WakeupStats.rootWakeups:J
3: goto 12
4: StackMap locals:
StackMap stack:
aload 0
dup
getfield android.net.metrics.WakeupStats.systemWakeups:J
lconst_1
ladd
putfield android.net.metrics.WakeupStats.systemWakeups:J
5: goto 12
6: StackMap locals:
StackMap stack:
aload 0
dup
getfield android.net.metrics.WakeupStats.noUidWakeups:J
lconst_1
ladd
putfield android.net.metrics.WakeupStats.noUidWakeups:J
7: goto 12
8: StackMap locals:
StackMap stack:
aload 1
getfield android.net.metrics.WakeupEvent.uid:I
sipush 10000
if_icmplt 11
9: aload 0
dup
getfield android.net.metrics.WakeupStats.applicationWakeups:J
lconst_1
ladd
putfield android.net.metrics.WakeupStats.applicationWakeups:J
10: goto 12
11: StackMap locals:
StackMap stack:
aload 0
dup
getfield android.net.metrics.WakeupStats.nonApplicationWakeups:J
lconst_1
ladd
putfield android.net.metrics.WakeupStats.nonApplicationWakeups:J
12: StackMap locals:
StackMap stack:
aload 1
13: getfield android.net.metrics.WakeupEvent.dstHwAddr:Landroid/net/MacAddress;
invokevirtual android.net.MacAddress.getAddressType:()I
tableswitch { // 1 - 3
1: 14
2: 16
3: 18
default: 20
}
14: StackMap locals:
StackMap stack:
aload 0
dup
getfield android.net.metrics.WakeupStats.l2UnicastCount:J
lconst_1
ladd
putfield android.net.metrics.WakeupStats.l2UnicastCount:J
15: goto 20
16: StackMap locals:
StackMap stack:
aload 0
dup
getfield android.net.metrics.WakeupStats.l2MulticastCount:J
lconst_1
ladd
putfield android.net.metrics.WakeupStats.l2MulticastCount:J
17: goto 20
18: StackMap locals:
StackMap stack:
aload 0
dup
getfield android.net.metrics.WakeupStats.l2BroadcastCount:J
lconst_1
ladd
putfield android.net.metrics.WakeupStats.l2BroadcastCount:J
19: goto 20
20: StackMap locals:
StackMap stack:
aload 0
getfield android.net.metrics.WakeupStats.ethertypes:Landroid/util/SparseIntArray;
aload 1
getfield android.net.metrics.WakeupEvent.ethertype:I
invokestatic android.net.metrics.WakeupStats.increment:(Landroid/util/SparseIntArray;I)V
21: aload 1
getfield android.net.metrics.WakeupEvent.ipNextHeader:I
iflt 23
22: aload 0
getfield android.net.metrics.WakeupStats.ipNextHeaders:Landroid/util/SparseIntArray;
aload 1
getfield android.net.metrics.WakeupEvent.ipNextHeader:I
invokestatic android.net.metrics.WakeupStats.increment:(Landroid/util/SparseIntArray;I)V
23: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Landroid/net/metrics/WakeupStats;
0 24 1 ev Landroid/net/metrics/WakeupEvent;
MethodParameters:
Name Flags
ev
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual android.net.metrics.WakeupStats.updateDuration:()V
1: new java.util.StringJoiner
dup
ldc ", "
ldc "WakeupStats("
ldc ")"
invokespecial java.util.StringJoiner.<init>:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V
astore 1
start local 1 2: aload 1
aload 0
getfield android.net.metrics.WakeupStats.iface:Ljava/lang/String;
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
3: aload 1
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
getfield android.net.metrics.WakeupStats.durationSec:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "s"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
4: aload 1
new java.lang.StringBuilder
dup
ldc "total: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield android.net.metrics.WakeupStats.totalWakeups:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
5: aload 1
new java.lang.StringBuilder
dup
ldc "root: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield android.net.metrics.WakeupStats.rootWakeups:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
6: aload 1
new java.lang.StringBuilder
dup
ldc "system: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield android.net.metrics.WakeupStats.systemWakeups:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
7: aload 1
new java.lang.StringBuilder
dup
ldc "apps: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield android.net.metrics.WakeupStats.applicationWakeups:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
8: aload 1
new java.lang.StringBuilder
dup
ldc "non-apps: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield android.net.metrics.WakeupStats.nonApplicationWakeups:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
9: aload 1
new java.lang.StringBuilder
dup
ldc "no uid: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield android.net.metrics.WakeupStats.noUidWakeups:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
10: aload 1
ldc "l2 unicast/multicast/broadcast: %d/%d/%d"
iconst_3
anewarray java.lang.Object
dup
iconst_0
11: aload 0
getfield android.net.metrics.WakeupStats.l2UnicastCount:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_1
aload 0
getfield android.net.metrics.WakeupStats.l2MulticastCount:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
aload 0
getfield android.net.metrics.WakeupStats.l2BroadcastCount:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
12: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
13: iconst_0
istore 2
start local 2 14: goto 19
15: StackMap locals: java.util.StringJoiner int
StackMap stack:
aload 0
getfield android.net.metrics.WakeupStats.ethertypes:Landroid/util/SparseIntArray;
iload 2
invokevirtual android.util.SparseIntArray.keyAt:(I)I
istore 3
start local 3 16: aload 0
getfield android.net.metrics.WakeupStats.ethertypes:Landroid/util/SparseIntArray;
iload 2
invokevirtual android.util.SparseIntArray.valueAt:(I)I
istore 4
start local 4 17: aload 1
ldc "ethertype 0x%x: %d"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
end local 4 end local 3 18: iinc 2 1
StackMap locals:
StackMap stack:
19: iload 2
aload 0
getfield android.net.metrics.WakeupStats.ethertypes:Landroid/util/SparseIntArray;
invokevirtual android.util.SparseIntArray.size:()I
if_icmplt 15
end local 2 20: iconst_0
istore 2
start local 2 21: goto 26
22: StackMap locals:
StackMap stack:
aload 0
getfield android.net.metrics.WakeupStats.ipNextHeaders:Landroid/util/SparseIntArray;
iload 2
invokevirtual android.util.SparseIntArray.keyAt:(I)I
istore 3
start local 3 23: aload 0
getfield android.net.metrics.WakeupStats.ipNextHeaders:Landroid/util/SparseIntArray;
iload 2
invokevirtual android.util.SparseIntArray.valueAt:(I)I
istore 4
start local 4 24: aload 1
ldc "ipNxtHdr %d: %d"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.util.StringJoiner.add:(Ljava/lang/CharSequence;)Ljava/util/StringJoiner;
pop
end local 4 end local 3 25: iinc 2 1
StackMap locals:
StackMap stack:
26: iload 2
aload 0
getfield android.net.metrics.WakeupStats.ipNextHeaders:Landroid/util/SparseIntArray;
invokevirtual android.util.SparseIntArray.size:()I
if_icmplt 22
end local 2 27: aload 1
invokevirtual java.util.StringJoiner.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Landroid/net/metrics/WakeupStats;
2 28 1 j Ljava/util/StringJoiner;
14 20 2 i I
16 18 3 eth I
17 18 4 count I
21 27 2 i I
23 25 3 proto I
24 25 4 count I
private static void increment(android.util.SparseIntArray, int);
descriptor: (Landroid/util/SparseIntArray;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iconst_0
invokevirtual android.util.SparseIntArray.get:(II)I
iconst_1
iadd
istore 2
start local 2 1: aload 0
iload 1
iload 2
invokevirtual android.util.SparseIntArray.put:(II)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 counters Landroid/util/SparseIntArray;
0 3 1 key I
1 3 2 newcount I
MethodParameters:
Name Flags
counters
key
}
SourceFile: "WakeupStats.java"