public class com.android.internal.os.BinderCallsStats
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.android.internal.os.BinderCallsStats
super_class: java.lang.Object
{
private static final int CALL_SESSIONS_POOL_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 100
private static final com.android.internal.os.BinderCallsStats sInstance;
descriptor: Lcom/android/internal/os/BinderCallsStats;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private volatile boolean mDetailedTracking;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final android.util.SparseArray<com.android.internal.os.BinderCallsStats$UidEntry> mUidEntries;
descriptor: Landroid/util/SparseArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Landroid/util/SparseArray<Lcom/android/internal/os/BinderCallsStats$UidEntry;>;
RuntimeInvisibleAnnotations:
com.android.internal.annotations.GuardedBy(value = "mLock")
private final java.util.Queue<com.android.internal.os.BinderCallsStats$CallSession> mCallSessionsPool;
descriptor: Ljava/util/Queue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Queue<Lcom/android/internal/os/BinderCallsStats$CallSession;>;
private final java.lang.Object mLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long mStartTime;
descriptor: J
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new com.android.internal.os.BinderCallsStats
dup
invokespecial com.android.internal.os.BinderCallsStats.<init>:()V
putstatic com.android.internal.os.BinderCallsStats.sInstance:Lcom/android/internal/os/BinderCallsStats;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield com.android.internal.os.BinderCallsStats.mDetailedTracking:Z
2: aload 0
new android.util.SparseArray
dup
invokespecial android.util.SparseArray.<init>:()V
putfield com.android.internal.os.BinderCallsStats.mUidEntries:Landroid/util/SparseArray;
3: aload 0
new java.util.concurrent.ConcurrentLinkedQueue
dup
invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
putfield com.android.internal.os.BinderCallsStats.mCallSessionsPool:Ljava/util/Queue;
4: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield com.android.internal.os.BinderCallsStats.mLock:Ljava/lang/Object;
5: aload 0
invokestatic java.lang.System.currentTimeMillis:()J
putfield com.android.internal.os.BinderCallsStats.mStartTime:J
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/android/internal/os/BinderCallsStats;
public void <init>(boolean);
descriptor: (Z)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
iconst_0
putfield com.android.internal.os.BinderCallsStats.mDetailedTracking:Z
2: aload 0
new android.util.SparseArray
dup
invokespecial android.util.SparseArray.<init>:()V
putfield com.android.internal.os.BinderCallsStats.mUidEntries:Landroid/util/SparseArray;
3: aload 0
new java.util.concurrent.ConcurrentLinkedQueue
dup
invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
putfield com.android.internal.os.BinderCallsStats.mCallSessionsPool:Ljava/util/Queue;
4: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield com.android.internal.os.BinderCallsStats.mLock:Ljava/lang/Object;
5: aload 0
invokestatic java.lang.System.currentTimeMillis:()J
putfield com.android.internal.os.BinderCallsStats.mStartTime:J
6: aload 0
iload 1
putfield com.android.internal.os.BinderCallsStats.mDetailedTracking:Z
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/android/internal/os/BinderCallsStats;
0 8 1 detailedTracking Z
RuntimeInvisibleAnnotations:
com.android.internal.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.android.internal.annotations.VisibleForTesting()
MethodParameters:
Name Flags
detailedTracking
public com.android.internal.os.BinderCallsStats$CallSession callStarted(android.os.Binder, int);
descriptor: (Landroid/os/Binder;I)Lcom/android/internal/os/BinderCallsStats$CallSession;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
iload 2
invokevirtual com.android.internal.os.BinderCallsStats.callStarted:(Ljava/lang/String;I)Lcom/android/internal/os/BinderCallsStats$CallSession;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/internal/os/BinderCallsStats;
0 1 1 binder Landroid/os/Binder;
0 1 2 code I
MethodParameters:
Name Flags
binder
code
private com.android.internal.os.BinderCallsStats$CallSession callStarted(java.lang.String, int);
descriptor: (Ljava/lang/String;I)Lcom/android/internal/os/BinderCallsStats$CallSession;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.android.internal.os.BinderCallsStats.mCallSessionsPool:Ljava/util/Queue;
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast com.android.internal.os.BinderCallsStats$CallSession
astore 3
start local 3 1: aload 3
ifnonnull 3
2: new com.android.internal.os.BinderCallsStats$CallSession
dup
invokespecial com.android.internal.os.BinderCallsStats$CallSession.<init>:()V
astore 3
3: StackMap locals: com.android.internal.os.BinderCallsStats$CallSession
StackMap stack:
aload 3
getfield com.android.internal.os.BinderCallsStats$CallSession.mCallStat:Lcom/android/internal/os/BinderCallsStats$CallStat;
aload 1
putfield com.android.internal.os.BinderCallsStats$CallStat.className:Ljava/lang/String;
4: aload 3
getfield com.android.internal.os.BinderCallsStats$CallSession.mCallStat:Lcom/android/internal/os/BinderCallsStats$CallStat;
iload 2
putfield com.android.internal.os.BinderCallsStats$CallStat.msg:I
5: aload 3
aload 0
invokevirtual com.android.internal.os.BinderCallsStats.getThreadTimeMicro:()J
putfield com.android.internal.os.BinderCallsStats$CallSession.mStarted:J
6: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/android/internal/os/BinderCallsStats;
0 7 1 className Ljava/lang/String;
0 7 2 code I
1 7 3 s Lcom/android/internal/os/BinderCallsStats$CallSession;
MethodParameters:
Name Flags
className
code
public void callEnded(com.android.internal.os.BinderCallsStats$CallSession);
descriptor: (Lcom/android/internal/os/BinderCallsStats$CallSession;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield com.android.internal.os.BinderCallsStats.mDetailedTracking:Z
ifeq 2
aload 0
invokevirtual com.android.internal.os.BinderCallsStats.getThreadTimeMicro:()J
aload 1
getfield com.android.internal.os.BinderCallsStats$CallSession.mStarted:J
lsub
goto 3
StackMap locals:
StackMap stack:
2: lconst_1
StackMap locals:
StackMap stack: long
3: lstore 2
start local 2 4: aload 1
invokestatic android.os.Binder.getCallingUid:()I
putfield com.android.internal.os.BinderCallsStats$CallSession.mCallingUId:I
5: aload 0
getfield com.android.internal.os.BinderCallsStats.mLock:Ljava/lang/Object;
dup
astore 4
monitorenter
6: aload 0
getfield com.android.internal.os.BinderCallsStats.mUidEntries:Landroid/util/SparseArray;
aload 1
getfield com.android.internal.os.BinderCallsStats$CallSession.mCallingUId:I
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
checkcast com.android.internal.os.BinderCallsStats$UidEntry
astore 5
start local 5 7: aload 5
ifnonnull 10
8: new com.android.internal.os.BinderCallsStats$UidEntry
dup
aload 1
getfield com.android.internal.os.BinderCallsStats$CallSession.mCallingUId:I
invokespecial com.android.internal.os.BinderCallsStats$UidEntry.<init>:(I)V
astore 5
9: aload 0
getfield com.android.internal.os.BinderCallsStats.mUidEntries:Landroid/util/SparseArray;
aload 1
getfield com.android.internal.os.BinderCallsStats$CallSession.mCallingUId:I
aload 5
invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
10: StackMap locals: long java.lang.Object com.android.internal.os.BinderCallsStats$UidEntry
StackMap stack:
aload 0
getfield com.android.internal.os.BinderCallsStats.mDetailedTracking:Z
ifeq 17
11: aload 5
getfield com.android.internal.os.BinderCallsStats$UidEntry.mCallStats:Ljava/util/Map;
aload 1
getfield com.android.internal.os.BinderCallsStats$CallSession.mCallStat:Lcom/android/internal/os/BinderCallsStats$CallStat;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.android.internal.os.BinderCallsStats$CallStat
astore 6
start local 6 12: aload 6
ifnonnull 15
13: new com.android.internal.os.BinderCallsStats$CallStat
dup
aload 1
getfield com.android.internal.os.BinderCallsStats$CallSession.mCallStat:Lcom/android/internal/os/BinderCallsStats$CallStat;
getfield com.android.internal.os.BinderCallsStats$CallStat.className:Ljava/lang/String;
aload 1
getfield com.android.internal.os.BinderCallsStats$CallSession.mCallStat:Lcom/android/internal/os/BinderCallsStats$CallStat;
getfield com.android.internal.os.BinderCallsStats$CallStat.msg:I
invokespecial com.android.internal.os.BinderCallsStats$CallStat.<init>:(Ljava/lang/String;I)V
astore 6
14: aload 5
getfield com.android.internal.os.BinderCallsStats$UidEntry.mCallStats:Ljava/util/Map;
aload 6
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: StackMap locals: com.android.internal.os.BinderCallsStats$CallStat
StackMap stack:
aload 6
dup
getfield com.android.internal.os.BinderCallsStats$CallStat.callCount:J
lconst_1
ladd
putfield com.android.internal.os.BinderCallsStats$CallStat.callCount:J
16: aload 6
dup
getfield com.android.internal.os.BinderCallsStats$CallStat.time:J
lload 2
ladd
putfield com.android.internal.os.BinderCallsStats$CallStat.time:J
end local 6 17: StackMap locals:
StackMap stack:
aload 5
dup
getfield com.android.internal.os.BinderCallsStats$UidEntry.time:J
lload 2
ladd
putfield com.android.internal.os.BinderCallsStats$UidEntry.time:J
18: aload 5
dup
getfield com.android.internal.os.BinderCallsStats$UidEntry.callCount:J
lconst_1
ladd
putfield com.android.internal.os.BinderCallsStats$UidEntry.callCount:J
end local 5 19: aload 4
monitorexit
20: goto 23
StackMap locals: com.android.internal.os.BinderCallsStats com.android.internal.os.BinderCallsStats$CallSession long java.lang.Object
StackMap stack: java.lang.Throwable
21: aload 4
monitorexit
22: athrow
23: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BinderCallsStats.mCallSessionsPool:Ljava/util/Queue;
invokeinterface java.util.Queue.size:()I
bipush 100
if_icmpge 25
24: aload 0
getfield com.android.internal.os.BinderCallsStats.mCallSessionsPool:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
25: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/android/internal/os/BinderCallsStats;
0 26 1 s Lcom/android/internal/os/BinderCallsStats$CallSession;
4 26 2 duration J
7 19 5 uidEntry Lcom/android/internal/os/BinderCallsStats$UidEntry;
12 17 6 callStat Lcom/android/internal/os/BinderCallsStats$CallStat;
Exception table:
from to target type
6 20 21 any
21 22 21 any
MethodParameters:
Name Flags
s
public void dump(java.io.PrintWriter);
descriptor: (Ljava/io/PrintWriter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=16, args_size=2
start local 0 start local 1 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 1: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 3
start local 3 2: lconst_0
lstore 4
start local 4 3: lconst_0
lstore 6
start local 6 4: aload 1
ldc "Start time: "
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
5: aload 1
ldc "yyyy-MM-dd HH:mm:ss"
aload 0
getfield com.android.internal.os.BinderCallsStats.mStartTime:J
invokestatic android.text.format.DateFormat.format:(Ljava/lang/CharSequence;J)Ljava/lang/CharSequence;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/Object;)V
6: aload 0
getfield com.android.internal.os.BinderCallsStats.mUidEntries:Landroid/util/SparseArray;
invokevirtual android.util.SparseArray.size:()I
istore 8
start local 8 7: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 9
start local 9 8: aload 0
getfield com.android.internal.os.BinderCallsStats.mLock:Ljava/lang/Object;
dup
astore 10
monitorenter
9: iconst_0
istore 11
start local 11 10: goto 27
11: StackMap locals: com.android.internal.os.BinderCallsStats java.io.PrintWriter java.util.Map java.util.Map long long int java.util.List java.lang.Object int
StackMap stack:
aload 0
getfield com.android.internal.os.BinderCallsStats.mUidEntries:Landroid/util/SparseArray;
iload 11
invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
checkcast com.android.internal.os.BinderCallsStats$UidEntry
astore 12
start local 12 12: aload 9
aload 12
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
13: lload 6
aload 12
getfield com.android.internal.os.BinderCallsStats$UidEntry.time:J
ladd
lstore 6
14: aload 2
aload 12
getfield com.android.internal.os.BinderCallsStats$UidEntry.uid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Long
astore 13
start local 13 15: aload 2
aload 12
getfield com.android.internal.os.BinderCallsStats$UidEntry.uid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
16: aload 13
ifnonnull 17
aload 12
getfield com.android.internal.os.BinderCallsStats$UidEntry.time:J
goto 18
StackMap locals: com.android.internal.os.BinderCallsStats java.io.PrintWriter java.util.Map java.util.Map long long int java.util.List java.lang.Object int com.android.internal.os.BinderCallsStats$UidEntry java.lang.Long
StackMap stack: java.util.Map java.lang.Integer
17: aload 13
invokevirtual java.lang.Long.longValue:()J
aload 12
getfield com.android.internal.os.BinderCallsStats$UidEntry.time:J
ladd
StackMap locals: com.android.internal.os.BinderCallsStats java.io.PrintWriter java.util.Map java.util.Map long long int java.util.List java.lang.Object int com.android.internal.os.BinderCallsStats$UidEntry java.lang.Long
StackMap stack: java.util.Map java.lang.Integer long
18: invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
19: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
20: aload 3
aload 12
getfield com.android.internal.os.BinderCallsStats$UidEntry.uid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Long
astore 14
start local 14 21: aload 3
aload 12
getfield com.android.internal.os.BinderCallsStats$UidEntry.uid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 14
ifnonnull 22
aload 12
getfield com.android.internal.os.BinderCallsStats$UidEntry.callCount:J
goto 23
22: StackMap locals: com.android.internal.os.BinderCallsStats java.io.PrintWriter java.util.Map java.util.Map long long int java.util.List java.lang.Object int com.android.internal.os.BinderCallsStats$UidEntry java.lang.Long java.lang.Long
StackMap stack: java.util.Map java.lang.Integer
aload 14
invokevirtual java.lang.Long.longValue:()J
aload 12
getfield com.android.internal.os.BinderCallsStats$UidEntry.callCount:J
ladd
StackMap locals: com.android.internal.os.BinderCallsStats java.io.PrintWriter java.util.Map java.util.Map long long int java.util.List java.lang.Object int com.android.internal.os.BinderCallsStats$UidEntry java.lang.Long java.lang.Long
StackMap stack: java.util.Map java.lang.Integer long
23: invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
24: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
25: lload 4
aload 12
getfield com.android.internal.os.BinderCallsStats$UidEntry.callCount:J
ladd
lstore 4
end local 14 end local 13 end local 12 26: iinc 11 1
StackMap locals:
StackMap stack:
27: iload 11
iload 8
if_icmplt 11
end local 11 28: aload 10
monitorexit
29: goto 32
StackMap locals: com.android.internal.os.BinderCallsStats java.io.PrintWriter java.util.Map java.util.Map long long int java.util.List java.lang.Object
StackMap stack: java.lang.Throwable
30: aload 10
monitorexit
31: athrow
32: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BinderCallsStats.mDetailedTracking:Z
ifeq 66
33: aload 1
ldc "Raw data (uid,call_desc,time):"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
34: aload 9
invokedynamic compare()Ljava/util/Comparator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)I
com/android/internal/os/BinderCallsStats.lambda$0(Lcom/android/internal/os/BinderCallsStats$UidEntry;Lcom/android/internal/os/BinderCallsStats$UidEntry;)I (6)
(Lcom/android/internal/os/BinderCallsStats$UidEntry;Lcom/android/internal/os/BinderCallsStats$UidEntry;)I
invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
35: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 10
start local 10 36: aload 9
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 47
StackMap locals: com.android.internal.os.BinderCallsStats java.io.PrintWriter java.util.Map java.util.Map long long int java.util.List java.lang.StringBuilder top java.util.Iterator
StackMap stack:
37: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.android.internal.os.BinderCallsStats$UidEntry
astore 11
start local 11 38: new java.util.ArrayList
dup
aload 11
getfield com.android.internal.os.BinderCallsStats$UidEntry.mCallStats:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 13
start local 13 39: aload 13
invokedynamic compare()Ljava/util/Comparator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)I
com/android/internal/os/BinderCallsStats.lambda$1(Lcom/android/internal/os/BinderCallsStats$CallStat;Lcom/android/internal/os/BinderCallsStats$CallStat;)I (6)
(Lcom/android/internal/os/BinderCallsStats$CallStat;Lcom/android/internal/os/BinderCallsStats$CallStat;)I
invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
40: aload 13
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 15
goto 46
StackMap locals: com.android.internal.os.BinderCallsStats java.io.PrintWriter java.util.Map java.util.Map long long int java.util.List java.lang.StringBuilder com.android.internal.os.BinderCallsStats$UidEntry java.util.Iterator java.util.List top java.util.Iterator
StackMap stack:
41: aload 15
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.android.internal.os.BinderCallsStats$CallStat
astore 14
start local 14 42: aload 10
iconst_0
invokevirtual java.lang.StringBuilder.setLength:(I)V
43: aload 10
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
44: aload 11
getfield com.android.internal.os.BinderCallsStats$UidEntry.uid:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ","
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 14
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
bipush 44
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 14
getfield com.android.internal.os.BinderCallsStats$CallStat.time:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
pop
45: aload 1
aload 10
invokevirtual java.io.PrintWriter.println:(Ljava/lang/Object;)V
end local 14 46: StackMap locals:
StackMap stack:
aload 15
invokeinterface java.util.Iterator.hasNext:()Z
ifne 41
end local 13 end local 11 47: StackMap locals: com.android.internal.os.BinderCallsStats java.io.PrintWriter java.util.Map java.util.Map long long int java.util.List java.lang.StringBuilder top java.util.Iterator
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 37
48: aload 1
invokevirtual java.io.PrintWriter.println:()V
49: aload 1
ldc "Per UID Summary(UID: time, % of total_time, calls_count):"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
50: new java.util.ArrayList
dup
aload 2
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 11
start local 11 51: aload 11
invokedynamic compare()Ljava/util/Comparator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)I
com/android/internal/os/BinderCallsStats.lambda$2(Ljava/util/Map$Entry;Ljava/util/Map$Entry;)I (6)
(Ljava/util/Map$Entry;Ljava/util/Map$Entry;)I
invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
52: aload 11
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 13
goto 59
StackMap locals: com.android.internal.os.BinderCallsStats java.io.PrintWriter java.util.Map java.util.Map long long int java.util.List java.lang.StringBuilder java.util.List top java.util.Iterator
StackMap stack:
53: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 12
start local 12 54: aload 3
aload 12
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Long
astore 14
start local 14 55: aload 1
ldc " %7d: %11d %3.0f%% %8d"
iconst_4
anewarray java.lang.Object
dup
iconst_0
56: aload 12
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
aastore
dup
iconst_1
aload 12
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
aastore
dup
iconst_2
57: ldc 100.0
aload 12
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
l2d
dmul
lload 6
l2d
ddiv
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
dup
iconst_3
aload 14
aastore
58: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
end local 14 end local 12 59: StackMap locals:
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 53
60: aload 1
invokevirtual java.io.PrintWriter.println:()V
61: aload 1
ldc " Summary: total_time=%d, calls_count=%d, avg_call_time=%.0f"
iconst_3
anewarray java.lang.Object
dup
iconst_0
62: lload 6
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_1
lload 4
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
63: lload 6
l2d
lload 4
l2d
ddiv
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
64: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
end local 11 end local 10 65: goto 76
66: StackMap locals: com.android.internal.os.BinderCallsStats java.io.PrintWriter java.util.Map java.util.Map long long int java.util.List
StackMap stack:
aload 1
ldc "Per UID Summary(UID: calls_count, % of total calls_count):"
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
67: new java.util.ArrayList
dup
aload 2
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 10
start local 10 68: aload 10
invokedynamic compare()Ljava/util/Comparator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)I
com/android/internal/os/BinderCallsStats.lambda$3(Ljava/util/Map$Entry;Ljava/util/Map$Entry;)I (6)
(Ljava/util/Map$Entry;Ljava/util/Map$Entry;)I
invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
69: aload 10
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 75
StackMap locals: com.android.internal.os.BinderCallsStats java.io.PrintWriter java.util.Map java.util.Map long long int java.util.List java.util.List top java.util.Iterator
StackMap stack:
70: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 11
start local 11 71: aload 3
aload 11
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Long
astore 13
start local 13 72: aload 1
ldc " %7d: %8d %3.0f%%"
iconst_3
anewarray java.lang.Object
dup
iconst_0
73: aload 11
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
aastore
dup
iconst_1
aload 13
aastore
dup
iconst_2
ldc 100.0
aload 11
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
l2d
dmul
lload 6
l2d
ddiv
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
74: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
end local 13 end local 11 75: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 70
end local 10 76: StackMap locals: com.android.internal.os.BinderCallsStats java.io.PrintWriter java.util.Map java.util.Map long long int java.util.List
StackMap stack:
return
end local 9 end local 8 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 77 0 this Lcom/android/internal/os/BinderCallsStats;
0 77 1 pw Ljava/io/PrintWriter;
1 77 2 uidTimeMap Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Long;>;
2 77 3 uidCallCountMap Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Long;>;
3 77 4 totalCallsCount J
4 77 6 totalCallsTime J
7 77 8 uidEntriesSize I
8 77 9 entries Ljava/util/List<Lcom/android/internal/os/BinderCallsStats$UidEntry;>;
10 28 11 i I
12 26 12 e Lcom/android/internal/os/BinderCallsStats$UidEntry;
15 26 13 totalTimePerUid Ljava/lang/Long;
21 26 14 totalCallsPerUid Ljava/lang/Long;
36 65 10 sb Ljava/lang/StringBuilder;
38 47 11 uidEntry Lcom/android/internal/os/BinderCallsStats$UidEntry;
39 47 13 callStats Ljava/util/List<Lcom/android/internal/os/BinderCallsStats$CallStat;>;
42 46 14 e Lcom/android/internal/os/BinderCallsStats$CallStat;
51 65 11 uidTotals Ljava/util/List<Ljava/util/Map$Entry<Ljava/lang/Integer;Ljava/lang/Long;>;>;
54 59 12 uidTotal Ljava/util/Map$Entry<Ljava/lang/Integer;Ljava/lang/Long;>;
55 59 14 callCount Ljava/lang/Long;
68 76 10 uidTotals Ljava/util/List<Ljava/util/Map$Entry<Ljava/lang/Integer;Ljava/lang/Long;>;>;
71 75 11 uidTotal Ljava/util/Map$Entry<Ljava/lang/Integer;Ljava/lang/Long;>;
72 75 13 callCount Ljava/lang/Long;
Exception table:
from to target type
9 29 30 any
30 31 30 any
MethodParameters:
Name Flags
pw
private long getThreadTimeMicro();
descriptor: ()J
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BinderCallsStats.mDetailedTracking:Z
ifeq 1
invokestatic android.os.SystemClock.currentThreadTimeMicro:()J
goto 2
StackMap locals:
StackMap stack:
1: lconst_0
StackMap locals:
StackMap stack: long
2: lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/android/internal/os/BinderCallsStats;
public static com.android.internal.os.BinderCallsStats getInstance();
descriptor: ()Lcom/android/internal/os/BinderCallsStats;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.android.internal.os.BinderCallsStats.sInstance:Lcom/android/internal/os/BinderCallsStats;
areturn
LocalVariableTable:
Start End Slot Name Signature
public void setDetailedTracking(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield com.android.internal.os.BinderCallsStats.mDetailedTracking:Z
if_icmpeq 3
1: aload 0
invokevirtual com.android.internal.os.BinderCallsStats.reset:()V
2: aload 0
iload 1
putfield com.android.internal.os.BinderCallsStats.mDetailedTracking:Z
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/android/internal/os/BinderCallsStats;
0 4 1 enabled Z
MethodParameters:
Name Flags
enabled
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.android.internal.os.BinderCallsStats.mLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield com.android.internal.os.BinderCallsStats.mUidEntries:Landroid/util/SparseArray;
invokevirtual android.util.SparseArray.clear:()V
2: aload 0
invokestatic java.lang.System.currentTimeMillis:()J
putfield com.android.internal.os.BinderCallsStats.mStartTime:J
3: aload 1
monitorexit
4: goto 7
StackMap locals: com.android.internal.os.BinderCallsStats java.lang.Object
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/android/internal/os/BinderCallsStats;
Exception table:
from to target type
1 4 5 any
5 6 5 any
private static int lambda$0(com.android.internal.os.BinderCallsStats$UidEntry, com.android.internal.os.BinderCallsStats$UidEntry);
descriptor: (Lcom/android/internal/os/BinderCallsStats$UidEntry;Lcom/android/internal/os/BinderCallsStats$UidEntry;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.android.internal.os.BinderCallsStats$UidEntry.time:J
aload 1
getfield com.android.internal.os.BinderCallsStats$UidEntry.time:J
lcmp
ifge 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BinderCallsStats$UidEntry.time:J
aload 1
getfield com.android.internal.os.BinderCallsStats$UidEntry.time:J
lcmp
ifle 4
3: iconst_m1
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 o1 Lcom/android/internal/os/BinderCallsStats$UidEntry;
0 5 1 o2 Lcom/android/internal/os/BinderCallsStats$UidEntry;
private static int lambda$1(com.android.internal.os.BinderCallsStats$CallStat, com.android.internal.os.BinderCallsStats$CallStat);
descriptor: (Lcom/android/internal/os/BinderCallsStats$CallStat;Lcom/android/internal/os/BinderCallsStats$CallStat;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.android.internal.os.BinderCallsStats$CallStat.time:J
aload 1
getfield com.android.internal.os.BinderCallsStats$CallStat.time:J
lcmp
ifge 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.android.internal.os.BinderCallsStats$CallStat.time:J
aload 1
getfield com.android.internal.os.BinderCallsStats$CallStat.time:J
lcmp
ifle 4
3: iconst_m1
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 o1 Lcom/android/internal/os/BinderCallsStats$CallStat;
0 5 1 o2 Lcom/android/internal/os/BinderCallsStats$CallStat;
private static int lambda$2(java.util.Map$Entry, java.util.Map$Entry);
descriptor: (Ljava/util/Map$Entry;Ljava/util/Map$Entry;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.Long
aload 0
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.compareTo:(Ljava/lang/Long;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 o1 Ljava/util/Map$Entry<Ljava/lang/Integer;Ljava/lang/Long;>;
0 1 1 o2 Ljava/util/Map$Entry<Ljava/lang/Integer;Ljava/lang/Long;>;
private static int lambda$3(java.util.Map$Entry, java.util.Map$Entry);
descriptor: (Ljava/util/Map$Entry;Ljava/util/Map$Entry;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.Long
aload 0
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.compareTo:(Ljava/lang/Long;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 o1 Ljava/util/Map$Entry<Ljava/lang/Integer;Ljava/lang/Long;>;
0 1 1 o2 Ljava/util/Map$Entry<Ljava/lang/Integer;Ljava/lang/Long;>;
}
SourceFile: "BinderCallsStats.java"
NestMembers:
com.android.internal.os.BinderCallsStats$CallSession com.android.internal.os.BinderCallsStats$CallStat com.android.internal.os.BinderCallsStats$UidEntry
InnerClasses:
public CallSession = com.android.internal.os.BinderCallsStats$CallSession of com.android.internal.os.BinderCallsStats
private CallStat = com.android.internal.os.BinderCallsStats$CallStat of com.android.internal.os.BinderCallsStats
private UidEntry = com.android.internal.os.BinderCallsStats$UidEntry of com.android.internal.os.BinderCallsStats
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map