public class com.android.internal.os.KernelCpuSpeedReader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.android.internal.os.KernelCpuSpeedReader
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "KernelCpuSpeedReader"

  private final java.lang.String mProcFile;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mNumSpeedSteps;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long[] mLastSpeedTimesMs;
    descriptor: [J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long[] mDeltaSpeedTimesMs;
    descriptor: [J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long mJiffyMillis;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.android.internal.os.KernelCpuSpeedReader this
         0: .line 18
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe import android.system cannot be resolved\n\tThe import android.system cannot be resolved\n\tOs cannot be resolved\n\tOsConstants cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.android.internal.os.KernelCpuSpeedReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/internal/os/KernelCpuSpeedReader;
    MethodParameters:
               Name  Flags
      cpuNumber      
      numSpeedSteps  

  public long[] readDelta();
    descriptor: ()[J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=1
        start local 0 // com.android.internal.os.KernelCpuSpeedReader this
         0: .line 67
            invokestatic android.os.StrictMode.allowThreadDiskReads:()Landroid/os/StrictMode$ThreadPolicy;
            astore 1 /* policy */
        start local 1 // android.os.StrictMode$ThreadPolicy policy
         1: .line 68
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: new java.io.BufferedReader
            dup
            new java.io.FileReader
            dup
            aload 0 /* this */
            getfield com.android.internal.os.KernelCpuSpeedReader.mProcFile:Ljava/lang/String;
            invokespecial java.io.FileReader.<init>:(Ljava/lang/String;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 4 /* reader */
        start local 4 // java.io.BufferedReader reader
         3: .line 69
            new android.text.TextUtils$SimpleStringSplitter
            dup
            bipush 32
            invokespecial android.text.TextUtils$SimpleStringSplitter.<init>:(C)V
            astore 5 /* splitter */
        start local 5 // android.text.TextUtils$SimpleStringSplitter splitter
         4: .line 71
            iconst_0
            istore 7 /* speedIndex */
        start local 7 // int speedIndex
         5: .line 72
            goto 15
        start local 6 // java.lang.String line
         6: .line 73
      StackMap locals: com.android.internal.os.KernelCpuSpeedReader android.os.StrictMode$ThreadPolicy java.lang.Throwable java.lang.Throwable java.io.BufferedReader android.text.TextUtils$SimpleStringSplitter java.lang.String int
      StackMap stack:
            aload 5 /* splitter */
            aload 6 /* line */
            invokevirtual android.text.TextUtils$SimpleStringSplitter.setString:(Ljava/lang/String;)V
         7: .line 74
            aload 5 /* splitter */
            invokevirtual android.text.TextUtils$SimpleStringSplitter.next:()Ljava/lang/String;
            pop
         8: .line 76
            aload 5 /* splitter */
            invokevirtual android.text.TextUtils$SimpleStringSplitter.next:()Ljava/lang/String;
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            aload 0 /* this */
            getfield com.android.internal.os.KernelCpuSpeedReader.mJiffyMillis:J
            lmul
            lstore 8 /* time */
        start local 8 // long time
         9: .line 77
            lload 8 /* time */
            aload 0 /* this */
            getfield com.android.internal.os.KernelCpuSpeedReader.mLastSpeedTimesMs:[J
            iload 7 /* speedIndex */
            laload
            lcmp
            ifge 12
        10: .line 80
            aload 0 /* this */
            getfield com.android.internal.os.KernelCpuSpeedReader.mDeltaSpeedTimesMs:[J
            iload 7 /* speedIndex */
            lload 8 /* time */
            lastore
        11: .line 81
            goto 13
        12: .line 82
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.os.KernelCpuSpeedReader.mDeltaSpeedTimesMs:[J
            iload 7 /* speedIndex */
            lload 8 /* time */
            aload 0 /* this */
            getfield com.android.internal.os.KernelCpuSpeedReader.mLastSpeedTimesMs:[J
            iload 7 /* speedIndex */
            laload
            lsub
            lastore
        13: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.os.KernelCpuSpeedReader.mLastSpeedTimesMs:[J
            iload 7 /* speedIndex */
            lload 8 /* time */
            lastore
        14: .line 85
            iinc 7 /* speedIndex */ 1
        end local 8 // long time
        end local 6 // java.lang.String line
        15: .line 72
      StackMap locals: com.android.internal.os.KernelCpuSpeedReader android.os.StrictMode$ThreadPolicy java.lang.Throwable java.lang.Throwable java.io.BufferedReader android.text.TextUtils$SimpleStringSplitter top int
      StackMap stack:
            iload 7 /* speedIndex */
            aload 0 /* this */
            getfield com.android.internal.os.KernelCpuSpeedReader.mLastSpeedTimesMs:[J
            arraylength
            if_icmpge 17
            aload 4 /* reader */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 6 /* line */
        start local 6 // java.lang.String line
        16: ifnonnull 6
        end local 7 // int speedIndex
        end local 6 // java.lang.String line
        end local 5 // android.text.TextUtils$SimpleStringSplitter splitter
        17: .line 87
      StackMap locals: com.android.internal.os.KernelCpuSpeedReader android.os.StrictMode$ThreadPolicy java.lang.Throwable java.lang.Throwable java.io.BufferedReader
      StackMap stack:
            aload 4 /* reader */
            ifnull 30
            aload 4 /* reader */
            invokevirtual java.io.BufferedReader.close:()V
            goto 30
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 2
            aload 4 /* reader */
            ifnull 19
            aload 4 /* reader */
            invokevirtual java.io.BufferedReader.close:()V
        end local 4 // java.io.BufferedReader reader
      StackMap locals:
      StackMap stack:
        19: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 3
            aload 2
            ifnonnull 21
            aload 3
            astore 2
            goto 22
      StackMap locals:
      StackMap stack:
        21: aload 2
            aload 3
            if_acmpeq 22
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        22: aload 2
            athrow
      StackMap locals: com.android.internal.os.KernelCpuSpeedReader android.os.StrictMode$ThreadPolicy
      StackMap stack: java.io.IOException
        23: astore 2 /* e */
        start local 2 // java.io.IOException e
        24: .line 88
            ldc "KernelCpuSpeedReader"
            new java.lang.StringBuilder
            dup
            ldc "Failed to read cpu-freq: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        25: .line 89
            aload 0 /* this */
            getfield com.android.internal.os.KernelCpuSpeedReader.mDeltaSpeedTimesMs:[J
            lconst_0
            invokestatic java.util.Arrays.fill:([JJ)V
        end local 2 // java.io.IOException e
        26: .line 91
            aload 1 /* policy */
            invokestatic android.os.StrictMode.setThreadPolicy:(Landroid/os/StrictMode$ThreadPolicy;)V
            goto 31
        27: .line 90
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        28: .line 91
            aload 1 /* policy */
            invokestatic android.os.StrictMode.setThreadPolicy:(Landroid/os/StrictMode$ThreadPolicy;)V
        29: .line 92
            aload 10
            athrow
        30: .line 91
      StackMap locals:
      StackMap stack:
            aload 1 /* policy */
            invokestatic android.os.StrictMode.setThreadPolicy:(Landroid/os/StrictMode$ThreadPolicy;)V
        31: .line 93
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.os.KernelCpuSpeedReader.mDeltaSpeedTimesMs:[J
            areturn
        end local 1 // android.os.StrictMode$ThreadPolicy policy
        end local 0 // com.android.internal.os.KernelCpuSpeedReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   32     0        this  Lcom/android/internal/os/KernelCpuSpeedReader;
            1   32     1      policy  Landroid/os/StrictMode$ThreadPolicy;
            3   19     4      reader  Ljava/io/BufferedReader;
            4   17     5    splitter  Landroid/text/TextUtils$SimpleStringSplitter;
            6   15     6        line  Ljava/lang/String;
           16   17     6        line  Ljava/lang/String;
            5   17     7  speedIndex  I
            9   15     8        time  J
           24   26     2           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3    17      18  any
           2    20      20  any
           1    23      23  Class java.io.IOException
           1    26      27  any

  public long[] readAbsolute();
    descriptor: ()[J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=1
        start local 0 // com.android.internal.os.KernelCpuSpeedReader this
         0: .line 101
            invokestatic android.os.StrictMode.allowThreadDiskReads:()Landroid/os/StrictMode$ThreadPolicy;
            astore 1 /* policy */
        start local 1 // android.os.StrictMode$ThreadPolicy policy
         1: .line 102
            aload 0 /* this */
            getfield com.android.internal.os.KernelCpuSpeedReader.mNumSpeedSteps:I
            newarray 11
            astore 2 /* speedTimeMs */
        start local 2 // long[] speedTimeMs
         2: .line 103
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: new java.io.BufferedReader
            dup
            new java.io.FileReader
            dup
            aload 0 /* this */
            getfield com.android.internal.os.KernelCpuSpeedReader.mProcFile:Ljava/lang/String;
            invokespecial java.io.FileReader.<init>:(Ljava/lang/String;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 5 /* reader */
        start local 5 // java.io.BufferedReader reader
         4: .line 104
            new android.text.TextUtils$SimpleStringSplitter
            dup
            bipush 32
            invokespecial android.text.TextUtils$SimpleStringSplitter.<init>:(C)V
            astore 6 /* splitter */
        start local 6 // android.text.TextUtils$SimpleStringSplitter splitter
         5: .line 106
            iconst_0
            istore 8 /* speedIndex */
        start local 8 // int speedIndex
         6: .line 107
            goto 12
        start local 7 // java.lang.String line
         7: .line 108
      StackMap locals: com.android.internal.os.KernelCpuSpeedReader android.os.StrictMode$ThreadPolicy long[] java.lang.Throwable java.lang.Throwable java.io.BufferedReader android.text.TextUtils$SimpleStringSplitter java.lang.String int
      StackMap stack:
            aload 6 /* splitter */
            aload 7 /* line */
            invokevirtual android.text.TextUtils$SimpleStringSplitter.setString:(Ljava/lang/String;)V
         8: .line 109
            aload 6 /* splitter */
            invokevirtual android.text.TextUtils$SimpleStringSplitter.next:()Ljava/lang/String;
            pop
         9: .line 110
            aload 6 /* splitter */
            invokevirtual android.text.TextUtils$SimpleStringSplitter.next:()Ljava/lang/String;
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            aload 0 /* this */
            getfield com.android.internal.os.KernelCpuSpeedReader.mJiffyMillis:J
            lmul
            lstore 9 /* time */
        start local 9 // long time
        10: .line 111
            aload 2 /* speedTimeMs */
            iload 8 /* speedIndex */
            lload 9 /* time */
            lastore
        11: .line 112
            iinc 8 /* speedIndex */ 1
        end local 9 // long time
        end local 7 // java.lang.String line
        12: .line 107
      StackMap locals: com.android.internal.os.KernelCpuSpeedReader android.os.StrictMode$ThreadPolicy long[] java.lang.Throwable java.lang.Throwable java.io.BufferedReader android.text.TextUtils$SimpleStringSplitter top int
      StackMap stack:
            iload 8 /* speedIndex */
            aload 0 /* this */
            getfield com.android.internal.os.KernelCpuSpeedReader.mNumSpeedSteps:I
            if_icmpge 14
            aload 5 /* reader */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 7 /* line */
        start local 7 // java.lang.String line
        13: ifnonnull 7
        end local 8 // int speedIndex
        end local 7 // java.lang.String line
        end local 6 // android.text.TextUtils$SimpleStringSplitter splitter
        14: .line 114
      StackMap locals: com.android.internal.os.KernelCpuSpeedReader android.os.StrictMode$ThreadPolicy long[] java.lang.Throwable java.lang.Throwable java.io.BufferedReader
      StackMap stack:
            aload 5 /* reader */
            ifnull 27
            aload 5 /* reader */
            invokevirtual java.io.BufferedReader.close:()V
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 3
            aload 5 /* reader */
            ifnull 16
            aload 5 /* reader */
            invokevirtual java.io.BufferedReader.close:()V
        end local 5 // java.io.BufferedReader reader
      StackMap locals:
      StackMap stack:
        16: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 4
            aload 3
            ifnonnull 18
            aload 4
            astore 3
            goto 19
      StackMap locals:
      StackMap stack:
        18: aload 3
            aload 4
            if_acmpeq 19
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        19: aload 3
            athrow
      StackMap locals: com.android.internal.os.KernelCpuSpeedReader android.os.StrictMode$ThreadPolicy long[]
      StackMap stack: java.io.IOException
        20: astore 3 /* e */
        start local 3 // java.io.IOException e
        21: .line 115
            ldc "KernelCpuSpeedReader"
            new java.lang.StringBuilder
            dup
            ldc "Failed to read cpu-freq: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        22: .line 116
            aload 2 /* speedTimeMs */
            lconst_0
            invokestatic java.util.Arrays.fill:([JJ)V
        end local 3 // java.io.IOException e
        23: .line 118
            aload 1 /* policy */
            invokestatic android.os.StrictMode.setThreadPolicy:(Landroid/os/StrictMode$ThreadPolicy;)V
            goto 28
        24: .line 117
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        25: .line 118
            aload 1 /* policy */
            invokestatic android.os.StrictMode.setThreadPolicy:(Landroid/os/StrictMode$ThreadPolicy;)V
        26: .line 119
            aload 11
            athrow
        27: .line 118
      StackMap locals:
      StackMap stack:
            aload 1 /* policy */
            invokestatic android.os.StrictMode.setThreadPolicy:(Landroid/os/StrictMode$ThreadPolicy;)V
        28: .line 120
      StackMap locals:
      StackMap stack:
            aload 2 /* speedTimeMs */
            areturn
        end local 2 // long[] speedTimeMs
        end local 1 // android.os.StrictMode$ThreadPolicy policy
        end local 0 // com.android.internal.os.KernelCpuSpeedReader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   29     0         this  Lcom/android/internal/os/KernelCpuSpeedReader;
            1   29     1       policy  Landroid/os/StrictMode$ThreadPolicy;
            2   29     2  speedTimeMs  [J
            4   16     5       reader  Ljava/io/BufferedReader;
            5   14     6     splitter  Landroid/text/TextUtils$SimpleStringSplitter;
            7   12     7         line  Ljava/lang/String;
           13   14     7         line  Ljava/lang/String;
            6   14     8   speedIndex  I
           10   12     9         time  J
           21   23     3            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4    14      15  any
           3    17      17  any
           2    20      20  Class java.io.IOException
           2    23      24  any
}
SourceFile: "KernelCpuSpeedReader.java"
InnerClasses:
  public final ThreadPolicy = android.os.StrictMode$ThreadPolicy of android.os.StrictMode
  public SimpleStringSplitter = android.text.TextUtils$SimpleStringSplitter of android.text.TextUtils