public class android.os.SystemService
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.os.SystemService
  super_class: java.lang.Object
{
  private static java.util.HashMap<java.lang.String, android.os.SystemService$State> sStates;
    descriptor: Ljava/util/HashMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/HashMap<Ljava/lang/String;Landroid/os/SystemService$State;>;

  private static java.lang.Object sPropertyLock;
    descriptor: Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 31
            invokestatic com.google.android.collect.Maps.newHashMap:()Ljava/util/HashMap;
            putstatic android.os.SystemService.sStates:Ljava/util/HashMap;
         1: .line 47
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic android.os.SystemService.sPropertyLock:Ljava/lang/Object;
         2: .line 50
            new android.os.SystemService$1
            dup
            invokespecial android.os.SystemService$1.<init>:()V
            invokestatic android.os.SystemProperties.addChangeCallback:(Ljava/lang/Runnable;)V
         3: .line 58
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  public static void start(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 62
            ldc "ctl.start"
            aload 0 /* name */
            invokestatic android.os.SystemProperties.set:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 63
            return
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public static void stop(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 67
            ldc "ctl.stop"
            aload 0 /* name */
            invokestatic android.os.SystemProperties.set:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 68
            return
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public static void restart(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 72
            ldc "ctl.restart"
            aload 0 /* name */
            invokestatic android.os.SystemProperties.set:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 73
            return
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public static android.os.SystemService$State getState(java.lang.String);
    descriptor: (Ljava/lang/String;)Landroid/os/SystemService$State;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.String service
         0: .line 79
            new java.lang.StringBuilder
            dup
            ldc "init.svc."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* service */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.os.SystemProperties.get:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* rawState */
        start local 1 // java.lang.String rawState
         1: .line 80
            getstatic android.os.SystemService.sStates:Ljava/util/HashMap;
            aload 1 /* rawState */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.os.SystemService$State
            astore 2 /* state */
        start local 2 // android.os.SystemService$State state
         2: .line 81
            aload 2 /* state */
            ifnull 4
         3: .line 82
            aload 2 /* state */
            areturn
         4: .line 84
      StackMap locals: java.lang.String android.os.SystemService$State
      StackMap stack:
            getstatic android.os.SystemService$State.STOPPED:Landroid/os/SystemService$State;
            areturn
        end local 2 // android.os.SystemService$State state
        end local 1 // java.lang.String rawState
        end local 0 // java.lang.String service
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0   service  Ljava/lang/String;
            1    5     1  rawState  Ljava/lang/String;
            2    5     2     state  Landroid/os/SystemService$State;
    MethodParameters:
         Name  Flags
      service  

  public static boolean isStopped(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String service
         0: .line 92
            getstatic android.os.SystemService$State.STOPPED:Landroid/os/SystemService$State;
            aload 0 /* service */
            invokestatic android.os.SystemService.getState:(Ljava/lang/String;)Landroid/os/SystemService$State;
            invokevirtual android.os.SystemService$State.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.lang.String service
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  service  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      service  

  public static boolean isRunning(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String service
         0: .line 99
            getstatic android.os.SystemService$State.RUNNING:Landroid/os/SystemService$State;
            aload 0 /* service */
            invokestatic android.os.SystemService.getState:(Ljava/lang/String;)Landroid/os/SystemService$State;
            invokevirtual android.os.SystemService$State.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.lang.String service
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  service  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      service  

  public static void waitForState(java.lang.String, android.os.SystemService$State, long);
    descriptor: (Ljava/lang/String;Landroid/os/SystemService$State;J)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // java.lang.String service
        start local 1 // android.os.SystemService$State state
        start local 2 // long timeoutMillis
         0: .line 107
            invokestatic android.os.SystemClock.elapsedRealtime:()J
            lload 2 /* timeoutMillis */
            ladd
            lstore 4 /* endMillis */
        start local 4 // long endMillis
         1: .line 109
      StackMap locals: long
      StackMap stack:
            getstatic android.os.SystemService.sPropertyLock:Ljava/lang/Object;
            dup
            astore 6
            monitorenter
         2: .line 110
            aload 0 /* service */
            invokestatic android.os.SystemService.getState:(Ljava/lang/String;)Landroid/os/SystemService$State;
            astore 7 /* currentState */
        start local 7 // android.os.SystemService$State currentState
         3: .line 111
            aload 1 /* state */
            aload 7 /* currentState */
            invokevirtual android.os.SystemService$State.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 112
            aload 6
            monitorexit
         5: return
         6: .line 115
      StackMap locals: java.lang.Object android.os.SystemService$State
      StackMap stack:
            invokestatic android.os.SystemClock.elapsedRealtime:()J
            lload 4 /* endMillis */
            lcmp
            iflt 10
         7: .line 116
            new java.util.concurrent.TimeoutException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Service "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* service */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " currently "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* currentState */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         8: .line 117
            ldc "; waited "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 2 /* timeoutMillis */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "ms for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* state */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 116
            invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 121
      StackMap locals:
      StackMap stack:
            getstatic android.os.SystemService.sPropertyLock:Ljava/lang/Object;
            lload 2 /* timeoutMillis */
            invokevirtual java.lang.Object.wait:(J)V
        11: .line 122
            goto 13
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        12: pop
        end local 7 // android.os.SystemService$State currentState
        13: .line 109
      StackMap locals:
      StackMap stack:
            aload 6
            monitorexit
        14: goto 1
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 6
            monitorexit
        16: athrow
        end local 4 // long endMillis
        end local 2 // long timeoutMillis
        end local 1 // android.os.SystemService$State state
        end local 0 // java.lang.String service
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0        service  Ljava/lang/String;
            0   17     1          state  Landroid/os/SystemService$State;
            0   17     2  timeoutMillis  J
            1   17     4      endMillis  J
            3   13     7   currentState  Landroid/os/SystemService$State;
      Exception table:
        from    to  target  type
          10    11      12  Class java.lang.InterruptedException
           2     5      15  any
           6    14      15  any
          15    16      15  any
    Exceptions:
      throws java.util.concurrent.TimeoutException
    MethodParameters:
               Name  Flags
      service        
      state          
      timeoutMillis  

  public static void waitForAnyStopped(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // java.lang.String[] services
         0: .line 133
      StackMap locals:
      StackMap stack:
            getstatic android.os.SystemService.sPropertyLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 134
            aload 0 /* services */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 7
      StackMap locals: java.lang.String[] java.lang.Object top int int java.lang.String[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* service */
        start local 2 // java.lang.String service
         3: .line 135
            getstatic android.os.SystemService$State.STOPPED:Landroid/os/SystemService$State;
            aload 2 /* service */
            invokestatic android.os.SystemService.getState:(Ljava/lang/String;)Landroid/os/SystemService$State;
            invokevirtual android.os.SystemService$State.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 136
            aload 1
            monitorexit
         5: return
        end local 2 // java.lang.String service
         6: .line 134
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         7: iload 3
            iload 4
            if_icmplt 2
         8: .line 141
            getstatic android.os.SystemService.sPropertyLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.wait:()V
         9: .line 142
            goto 11
      StackMap locals: java.lang.String[] java.lang.Object
      StackMap stack: java.lang.InterruptedException
        10: pop
        11: .line 133
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        12: goto 0
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 1
            monitorexit
        14: athrow
        end local 0 // java.lang.String[] services
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0  services  [Ljava/lang/String;
            3    6     2   service  Ljava/lang/String;
      Exception table:
        from    to  target  type
           8     9      10  Class java.lang.InterruptedException
           1     5      13  any
           6    12      13  any
          13    14      13  any
    MethodParameters:
          Name  Flags
      services  
}
SourceFile: "SystemService.java"
NestMembers:
  android.os.SystemService$1  android.os.SystemService$State
InnerClasses:
  android.os.SystemService$1
  public final State = android.os.SystemService$State of android.os.SystemService