public class android.os.PerformanceCollector
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.os.PerformanceCollector
  super_class: java.lang.Object
{
  public static final java.lang.String METRIC_KEY_ITERATIONS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "iterations"

  public static final java.lang.String METRIC_KEY_LABEL;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "label"

  public static final java.lang.String METRIC_KEY_CPU_TIME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "cpu_time"

  public static final java.lang.String METRIC_KEY_EXECUTION_TIME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "execution_time"

  public static final java.lang.String METRIC_KEY_PRE_RECEIVED_TRANSACTIONS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "pre_received_transactions"

  public static final java.lang.String METRIC_KEY_PRE_SENT_TRANSACTIONS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "pre_sent_transactions"

  public static final java.lang.String METRIC_KEY_RECEIVED_TRANSACTIONS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "received_transactions"

  public static final java.lang.String METRIC_KEY_SENT_TRANSACTIONS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "sent_transactions"

  public static final java.lang.String METRIC_KEY_GC_INVOCATION_COUNT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "gc_invocation_count"

  public static final java.lang.String METRIC_KEY_JAVA_ALLOCATED;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java_allocated"

  public static final java.lang.String METRIC_KEY_JAVA_FREE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java_free"

  public static final java.lang.String METRIC_KEY_JAVA_PRIVATE_DIRTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java_private_dirty"

  public static final java.lang.String METRIC_KEY_JAVA_PSS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java_pss"

  public static final java.lang.String METRIC_KEY_JAVA_SHARED_DIRTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java_shared_dirty"

  public static final java.lang.String METRIC_KEY_JAVA_SIZE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "java_size"

  public static final java.lang.String METRIC_KEY_NATIVE_ALLOCATED;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "native_allocated"

  public static final java.lang.String METRIC_KEY_NATIVE_FREE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "native_free"

  public static final java.lang.String METRIC_KEY_NATIVE_PRIVATE_DIRTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "native_private_dirty"

  public static final java.lang.String METRIC_KEY_NATIVE_PSS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "native_pss"

  public static final java.lang.String METRIC_KEY_NATIVE_SHARED_DIRTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "native_shared_dirty"

  public static final java.lang.String METRIC_KEY_NATIVE_SIZE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "native_size"

  public static final java.lang.String METRIC_KEY_GLOBAL_ALLOC_COUNT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "global_alloc_count"

  public static final java.lang.String METRIC_KEY_GLOBAL_ALLOC_SIZE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "global_alloc_size"

  public static final java.lang.String METRIC_KEY_GLOBAL_FREED_COUNT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "global_freed_count"

  public static final java.lang.String METRIC_KEY_GLOBAL_FREED_SIZE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "global_freed_size"

  public static final java.lang.String METRIC_KEY_OTHER_PRIVATE_DIRTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "other_private_dirty"

  public static final java.lang.String METRIC_KEY_OTHER_PSS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "other_pss"

  public static final java.lang.String METRIC_KEY_OTHER_SHARED_DIRTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "other_shared_dirty"

  private android.os.PerformanceCollector$PerformanceResultsWriter mPerfWriter;
    descriptor: Landroid/os/PerformanceCollector$PerformanceResultsWriter;
    flags: (0x0002) ACC_PRIVATE

  private android.os.Bundle mPerfSnapshot;
    descriptor: Landroid/os/Bundle;
    flags: (0x0002) ACC_PRIVATE

  private android.os.Bundle mPerfMeasurement;
    descriptor: Landroid/os/Bundle;
    flags: (0x0002) ACC_PRIVATE

  private long mSnapshotCpuTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long mSnapshotExecTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long mCpuTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long mExecTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.os.PerformanceCollector this
         0: .line 288
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 289
            return
        end local 0 // android.os.PerformanceCollector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/os/PerformanceCollector;

  public void <init>(android.os.PerformanceCollector$PerformanceResultsWriter);
    descriptor: (Landroid/os/PerformanceCollector$PerformanceResultsWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.os.PerformanceCollector this
        start local 1 // android.os.PerformanceCollector$PerformanceResultsWriter writer
         0: .line 291
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 292
            aload 0 /* this */
            aload 1 /* writer */
            invokevirtual android.os.PerformanceCollector.setPerformanceResultsWriter:(Landroid/os/PerformanceCollector$PerformanceResultsWriter;)V
         2: .line 293
            return
        end local 1 // android.os.PerformanceCollector$PerformanceResultsWriter writer
        end local 0 // android.os.PerformanceCollector this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/os/PerformanceCollector;
            0    3     1  writer  Landroid/os/PerformanceCollector$PerformanceResultsWriter;
    MethodParameters:
        Name  Flags
      writer  

  public void setPerformanceResultsWriter(android.os.PerformanceCollector$PerformanceResultsWriter);
    descriptor: (Landroid/os/PerformanceCollector$PerformanceResultsWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.os.PerformanceCollector this
        start local 1 // android.os.PerformanceCollector$PerformanceResultsWriter writer
         0: .line 296
            aload 0 /* this */
            aload 1 /* writer */
            putfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
         1: .line 297
            return
        end local 1 // android.os.PerformanceCollector$PerformanceResultsWriter writer
        end local 0 // android.os.PerformanceCollector this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/os/PerformanceCollector;
            0    2     1  writer  Landroid/os/PerformanceCollector$PerformanceResultsWriter;
    MethodParameters:
        Name  Flags
      writer  

  public void beginSnapshot(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.os.PerformanceCollector this
        start local 1 // java.lang.String label
         0: .line 306
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
            ifnull 2
         1: .line 307
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
            aload 1 /* label */
            invokeinterface android.os.PerformanceCollector$PerformanceResultsWriter.writeBeginSnapshot:(Ljava/lang/String;)V
         2: .line 308
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.os.PerformanceCollector.startPerformanceSnapshot:()V
         3: .line 309
            return
        end local 1 // java.lang.String label
        end local 0 // android.os.PerformanceCollector this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Landroid/os/PerformanceCollector;
            0    4     1  label  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      label  

  public android.os.Bundle endSnapshot();
    descriptor: ()Landroid/os/Bundle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.os.PerformanceCollector this
         0: .line 350
            aload 0 /* this */
            invokevirtual android.os.PerformanceCollector.endPerformanceSnapshot:()V
         1: .line 351
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
            ifnull 3
         2: .line 352
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            invokeinterface android.os.PerformanceCollector$PerformanceResultsWriter.writeEndSnapshot:(Landroid/os/Bundle;)V
         3: .line 353
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            areturn
        end local 0 // android.os.PerformanceCollector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/os/PerformanceCollector;

  public void startTiming(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.os.PerformanceCollector this
        start local 1 // java.lang.String label
         0: .line 363
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
            ifnull 2
         1: .line 364
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
            aload 1 /* label */
            invokeinterface android.os.PerformanceCollector$PerformanceResultsWriter.writeStartTiming:(Ljava/lang/String;)V
         2: .line 365
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new android.os.Bundle
            dup
            invokespecial android.os.Bundle.<init>:()V
            putfield android.os.PerformanceCollector.mPerfMeasurement:Landroid/os/Bundle;
         3: .line 366
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfMeasurement:Landroid/os/Bundle;
         4: .line 367
            ldc "iterations"
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
         5: .line 366
            invokevirtual android.os.Bundle.putParcelableArrayList:(Ljava/lang/String;Ljava/util/ArrayList;)V
         6: .line 368
            aload 0 /* this */
            invokestatic android.os.SystemClock.uptimeMillis:()J
            putfield android.os.PerformanceCollector.mExecTime:J
         7: .line 369
            aload 0 /* this */
            invokestatic android.os.Process.getElapsedCpuTime:()J
            putfield android.os.PerformanceCollector.mCpuTime:J
         8: .line 370
            return
        end local 1 // java.lang.String label
        end local 0 // android.os.PerformanceCollector this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Landroid/os/PerformanceCollector;
            0    9     1  label  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      label  

  public android.os.Bundle addIteration(java.lang.String);
    descriptor: (Ljava/lang/String;)Landroid/os/Bundle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // android.os.PerformanceCollector this
        start local 1 // java.lang.String label
         0: .line 388
            aload 0 /* this */
            invokestatic android.os.Process.getElapsedCpuTime:()J
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mCpuTime:J
            lsub
            putfield android.os.PerformanceCollector.mCpuTime:J
         1: .line 389
            aload 0 /* this */
            invokestatic android.os.SystemClock.uptimeMillis:()J
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mExecTime:J
            lsub
            putfield android.os.PerformanceCollector.mExecTime:J
         2: .line 391
            new android.os.Bundle
            dup
            invokespecial android.os.Bundle.<init>:()V
            astore 2 /* iteration */
        start local 2 // android.os.Bundle iteration
         3: .line 392
            aload 2 /* iteration */
            ldc "label"
            aload 1 /* label */
            invokevirtual android.os.Bundle.putString:(Ljava/lang/String;Ljava/lang/String;)V
         4: .line 393
            aload 2 /* iteration */
            ldc "execution_time"
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mExecTime:J
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
         5: .line 394
            aload 2 /* iteration */
            ldc "cpu_time"
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mCpuTime:J
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
         6: .line 395
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfMeasurement:Landroid/os/Bundle;
            ldc "iterations"
            invokevirtual android.os.Bundle.getParcelableArrayList:(Ljava/lang/String;)Ljava/util/ArrayList;
            aload 2 /* iteration */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         7: .line 397
            aload 0 /* this */
            invokestatic android.os.SystemClock.uptimeMillis:()J
            putfield android.os.PerformanceCollector.mExecTime:J
         8: .line 398
            aload 0 /* this */
            invokestatic android.os.Process.getElapsedCpuTime:()J
            putfield android.os.PerformanceCollector.mCpuTime:J
         9: .line 399
            aload 2 /* iteration */
            areturn
        end local 2 // android.os.Bundle iteration
        end local 1 // java.lang.String label
        end local 0 // android.os.PerformanceCollector this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Landroid/os/PerformanceCollector;
            0   10     1      label  Ljava/lang/String;
            3   10     2  iteration  Landroid/os/Bundle;
    MethodParameters:
       Name  Flags
      label  

  public android.os.Bundle stopTiming(java.lang.String);
    descriptor: (Ljava/lang/String;)Landroid/os/Bundle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.os.PerformanceCollector this
        start local 1 // java.lang.String label
         0: .line 412
            aload 0 /* this */
            aload 1 /* label */
            invokevirtual android.os.PerformanceCollector.addIteration:(Ljava/lang/String;)Landroid/os/Bundle;
            pop
         1: .line 413
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
            ifnull 3
         2: .line 414
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfMeasurement:Landroid/os/Bundle;
            invokeinterface android.os.PerformanceCollector$PerformanceResultsWriter.writeStopTiming:(Landroid/os/Bundle;)V
         3: .line 415
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfMeasurement:Landroid/os/Bundle;
            areturn
        end local 1 // java.lang.String label
        end local 0 // android.os.PerformanceCollector this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Landroid/os/PerformanceCollector;
            0    4     1  label  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      label  

  public void addMeasurement(java.lang.String, long);
    descriptor: (Ljava/lang/String;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // android.os.PerformanceCollector this
        start local 1 // java.lang.String label
        start local 2 // long value
         0: .line 425
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
            ifnull 2
         1: .line 426
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
            aload 1 /* label */
            lload 2 /* value */
            invokeinterface android.os.PerformanceCollector$PerformanceResultsWriter.writeMeasurement:(Ljava/lang/String;J)V
         2: .line 427
      StackMap locals:
      StackMap stack:
            return
        end local 2 // long value
        end local 1 // java.lang.String label
        end local 0 // android.os.PerformanceCollector this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Landroid/os/PerformanceCollector;
            0    3     1  label  Ljava/lang/String;
            0    3     2  value  J
    MethodParameters:
       Name  Flags
      label  
      value  

  public void addMeasurement(java.lang.String, float);
    descriptor: (Ljava/lang/String;F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.os.PerformanceCollector this
        start local 1 // java.lang.String label
        start local 2 // float value
         0: .line 436
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
            ifnull 2
         1: .line 437
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
            aload 1 /* label */
            fload 2 /* value */
            invokeinterface android.os.PerformanceCollector$PerformanceResultsWriter.writeMeasurement:(Ljava/lang/String;F)V
         2: .line 438
      StackMap locals:
      StackMap stack:
            return
        end local 2 // float value
        end local 1 // java.lang.String label
        end local 0 // android.os.PerformanceCollector this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Landroid/os/PerformanceCollector;
            0    3     1  label  Ljava/lang/String;
            0    3     2  value  F
    MethodParameters:
       Name  Flags
      label  
      value  

  public void addMeasurement(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.os.PerformanceCollector this
        start local 1 // java.lang.String label
        start local 2 // java.lang.String value
         0: .line 447
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
            ifnull 2
         1: .line 448
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfWriter:Landroid/os/PerformanceCollector$PerformanceResultsWriter;
            aload 1 /* label */
            aload 2 /* value */
            invokeinterface android.os.PerformanceCollector$PerformanceResultsWriter.writeMeasurement:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 449
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String value
        end local 1 // java.lang.String label
        end local 0 // android.os.PerformanceCollector this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Landroid/os/PerformanceCollector;
            0    3     1  label  Ljava/lang/String;
            0    3     2  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      label  
      value  

  private void startPerformanceSnapshot();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // android.os.PerformanceCollector this
         0: .line 456
            aload 0 /* this */
            new android.os.Bundle
            dup
            invokespecial android.os.Bundle.<init>:()V
            putfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
         1: .line 459
            invokestatic android.os.PerformanceCollector.getBinderCounts:()Landroid/os/Bundle;
            astore 1 /* binderCounts */
        start local 1 // android.os.Bundle binderCounts
         2: .line 460
            aload 1 /* binderCounts */
            invokevirtual android.os.Bundle.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: android.os.PerformanceCollector android.os.Bundle top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* key */
        start local 2 // java.lang.String key
         4: .line 461
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            new java.lang.StringBuilder
            dup
            ldc "pre_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* binderCounts */
            aload 2 /* key */
            invokevirtual android.os.Bundle.getLong:(Ljava/lang/String;)J
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        end local 2 // java.lang.String key
         5: .line 460
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 467
            invokestatic android.os.PerformanceCollector.startAllocCounting:()V
         7: .line 472
            aload 0 /* this */
            invokestatic android.os.SystemClock.uptimeMillis:()J
            putfield android.os.PerformanceCollector.mSnapshotExecTime:J
         8: .line 473
            aload 0 /* this */
            invokestatic android.os.Process.getElapsedCpuTime:()J
            putfield android.os.PerformanceCollector.mSnapshotCpuTime:J
         9: .line 474
            return
        end local 1 // android.os.Bundle binderCounts
        end local 0 // android.os.PerformanceCollector this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Landroid/os/PerformanceCollector;
            2   10     1  binderCounts  Landroid/os/Bundle;
            4    5     2           key  Ljava/lang/String;

  private void endPerformanceSnapshot();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=19, args_size=1
        start local 0 // android.os.PerformanceCollector this
         0: .line 483
            aload 0 /* this */
            invokestatic android.os.Process.getElapsedCpuTime:()J
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mSnapshotCpuTime:J
            lsub
            putfield android.os.PerformanceCollector.mSnapshotCpuTime:J
         1: .line 484
            aload 0 /* this */
            invokestatic android.os.SystemClock.uptimeMillis:()J
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mSnapshotExecTime:J
            lsub
            putfield android.os.PerformanceCollector.mSnapshotExecTime:J
         2: .line 486
            invokestatic android.os.PerformanceCollector.stopAllocCounting:()V
         3: .line 488
            invokestatic android.os.Debug.getNativeHeapSize:()J
            ldc 1024
            ldiv
            lstore 1 /* nativeMax */
        start local 1 // long nativeMax
         4: .line 489
            invokestatic android.os.Debug.getNativeHeapAllocatedSize:()J
            ldc 1024
            ldiv
            lstore 3 /* nativeAllocated */
        start local 3 // long nativeAllocated
         5: .line 490
            invokestatic android.os.Debug.getNativeHeapFreeSize:()J
            ldc 1024
            ldiv
            lstore 5 /* nativeFree */
        start local 5 // long nativeFree
         6: .line 492
            new android.os.Debug$MemoryInfo
            dup
            invokespecial android.os.Debug$MemoryInfo.<init>:()V
            astore 7 /* memInfo */
        start local 7 // android.os.Debug$MemoryInfo memInfo
         7: .line 493
            aload 7 /* memInfo */
            invokestatic android.os.Debug.getMemoryInfo:(Landroid/os/Debug$MemoryInfo;)V
         8: .line 495
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            astore 8 /* runtime */
        start local 8 // java.lang.Runtime runtime
         9: .line 497
            aload 8 /* runtime */
            invokevirtual java.lang.Runtime.totalMemory:()J
            ldc 1024
            ldiv
            lstore 9 /* dalvikMax */
        start local 9 // long dalvikMax
        10: .line 498
            aload 8 /* runtime */
            invokevirtual java.lang.Runtime.freeMemory:()J
            ldc 1024
            ldiv
            lstore 11 /* dalvikFree */
        start local 11 // long dalvikFree
        11: .line 499
            lload 9 /* dalvikMax */
            lload 11 /* dalvikFree */
            lsub
            lstore 13 /* dalvikAllocated */
        start local 13 // long dalvikAllocated
        12: .line 502
            invokestatic android.os.PerformanceCollector.getBinderCounts:()Landroid/os/Bundle;
            astore 15 /* binderCounts */
        start local 15 // android.os.Bundle binderCounts
        13: .line 503
            aload 15 /* binderCounts */
            invokevirtual android.os.Bundle.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 17
            goto 16
      StackMap locals: android.os.PerformanceCollector long long long android.os.Debug$MemoryInfo java.lang.Runtime long long long android.os.Bundle top java.util.Iterator
      StackMap stack:
        14: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 16 /* key */
        start local 16 // java.lang.String key
        15: .line 504
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            aload 16 /* key */
            aload 15 /* binderCounts */
            aload 16 /* key */
            invokevirtual android.os.Bundle.getLong:(Ljava/lang/String;)J
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        end local 16 // java.lang.String key
        16: .line 503
      StackMap locals:
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        17: .line 508
            invokestatic android.os.PerformanceCollector.getAllocCounts:()Landroid/os/Bundle;
            astore 16 /* allocCounts */
        start local 16 // android.os.Bundle allocCounts
        18: .line 509
            aload 16 /* allocCounts */
            invokevirtual android.os.Bundle.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 18
            goto 21
      StackMap locals: android.os.PerformanceCollector long long long android.os.Debug$MemoryInfo java.lang.Runtime long long long android.os.Bundle android.os.Bundle top java.util.Iterator
      StackMap stack:
        19: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 17 /* key */
        start local 17 // java.lang.String key
        20: .line 510
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            aload 17 /* key */
            aload 16 /* allocCounts */
            aload 17 /* key */
            invokevirtual android.os.Bundle.getLong:(Ljava/lang/String;)J
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        end local 17 // java.lang.String key
        21: .line 509
      StackMap locals:
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        22: .line 513
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "execution_time"
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mSnapshotExecTime:J
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        23: .line 514
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "cpu_time"
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mSnapshotCpuTime:J
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        24: .line 516
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "native_size"
            lload 1 /* nativeMax */
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        25: .line 517
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "native_allocated"
            lload 3 /* nativeAllocated */
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        26: .line 518
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "native_free"
            lload 5 /* nativeFree */
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        27: .line 519
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "native_pss"
            aload 7 /* memInfo */
            getfield android.os.Debug$MemoryInfo.nativePss:I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        28: .line 520
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "native_private_dirty"
            aload 7 /* memInfo */
            getfield android.os.Debug$MemoryInfo.nativePrivateDirty:I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        29: .line 521
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "native_shared_dirty"
            aload 7 /* memInfo */
            getfield android.os.Debug$MemoryInfo.nativeSharedDirty:I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        30: .line 523
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "java_size"
            lload 9 /* dalvikMax */
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        31: .line 524
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "java_allocated"
            lload 13 /* dalvikAllocated */
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        32: .line 525
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "java_free"
            lload 11 /* dalvikFree */
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        33: .line 526
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "java_pss"
            aload 7 /* memInfo */
            getfield android.os.Debug$MemoryInfo.dalvikPss:I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        34: .line 527
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "java_private_dirty"
            aload 7 /* memInfo */
            getfield android.os.Debug$MemoryInfo.dalvikPrivateDirty:I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        35: .line 528
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "java_shared_dirty"
            aload 7 /* memInfo */
            getfield android.os.Debug$MemoryInfo.dalvikSharedDirty:I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        36: .line 530
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "other_pss"
            aload 7 /* memInfo */
            getfield android.os.Debug$MemoryInfo.otherPss:I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        37: .line 531
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "other_private_dirty"
            aload 7 /* memInfo */
            getfield android.os.Debug$MemoryInfo.otherPrivateDirty:I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        38: .line 532
            aload 0 /* this */
            getfield android.os.PerformanceCollector.mPerfSnapshot:Landroid/os/Bundle;
            ldc "other_shared_dirty"
            aload 7 /* memInfo */
            getfield android.os.Debug$MemoryInfo.otherSharedDirty:I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
        39: .line 533
            return
        end local 16 // android.os.Bundle allocCounts
        end local 15 // android.os.Bundle binderCounts
        end local 13 // long dalvikAllocated
        end local 11 // long dalvikFree
        end local 9 // long dalvikMax
        end local 8 // java.lang.Runtime runtime
        end local 7 // android.os.Debug$MemoryInfo memInfo
        end local 5 // long nativeFree
        end local 3 // long nativeAllocated
        end local 1 // long nativeMax
        end local 0 // android.os.PerformanceCollector this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   40     0             this  Landroid/os/PerformanceCollector;
            4   40     1        nativeMax  J
            5   40     3  nativeAllocated  J
            6   40     5       nativeFree  J
            7   40     7          memInfo  Landroid/os/Debug$MemoryInfo;
            9   40     8          runtime  Ljava/lang/Runtime;
           10   40     9        dalvikMax  J
           11   40    11       dalvikFree  J
           12   40    13  dalvikAllocated  J
           13   40    15     binderCounts  Landroid/os/Bundle;
           15   16    16              key  Ljava/lang/String;
           18   40    16      allocCounts  Landroid/os/Bundle;
           20   21    17              key  Ljava/lang/String;

  private static void startAllocCounting();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 543
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.gc:()V
         1: .line 544
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.runFinalization:()V
         2: .line 545
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.gc:()V
         3: .line 547
            invokestatic android.os.Debug.resetAllCounts:()V
         4: .line 550
            invokestatic android.os.Debug.startAllocCounting:()V
         5: .line 551
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void stopAllocCounting();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 557
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.gc:()V
         1: .line 558
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.runFinalization:()V
         2: .line 559
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.gc:()V
         3: .line 560
            invokestatic android.os.Debug.stopAllocCounting:()V
         4: .line 561
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static android.os.Bundle getAllocCounts();
    descriptor: ()Landroid/os/Bundle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 567
            new android.os.Bundle
            dup
            invokespecial android.os.Bundle.<init>:()V
            astore 0 /* results */
        start local 0 // android.os.Bundle results
         1: .line 568
            aload 0 /* results */
            ldc "global_alloc_count"
            invokestatic android.os.Debug.getGlobalAllocCount:()I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
         2: .line 569
            aload 0 /* results */
            ldc "global_alloc_size"
            invokestatic android.os.Debug.getGlobalAllocSize:()I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
         3: .line 570
            aload 0 /* results */
            ldc "global_freed_count"
            invokestatic android.os.Debug.getGlobalFreedCount:()I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
         4: .line 571
            aload 0 /* results */
            ldc "global_freed_size"
            invokestatic android.os.Debug.getGlobalFreedSize:()I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
         5: .line 572
            aload 0 /* results */
            ldc "gc_invocation_count"
            invokestatic android.os.Debug.getGlobalGcInvocationCount:()I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
         6: .line 573
            aload 0 /* results */
            areturn
        end local 0 // android.os.Bundle results
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1    7     0  results  Landroid/os/Bundle;

  private static android.os.Bundle getBinderCounts();
    descriptor: ()Landroid/os/Bundle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 582
            new android.os.Bundle
            dup
            invokespecial android.os.Bundle.<init>:()V
            astore 0 /* results */
        start local 0 // android.os.Bundle results
         1: .line 583
            aload 0 /* results */
            ldc "sent_transactions"
            invokestatic android.os.Debug.getBinderSentTransactions:()I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
         2: .line 584
            aload 0 /* results */
            ldc "received_transactions"
            invokestatic android.os.Debug.getBinderReceivedTransactions:()I
            i2l
            invokevirtual android.os.Bundle.putLong:(Ljava/lang/String;J)V
         3: .line 585
            aload 0 /* results */
            areturn
        end local 0 // android.os.Bundle results
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1    4     0  results  Landroid/os/Bundle;
}
SourceFile: "PerformanceCollector.java"
NestMembers:
  android.os.PerformanceCollector$PerformanceResultsWriter
InnerClasses:
  public MemoryInfo = android.os.Debug$MemoryInfo of android.os.Debug
  public abstract PerformanceResultsWriter = android.os.PerformanceCollector$PerformanceResultsWriter of android.os.PerformanceCollector