public final class android.app.UiAutomation
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.app.UiAutomation
super_class: java.lang.Object
{
private static final java.lang.String LOG_TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean DEBUG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int CONNECTION_ID_UNDEFINED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static final long CONNECT_TIMEOUT_MILLIS;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5000
public static final int ROTATION_UNFREEZE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -2
public static final int ROTATION_FREEZE_CURRENT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -1
public static final int ROTATION_FREEZE_0;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int ROTATION_FREEZE_90;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int ROTATION_FREEZE_180;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public static final int ROTATION_FREEZE_270;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
public static final int FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private final java.lang.Object mLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.ArrayList<android.view.accessibility.AccessibilityEvent> mEventQueue;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Landroid/view/accessibility/AccessibilityEvent;>;
private final android.os.Handler mLocalCallbackHandler;
descriptor: Landroid/os/Handler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final android.app.IUiAutomationConnection mUiAutomationConnection;
descriptor: Landroid/app/IUiAutomationConnection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private android.os.HandlerThread mRemoteCallbackThread;
descriptor: Landroid/os/HandlerThread;
flags: (0x0002) ACC_PRIVATE
private android.accessibilityservice.IAccessibilityServiceClient mClient;
descriptor: Landroid/accessibilityservice/IAccessibilityServiceClient;
flags: (0x0002) ACC_PRIVATE
private int mConnectionId;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private android.app.UiAutomation$OnAccessibilityEventListener mOnAccessibilityEventListener;
descriptor: Landroid/app/UiAutomation$OnAccessibilityEventListener;
flags: (0x0002) ACC_PRIVATE
private boolean mWaitingForEventDelivery;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private long mLastEventTimeMillis;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private boolean mIsConnecting;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean mIsDestroyed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int mFlags;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Landroid/app/UiAutomation;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
putstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(android.os.Looper, android.app.IUiAutomationConnection);
descriptor: (Landroid/os/Looper;Landroid/app/IUiAutomationConnection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield android.app.UiAutomation.mLock:Ljava/lang/Object;
2: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield android.app.UiAutomation.mEventQueue:Ljava/util/ArrayList;
3: aload 0
iconst_m1
putfield android.app.UiAutomation.mConnectionId:I
4: aload 1
ifnonnull 6
5: new java.lang.IllegalArgumentException
dup
ldc "Looper cannot be null!"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: android.app.UiAutomation android.os.Looper android.app.IUiAutomationConnection
StackMap stack:
aload 2
ifnonnull 8
7: new java.lang.IllegalArgumentException
dup
ldc "Connection cannot be null!"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
new android.os.Handler
dup
aload 1
invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
putfield android.app.UiAutomation.mLocalCallbackHandler:Landroid/os/Handler;
9: aload 0
aload 2
putfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/app/UiAutomation;
0 11 1 looper Landroid/os/Looper;
0 11 2 connection Landroid/app/IUiAutomationConnection;
MethodParameters:
Name Flags
looper
connection
public void connect();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual android.app.UiAutomation.connect:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/app/UiAutomation;
public void connect(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfConnectedLocked:()V
2: aload 0
getfield android.app.UiAutomation.mIsConnecting:Z
ifeq 5
3: aload 2
monitorexit
4: return
5: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iconst_1
putfield android.app.UiAutomation.mIsConnecting:Z
6: aload 0
new android.os.HandlerThread
dup
ldc "UiAutomation"
invokespecial android.os.HandlerThread.<init>:(Ljava/lang/String;)V
putfield android.app.UiAutomation.mRemoteCallbackThread:Landroid/os/HandlerThread;
7: aload 0
getfield android.app.UiAutomation.mRemoteCallbackThread:Landroid/os/HandlerThread;
invokevirtual android.os.HandlerThread.start:()V
8: aload 0
new android.app.UiAutomation$IAccessibilityServiceClientImpl
dup
aload 0
aload 0
getfield android.app.UiAutomation.mRemoteCallbackThread:Landroid/os/HandlerThread;
invokevirtual android.os.HandlerThread.getLooper:()Landroid/os/Looper;
invokespecial android.app.UiAutomation$IAccessibilityServiceClientImpl.<init>:(Landroid/app/UiAutomation;Landroid/os/Looper;)V
putfield android.app.UiAutomation.mClient:Landroid/accessibilityservice/IAccessibilityServiceClient;
9: aload 2
monitorexit
10: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 2
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
aload 0
getfield android.app.UiAutomation.mClient:Landroid/accessibilityservice/IAccessibilityServiceClient;
iload 1
invokeinterface android.app.IUiAutomationConnection.connect:(Landroid/accessibilityservice/IAccessibilityServiceClient;I)V
14: aload 0
iload 1
putfield android.app.UiAutomation.mFlags:I
15: goto 18
StackMap locals:
StackMap stack: android.os.RemoteException
16: astore 2
start local 2 17: new java.lang.RuntimeException
dup
ldc "Error while connecting UiAutomation"
aload 2
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 18: StackMap locals:
StackMap stack:
aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
19: invokestatic android.os.SystemClock.uptimeMillis:()J
lstore 3
start local 3 20: StackMap locals: java.lang.Object long
StackMap stack:
aload 0
invokevirtual android.app.UiAutomation.isConnectedLocked:()Z
ifeq 22
21: goto 33
22: StackMap locals:
StackMap stack:
invokestatic android.os.SystemClock.uptimeMillis:()J
lload 3
lsub
lstore 5
start local 5 23: ldc 5000
lload 5
lsub
lstore 7
start local 7 24: lload 7
lconst_0
lcmp
ifgt 26
25: new java.lang.RuntimeException
dup
ldc "Error while connecting UiAutomation"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals: long long
StackMap stack:
aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
lload 7
invokevirtual java.lang.Object.wait:(J)V
27: goto 20
StackMap locals:
StackMap stack: java.lang.InterruptedException
28: pop
end local 7 end local 5 29: goto 20
30: StackMap locals: android.app.UiAutomation int java.lang.Object long
StackMap stack: java.lang.Throwable
astore 9
31: aload 0
iconst_0
putfield android.app.UiAutomation.mIsConnecting:Z
32: aload 9
athrow
33: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield android.app.UiAutomation.mIsConnecting:Z
end local 3 34: aload 2
monitorexit
35: goto 38
StackMap locals: android.app.UiAutomation int java.lang.Object
StackMap stack: java.lang.Throwable
36: aload 2
monitorexit
37: athrow
38: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Landroid/app/UiAutomation;
0 39 1 flags I
17 18 2 re Landroid/os/RemoteException;
20 34 3 startTimeMillis J
23 29 5 elapsedTimeMillis J
24 29 7 remainingTimeMillis J
Exception table:
from to target type
1 4 11 any
5 10 11 any
11 12 11 any
13 15 16 Class android.os.RemoteException
26 27 28 Class java.lang.InterruptedException
20 30 30 any
19 35 36 any
36 37 36 any
MethodParameters:
Name Flags
flags
public int getFlags();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.UiAutomation.mFlags:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/UiAutomation;
public void disconnect();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield android.app.UiAutomation.mIsConnecting:Z
ifeq 5
2: new java.lang.IllegalStateException
dup
3: ldc "Cannot call disconnect() while connecting!"
4: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.lang.Object
StackMap stack:
aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
6: aload 0
iconst_m1
putfield android.app.UiAutomation.mConnectionId:I
7: aload 1
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 1
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
invokeinterface android.app.IUiAutomationConnection.disconnect:()V
12: goto 19
StackMap locals:
StackMap stack: android.os.RemoteException
13: astore 1
start local 1 14: new java.lang.RuntimeException
dup
ldc "Error while disconnecting UiAutomation"
aload 1
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 15: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
16: aload 0
getfield android.app.UiAutomation.mRemoteCallbackThread:Landroid/os/HandlerThread;
invokevirtual android.os.HandlerThread.quit:()Z
pop
17: aload 0
aconst_null
putfield android.app.UiAutomation.mRemoteCallbackThread:Landroid/os/HandlerThread;
18: aload 2
athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield android.app.UiAutomation.mRemoteCallbackThread:Landroid/os/HandlerThread;
invokevirtual android.os.HandlerThread.quit:()Z
pop
20: aload 0
aconst_null
putfield android.app.UiAutomation.mRemoteCallbackThread:Landroid/os/HandlerThread;
21: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Landroid/app/UiAutomation;
14 15 1 re Landroid/os/RemoteException;
Exception table:
from to target type
1 8 9 any
9 10 9 any
11 12 13 Class android.os.RemoteException
11 15 15 any
public int getConnectionId();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: aload 0
getfield android.app.UiAutomation.mConnectionId:I
aload 1
monitorexit
3: ireturn
4: StackMap locals: android.app.UiAutomation java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
5: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/app/UiAutomation;
Exception table:
from to target type
1 3 4 any
4 5 4 any
public boolean isDestroyed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.UiAutomation.mIsDestroyed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/UiAutomation;
public void setOnAccessibilityEventListener(android.app.UiAutomation$OnAccessibilityEventListener);
descriptor: (Landroid/app/UiAutomation$OnAccessibilityEventListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
aload 1
putfield android.app.UiAutomation.mOnAccessibilityEventListener:Landroid/app/UiAutomation$OnAccessibilityEventListener;
2: aload 2
monitorexit
3: goto 6
StackMap locals: android.app.UiAutomation android.app.UiAutomation$OnAccessibilityEventListener java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/app/UiAutomation;
0 7 1 listener Landroid/app/UiAutomation$OnAccessibilityEventListener;
Exception table:
from to target type
1 3 4 any
4 5 4 any
MethodParameters:
Name Flags
listener
public void destroy();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.app.UiAutomation.disconnect:()V
1: aload 0
iconst_1
putfield android.app.UiAutomation.mIsDestroyed:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/app/UiAutomation;
public final boolean performGlobalAction(int);
descriptor: (I)Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: invokestatic android.view.accessibility.AccessibilityInteractionClient.getInstance:()Landroid/view/accessibility/AccessibilityInteractionClient;
pop
3: aload 0
getfield android.app.UiAutomation.mConnectionId:I
invokestatic android.view.accessibility.AccessibilityInteractionClient.getConnection:(I)Landroid/accessibilityservice/IAccessibilityServiceConnection;
4: astore 2
start local 2 5: aload 3
monitorexit
6: goto 9
end local 2 StackMap locals: android.app.UiAutomation int top java.lang.Object
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
start local 2 9: StackMap locals: android.app.UiAutomation int android.accessibilityservice.IAccessibilityServiceConnection
StackMap stack:
aload 2
ifnull 14
10: aload 2
iload 1
invokeinterface android.accessibilityservice.IAccessibilityServiceConnection.performGlobalAction:(I)Z
11: ireturn
12: StackMap locals:
StackMap stack: android.os.RemoteException
astore 3
start local 3 13: getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
ldc "Error while calling performGlobalAction"
aload 3
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 3 14: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Landroid/app/UiAutomation;
0 15 1 action I
5 7 2 connection Landroid/accessibilityservice/IAccessibilityServiceConnection;
9 15 2 connection Landroid/accessibilityservice/IAccessibilityServiceConnection;
13 14 3 re Landroid/os/RemoteException;
Exception table:
from to target type
1 6 7 any
7 8 7 any
10 11 12 Class android.os.RemoteException
MethodParameters:
Name Flags
action
public android.view.accessibility.AccessibilityNodeInfo findFocus(int);
descriptor: (I)Landroid/view/accessibility/AccessibilityNodeInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: invokestatic android.view.accessibility.AccessibilityInteractionClient.getInstance:()Landroid/view/accessibility/AccessibilityInteractionClient;
aload 0
getfield android.app.UiAutomation.mConnectionId:I
1: bipush -2
getstatic android.view.accessibility.AccessibilityNodeInfo.ROOT_NODE_ID:J
iload 1
2: invokevirtual android.view.accessibility.AccessibilityInteractionClient.findFocus:(IIJI)Landroid/view/accessibility/AccessibilityNodeInfo;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/app/UiAutomation;
0 3 1 focus I
MethodParameters:
Name Flags
focus
public final android.accessibilityservice.AccessibilityServiceInfo getServiceInfo();
descriptor: ()Landroid/accessibilityservice/AccessibilityServiceInfo;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: invokestatic android.view.accessibility.AccessibilityInteractionClient.getInstance:()Landroid/view/accessibility/AccessibilityInteractionClient;
pop
3: aload 0
getfield android.app.UiAutomation.mConnectionId:I
invokestatic android.view.accessibility.AccessibilityInteractionClient.getConnection:(I)Landroid/accessibilityservice/IAccessibilityServiceConnection;
4: astore 1
start local 1 5: aload 2
monitorexit
6: goto 9
end local 1 StackMap locals: android.app.UiAutomation top java.lang.Object
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
start local 1 9: StackMap locals: android.app.UiAutomation android.accessibilityservice.IAccessibilityServiceConnection
StackMap stack:
aload 1
ifnull 14
10: aload 1
invokeinterface android.accessibilityservice.IAccessibilityServiceConnection.getServiceInfo:()Landroid/accessibilityservice/AccessibilityServiceInfo;
11: areturn
12: StackMap locals:
StackMap stack: android.os.RemoteException
astore 2
start local 2 13: getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
ldc "Error while getting AccessibilityServiceInfo"
aload 2
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 2 14: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Landroid/app/UiAutomation;
5 7 1 connection Landroid/accessibilityservice/IAccessibilityServiceConnection;
9 15 1 connection Landroid/accessibilityservice/IAccessibilityServiceConnection;
13 14 2 re Landroid/os/RemoteException;
Exception table:
from to target type
1 6 7 any
7 8 7 any
10 11 12 Class android.os.RemoteException
public final void setServiceInfo(android.accessibilityservice.AccessibilityServiceInfo);
descriptor: (Landroid/accessibilityservice/AccessibilityServiceInfo;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: invokestatic android.view.accessibility.AccessibilityInteractionClient.getInstance:()Landroid/view/accessibility/AccessibilityInteractionClient;
invokevirtual android.view.accessibility.AccessibilityInteractionClient.clearCache:()V
3: invokestatic android.view.accessibility.AccessibilityInteractionClient.getInstance:()Landroid/view/accessibility/AccessibilityInteractionClient;
pop
4: aload 0
getfield android.app.UiAutomation.mConnectionId:I
invokestatic android.view.accessibility.AccessibilityInteractionClient.getConnection:(I)Landroid/accessibilityservice/IAccessibilityServiceConnection;
5: astore 2
start local 2 6: aload 3
monitorexit
7: goto 10
end local 2 StackMap locals: android.app.UiAutomation android.accessibilityservice.AccessibilityServiceInfo top java.lang.Object
StackMap stack: java.lang.Throwable
8: aload 3
monitorexit
9: athrow
start local 2 10: StackMap locals: android.app.UiAutomation android.accessibilityservice.AccessibilityServiceInfo android.accessibilityservice.IAccessibilityServiceConnection
StackMap stack:
aload 2
ifnull 15
11: aload 2
aload 1
invokeinterface android.accessibilityservice.IAccessibilityServiceConnection.setServiceInfo:(Landroid/accessibilityservice/AccessibilityServiceInfo;)V
12: goto 15
StackMap locals:
StackMap stack: android.os.RemoteException
13: astore 3
start local 3 14: getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
ldc "Error while setting AccessibilityServiceInfo"
aload 3
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 3 15: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Landroid/app/UiAutomation;
0 16 1 info Landroid/accessibilityservice/AccessibilityServiceInfo;
6 8 2 connection Landroid/accessibilityservice/IAccessibilityServiceConnection;
10 16 2 connection Landroid/accessibilityservice/IAccessibilityServiceConnection;
14 15 3 re Landroid/os/RemoteException;
Exception table:
from to target type
1 7 8 any
8 9 8 any
11 12 13 Class android.os.RemoteException
MethodParameters:
Name Flags
info
public java.util.List<android.view.accessibility.AccessibilityWindowInfo> getWindows();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: aload 0
getfield android.app.UiAutomation.mConnectionId:I
istore 1
start local 1 3: aload 2
monitorexit
4: goto 7
end local 1 StackMap locals: android.app.UiAutomation top java.lang.Object
StackMap stack: java.lang.Throwable
5: aload 2
monitorexit
6: athrow
start local 1 7: StackMap locals: android.app.UiAutomation int
StackMap stack:
invokestatic android.view.accessibility.AccessibilityInteractionClient.getInstance:()Landroid/view/accessibility/AccessibilityInteractionClient;
8: iload 1
invokevirtual android.view.accessibility.AccessibilityInteractionClient.getWindows:(I)Ljava/util/List;
9: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/app/UiAutomation;
3 5 1 connectionId I
7 10 1 connectionId I
Exception table:
from to target type
1 4 5 any
5 6 5 any
Signature: ()Ljava/util/List<Landroid/view/accessibility/AccessibilityWindowInfo;>;
public android.view.accessibility.AccessibilityNodeInfo getRootInActiveWindow();
descriptor: ()Landroid/view/accessibility/AccessibilityNodeInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: aload 0
getfield android.app.UiAutomation.mConnectionId:I
istore 1
start local 1 3: aload 2
monitorexit
4: goto 7
end local 1 StackMap locals: android.app.UiAutomation top java.lang.Object
StackMap stack: java.lang.Throwable
5: aload 2
monitorexit
6: athrow
start local 1 7: StackMap locals: android.app.UiAutomation int
StackMap stack:
invokestatic android.view.accessibility.AccessibilityInteractionClient.getInstance:()Landroid/view/accessibility/AccessibilityInteractionClient;
8: iload 1
invokevirtual android.view.accessibility.AccessibilityInteractionClient.getRootInActiveWindow:(I)Landroid/view/accessibility/AccessibilityNodeInfo;
9: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/app/UiAutomation;
3 5 1 connectionId I
7 10 1 connectionId I
Exception table:
from to target type
1 4 5 any
5 6 5 any
public boolean injectInputEvent(android.view.InputEvent, boolean);
descriptor: (Landroid/view/InputEvent;Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: aload 3
monitorexit
3: goto 6
StackMap locals: android.app.UiAutomation android.view.InputEvent int java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 3
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
aload 1
iload 2
invokeinterface android.app.IUiAutomationConnection.injectInputEvent:(Landroid/view/InputEvent;Z)Z
7: ireturn
8: StackMap locals:
StackMap stack: android.os.RemoteException
astore 3
start local 3 9: getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
ldc "Error while injecting input event!"
aload 3
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 3 10: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/app/UiAutomation;
0 11 1 event Landroid/view/InputEvent;
0 11 2 sync Z
9 10 3 re Landroid/os/RemoteException;
Exception table:
from to target type
1 3 4 any
4 5 4 any
6 7 8 Class android.os.RemoteException
MethodParameters:
Name Flags
event
sync
public boolean setRotation(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: aload 2
monitorexit
3: goto 6
StackMap locals: android.app.UiAutomation int java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
iload 1
tableswitch { // -2 - 3
-2: 7
-1: 7
0: 7
1: 7
2: 7
3: 7
default: 12
}
7: StackMap locals:
StackMap stack:
aload 0
getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
iload 1
invokeinterface android.app.IUiAutomationConnection.setRotation:(I)Z
pop
8: iconst_1
ireturn
9: StackMap locals:
StackMap stack: android.os.RemoteException
astore 2
start local 2 10: getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
ldc "Error while setting rotation!"
aload 2
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 2 11: iconst_0
ireturn
12: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Invalid rotation."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/app/UiAutomation;
0 13 1 rotation I
10 11 2 re Landroid/os/RemoteException;
Exception table:
from to target type
1 3 4 any
4 5 4 any
7 8 9 Class android.os.RemoteException
MethodParameters:
Name Flags
rotation
public android.view.accessibility.AccessibilityEvent executeAndWaitForEvent(java.lang.Runnable, android.app.UiAutomation$AccessibilityEventFilter, long);
descriptor: (Ljava/lang/Runnable;Landroid/app/UiAutomation$AccessibilityEventFilter;J)Landroid/view/accessibility/AccessibilityEvent;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=20, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 5
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: aload 0
getfield android.app.UiAutomation.mEventQueue:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.clear:()V
3: aload 0
iconst_1
putfield android.app.UiAutomation.mWaitingForEventDelivery:Z
4: aload 5
monitorexit
5: goto 8
StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 5
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
invokestatic android.os.SystemClock.uptimeMillis:()J
lstore 5
start local 5 9: aload 1
invokeinterface java.lang.Runnable.run:()V
10: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 7
start local 7 11: invokestatic android.os.SystemClock.uptimeMillis:()J
lstore 8
start local 8 12: StackMap locals: long java.util.List long
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 10
start local 10 13: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 11
monitorenter
14: aload 10
aload 0
getfield android.app.UiAutomation.mEventQueue:Ljava/util/ArrayList;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
15: aload 0
getfield android.app.UiAutomation.mEventQueue:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.clear:()V
16: aload 11
monitorexit
17: goto 41
StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List long java.util.List java.lang.Object
StackMap stack: java.lang.Throwable
18: aload 11
monitorexit
19: athrow
20: StackMap locals:
StackMap stack:
aload 10
iconst_0
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
checkcast android.view.accessibility.AccessibilityEvent
astore 11
start local 11 21: aload 11
invokevirtual android.view.accessibility.AccessibilityEvent.getEventTime:()J
lload 5
lcmp
ifge 23
22: goto 41
23: StackMap locals: android.view.accessibility.AccessibilityEvent
StackMap stack:
aload 2
aload 11
invokeinterface android.app.UiAutomation$AccessibilityEventFilter.accept:(Landroid/view/accessibility/AccessibilityEvent;)Z
ifeq 40
24: aload 11
astore 17
25: aload 7
invokeinterface java.util.List.size:()I
istore 18
start local 18 26: iconst_0
istore 19
start local 19 27: goto 30
28: StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List long java.util.List android.view.accessibility.AccessibilityEvent top top top top top android.view.accessibility.AccessibilityEvent int int
StackMap stack:
aload 7
iload 19
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast android.view.accessibility.AccessibilityEvent
invokevirtual android.view.accessibility.AccessibilityEvent.recycle:()V
29: iinc 19 1
StackMap locals:
StackMap stack:
30: iload 19
iload 18
if_icmplt 28
end local 19 31: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 19
monitorenter
32: aload 0
iconst_0
putfield android.app.UiAutomation.mWaitingForEventDelivery:Z
33: aload 0
getfield android.app.UiAutomation.mEventQueue:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.clear:()V
34: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
35: aload 19
monitorexit
36: goto 39
StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List long java.util.List android.view.accessibility.AccessibilityEvent top top top top top android.view.accessibility.AccessibilityEvent int java.lang.Object
StackMap stack: java.lang.Throwable
37: aload 19
monitorexit
38: athrow
end local 18 39: StackMap locals:
StackMap stack:
aload 17
areturn
40: StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List long java.util.List android.view.accessibility.AccessibilityEvent
StackMap stack:
aload 7
aload 11
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 11 41: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.List.isEmpty:()Z
ifeq 20
42: invokestatic android.os.SystemClock.uptimeMillis:()J
lload 8
lsub
lstore 11
start local 11 43: lload 3
lload 11
lsub
lstore 13
start local 13 44: lload 13
lconst_0
lcmp
ifgt 48
45: new java.util.concurrent.TimeoutException
dup
new java.lang.StringBuilder
dup
ldc "Expected event not received within: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
46: lload 3
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " ms among: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
47: invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
athrow
48: StackMap locals: long long
StackMap stack:
aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 15
monitorenter
49: aload 0
getfield android.app.UiAutomation.mEventQueue:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.isEmpty:()Z
ifeq 53
50: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
lload 13
invokevirtual java.lang.Object.wait:(J)V
51: goto 53
StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List long java.util.List long long java.lang.Object
StackMap stack: java.lang.InterruptedException
52: pop
53: StackMap locals:
StackMap stack:
aload 15
monitorexit
54: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
55: aload 15
monitorexit
56: athrow
end local 13 end local 11 end local 10 end local 8 57: StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List
StackMap stack: java.lang.Throwable
astore 16
58: aload 7
invokeinterface java.util.List.size:()I
istore 18
start local 18 59: iconst_0
istore 19
start local 19 60: goto 63
61: StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List top top top top top top top top java.lang.Throwable top int int
StackMap stack:
aload 7
iload 19
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast android.view.accessibility.AccessibilityEvent
invokevirtual android.view.accessibility.AccessibilityEvent.recycle:()V
62: iinc 19 1
StackMap locals:
StackMap stack:
63: iload 19
iload 18
if_icmplt 61
end local 19 64: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 19
monitorenter
65: aload 0
iconst_0
putfield android.app.UiAutomation.mWaitingForEventDelivery:Z
66: aload 0
getfield android.app.UiAutomation.mEventQueue:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.clear:()V
67: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
68: aload 19
monitorexit
69: goto 72
StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List top top top top top top top top java.lang.Throwable top int java.lang.Object
StackMap stack: java.lang.Throwable
70: aload 19
monitorexit
71: athrow
end local 18 72: StackMap locals: android.app.UiAutomation java.lang.Runnable android.app.UiAutomation$AccessibilityEventFilter long long java.util.List top top top top top top top top java.lang.Throwable
StackMap stack:
aload 16
athrow
end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 73 0 this Landroid/app/UiAutomation;
0 73 1 command Ljava/lang/Runnable;
0 73 2 filter Landroid/app/UiAutomation$AccessibilityEventFilter;
0 73 3 timeoutMillis J
9 73 5 executionStartTimeMillis J
11 73 7 receivedEvents Ljava/util/List<Landroid/view/accessibility/AccessibilityEvent;>;
12 57 8 startTimeMillis J
13 57 10 localEvents Ljava/util/List<Landroid/view/accessibility/AccessibilityEvent;>;
21 41 11 event Landroid/view/accessibility/AccessibilityEvent;
43 57 11 elapsedTimeMillis J
44 57 13 remainingTimeMillis J
26 39 18 size I
59 72 18 size I
27 31 19 i I
60 64 19 i I
Exception table:
from to target type
1 5 6 any
6 7 6 any
14 17 18 any
18 19 18 any
32 36 37 any
37 38 37 any
50 51 52 Class java.lang.InterruptedException
49 54 55 any
55 56 55 any
11 25 57 any
40 57 57 any
65 69 70 any
70 71 70 any
Exceptions:
throws java.util.concurrent.TimeoutException
MethodParameters:
Name Flags
command
filter
timeoutMillis
public void waitForIdle(long, long);
descriptor: (JJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=18, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 5
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: invokestatic android.os.SystemClock.uptimeMillis:()J
lstore 6
start local 6 3: aload 0
getfield android.app.UiAutomation.mLastEventTimeMillis:J
lconst_0
lcmp
ifgt 5
4: aload 0
lload 6
putfield android.app.UiAutomation.mLastEventTimeMillis:J
5: StackMap locals: java.lang.Object long
StackMap stack:
invokestatic android.os.SystemClock.uptimeMillis:()J
lstore 8
start local 8 6: lload 8
lload 6
lsub
lstore 10
start local 10 7: lload 3
lload 10
lsub
8: lstore 12
start local 12 9: lload 12
lconst_0
lcmp
ifgt 14
10: new java.util.concurrent.TimeoutException
dup
new java.lang.StringBuilder
dup
ldc "No idle state with idle timeout: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
11: lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " within global timeout: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: lload 3
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals: long long long
StackMap stack:
lload 8
aload 0
getfield android.app.UiAutomation.mLastEventTimeMillis:J
lsub
lstore 14
start local 14 15: lload 1
lload 14
lsub
lstore 16
start local 16 16: lload 16
lconst_0
lcmp
ifgt 19
17: aload 5
monitorexit
18: return
19: StackMap locals: long long
StackMap stack:
aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
lload 16
invokevirtual java.lang.Object.wait:(J)V
20: goto 5
StackMap locals:
StackMap stack: java.lang.InterruptedException
21: pop
end local 16 end local 14 end local 12 end local 10 end local 8 22: goto 5
end local 6 23: StackMap locals: android.app.UiAutomation long long java.lang.Object
StackMap stack: java.lang.Throwable
aload 5
monitorexit
24: athrow
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Landroid/app/UiAutomation;
0 25 1 idleTimeoutMillis J
0 25 3 globalTimeoutMillis J
3 23 6 startTimeMillis J
6 22 8 currentTimeMillis J
7 22 10 elapsedGlobalTimeMillis J
9 22 12 remainingGlobalTimeMillis J
15 22 14 elapsedIdleTimeMillis J
16 22 16 remainingIdleTimeMillis J
Exception table:
from to target type
19 20 21 Class java.lang.InterruptedException
1 18 23 any
19 24 23 any
Exceptions:
throws java.util.concurrent.TimeoutException
MethodParameters:
Name Flags
idleTimeoutMillis
globalTimeoutMillis
public android.graphics.Bitmap takeScreenshot();
descriptor: ()Landroid/graphics/Bitmap;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=1
start local 0 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: aload 1
monitorexit
3: goto 6
StackMap locals: android.app.UiAutomation java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 1
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
invokestatic android.hardware.display.DisplayManagerGlobal.getInstance:()Landroid/hardware/display/DisplayManagerGlobal;
7: iconst_0
invokevirtual android.hardware.display.DisplayManagerGlobal.getRealDisplay:(I)Landroid/view/Display;
8: astore 1
start local 1 9: new android.graphics.Point
dup
invokespecial android.graphics.Point.<init>:()V
astore 2
start local 2 10: aload 1
aload 2
invokevirtual android.view.Display.getRealSize:(Landroid/graphics/Point;)V
11: aload 1
invokevirtual android.view.Display.getRotation:()I
istore 3
start local 3 12: aconst_null
astore 4
start local 4 13: aload 0
getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
14: new android.graphics.Rect
dup
iconst_0
iconst_0
aload 2
getfield android.graphics.Point.x:I
aload 2
getfield android.graphics.Point.y:I
invokespecial android.graphics.Rect.<init>:(IIII)V
iload 3
15: invokeinterface android.app.IUiAutomationConnection.takeScreenshot:(Landroid/graphics/Rect;I)Landroid/graphics/Bitmap;
astore 4
16: aload 4
ifnonnull 21
17: aconst_null
areturn
18: StackMap locals: android.app.UiAutomation android.view.Display android.graphics.Point int android.graphics.Bitmap
StackMap stack: android.os.RemoteException
astore 5
start local 5 19: getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
ldc "Error while taking screnshot!"
aload 5
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
20: aconst_null
areturn
end local 5 21: StackMap locals:
StackMap stack:
aload 4
iconst_0
invokevirtual android.graphics.Bitmap.setHasAlpha:(Z)V
22: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Landroid/app/UiAutomation;
9 23 1 display Landroid/view/Display;
10 23 2 displaySize Landroid/graphics/Point;
12 23 3 rotation I
13 23 4 screenShot Landroid/graphics/Bitmap;
19 21 5 re Landroid/os/RemoteException;
Exception table:
from to target type
1 3 4 any
4 5 4 any
13 17 18 Class android.os.RemoteException
public void setRunAsMonkey(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: aload 2
monitorexit
3: goto 6
StackMap locals: android.app.UiAutomation int java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
invokestatic android.app.ActivityManager.getService:()Landroid/app/IActivityManager;
iload 1
invokeinterface android.app.IActivityManager.setUserIsMonkey:(Z)V
7: goto 10
StackMap locals:
StackMap stack: android.os.RemoteException
8: astore 2
start local 2 9: getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
ldc "Error while setting run as monkey!"
aload 2
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 2 10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/app/UiAutomation;
0 11 1 enable Z
9 10 2 re Landroid/os/RemoteException;
Exception table:
from to target type
1 3 4 any
4 5 4 any
6 7 8 Class android.os.RemoteException
MethodParameters:
Name Flags
enable
public boolean clearWindowContentFrameStats(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: aload 2
monitorexit
3: goto 6
StackMap locals: android.app.UiAutomation int java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
iload 1
invokeinterface android.app.IUiAutomationConnection.clearWindowContentFrameStats:(I)Z
7: ireturn
8: StackMap locals:
StackMap stack: android.os.RemoteException
astore 2
start local 2 9: getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
ldc "Error clearing window content frame stats!"
aload 2
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 2 10: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/app/UiAutomation;
0 11 1 windowId I
9 10 2 re Landroid/os/RemoteException;
Exception table:
from to target type
1 3 4 any
4 5 4 any
6 7 8 Class android.os.RemoteException
MethodParameters:
Name Flags
windowId
public android.view.WindowContentFrameStats getWindowContentFrameStats(int);
descriptor: (I)Landroid/view/WindowContentFrameStats;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: aload 2
monitorexit
3: goto 6
StackMap locals: android.app.UiAutomation int java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
iload 1
invokeinterface android.app.IUiAutomationConnection.getWindowContentFrameStats:(I)Landroid/view/WindowContentFrameStats;
7: areturn
8: StackMap locals:
StackMap stack: android.os.RemoteException
astore 2
start local 2 9: getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
ldc "Error getting window content frame stats!"
aload 2
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 2 10: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/app/UiAutomation;
0 11 1 windowId I
9 10 2 re Landroid/os/RemoteException;
Exception table:
from to target type
1 3 4 any
4 5 4 any
6 7 8 Class android.os.RemoteException
MethodParameters:
Name Flags
windowId
public void clearWindowAnimationFrameStats();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: aload 1
monitorexit
3: goto 6
StackMap locals: android.app.UiAutomation java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 1
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
invokeinterface android.app.IUiAutomationConnection.clearWindowAnimationFrameStats:()V
7: goto 10
StackMap locals:
StackMap stack: android.os.RemoteException
8: astore 1
start local 1 9: getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
ldc "Error clearing window animation frame stats!"
aload 1
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 1 10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/app/UiAutomation;
9 10 1 re Landroid/os/RemoteException;
Exception table:
from to target type
1 3 4 any
4 5 4 any
6 7 8 Class android.os.RemoteException
public android.view.WindowAnimationFrameStats getWindowAnimationFrameStats();
descriptor: ()Landroid/view/WindowAnimationFrameStats;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: aload 1
monitorexit
3: goto 6
StackMap locals: android.app.UiAutomation java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 1
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
invokeinterface android.app.IUiAutomationConnection.getWindowAnimationFrameStats:()Landroid/view/WindowAnimationFrameStats;
7: areturn
8: StackMap locals:
StackMap stack: android.os.RemoteException
astore 1
start local 1 9: getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
ldc "Error getting window animation frame stats!"
aload 1
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 1 10: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/app/UiAutomation;
9 10 1 re Landroid/os/RemoteException;
Exception table:
from to target type
1 3 4 any
4 5 4 any
6 7 8 Class android.os.RemoteException
public void grantRuntimePermission(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic android.os.Process.myUserHandle:()Landroid/os/UserHandle;
invokevirtual android.app.UiAutomation.grantRuntimePermissionAsUser:(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/app/UiAutomation;
0 2 1 packageName Ljava/lang/String;
0 2 2 permission Ljava/lang/String;
MethodParameters:
Name Flags
packageName
permission
public boolean grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
descriptor: (Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokevirtual android.app.UiAutomation.grantRuntimePermissionAsUser:(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)V
1: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/app/UiAutomation;
0 2 1 packageName Ljava/lang/String;
0 2 2 permission Ljava/lang/String;
0 2 3 userHandle Landroid/os/UserHandle;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
packageName
permission
userHandle
public void grantRuntimePermissionAsUser(java.lang.String, java.lang.String, android.os.UserHandle);
descriptor: (Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 4
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: aload 4
monitorexit
3: goto 6
StackMap locals: android.app.UiAutomation java.lang.String java.lang.String android.os.UserHandle java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 4
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
aload 1
7: aload 2
aload 3
invokevirtual android.os.UserHandle.getIdentifier:()I
8: invokeinterface android.app.IUiAutomationConnection.grantRuntimePermission:(Ljava/lang/String;Ljava/lang/String;I)V
9: goto 12
StackMap locals:
StackMap stack: java.lang.Exception
10: astore 4
start local 4 11: new java.lang.SecurityException
dup
ldc "Error granting runtime permission"
aload 4
invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/app/UiAutomation;
0 13 1 packageName Ljava/lang/String;
0 13 2 permission Ljava/lang/String;
0 13 3 userHandle Landroid/os/UserHandle;
11 12 4 e Ljava/lang/Exception;
Exception table:
from to target type
1 3 4 any
4 5 4 any
6 9 10 Class java.lang.Exception
MethodParameters:
Name Flags
packageName
permission
userHandle
public void revokeRuntimePermission(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic android.os.Process.myUserHandle:()Landroid/os/UserHandle;
invokevirtual android.app.UiAutomation.revokeRuntimePermissionAsUser:(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/app/UiAutomation;
0 2 1 packageName Ljava/lang/String;
0 2 2 permission Ljava/lang/String;
MethodParameters:
Name Flags
packageName
permission
public boolean revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle);
descriptor: (Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokevirtual android.app.UiAutomation.revokeRuntimePermissionAsUser:(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)V
1: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/app/UiAutomation;
0 2 1 packageName Ljava/lang/String;
0 2 2 permission Ljava/lang/String;
0 2 3 userHandle Landroid/os/UserHandle;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
packageName
permission
userHandle
public void revokeRuntimePermissionAsUser(java.lang.String, java.lang.String, android.os.UserHandle);
descriptor: (Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield android.app.UiAutomation.mLock:Ljava/lang/Object;
dup
astore 4
monitorenter
1: aload 0
invokevirtual android.app.UiAutomation.throwIfNotConnectedLocked:()V
2: aload 4
monitorexit
3: goto 6
StackMap locals: android.app.UiAutomation java.lang.String java.lang.String android.os.UserHandle java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 4
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield android.app.UiAutomation.mUiAutomationConnection:Landroid/app/IUiAutomationConnection;
aload 1
7: aload 2
aload 3
invokevirtual android.os.UserHandle.getIdentifier:()I
8: invokeinterface android.app.IUiAutomationConnection.revokeRuntimePermission:(Ljava/lang/String;Ljava/lang/String;I)V
9: goto 12
StackMap locals:
StackMap stack: java.lang.Exception
10: astore 4
start local 4 11: new java.lang.SecurityException
dup
ldc "Error granting runtime permission"
aload 4
invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/app/UiAutomation;
0 13 1 packageName Ljava/lang/String;
0 13 2 permission Ljava/lang/String;
0 13 3 userHandle Landroid/os/UserHandle;
11 12 4 e Ljava/lang/Exception;
Exception table:
from to target type
1 3 4 any
4 5 4 any
6 9 10 Class java.lang.Exception
MethodParameters:
Name Flags
packageName
permission
userHandle
public android.os.ParcelFileDescriptor executeShellCommand(java.lang.String);
descriptor: (Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tIoUtils cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/UiAutomation;
MethodParameters:
Name Flags
command
public android.os.ParcelFileDescriptor[] executeShellCommandRw(java.lang.String);
descriptor: (Ljava/lang/String;)[Landroid/os/ParcelFileDescriptor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tIoUtils cannot be resolved\n\tIoUtils cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/app/UiAutomation;
MethodParameters:
Name Flags
command
private static float getDegreesForRotation(int);
descriptor: (I)F
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
tableswitch { // 1 - 3
1: 1
2: 2
3: 3
default: 4
}
1: StackMap locals:
StackMap stack:
ldc 270.0
freturn
2: StackMap locals:
StackMap stack:
ldc 180.0
freturn
3: StackMap locals:
StackMap stack:
ldc 90.0
freturn
4: StackMap locals:
StackMap stack:
fconst_0
freturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 value I
MethodParameters:
Name Flags
value
private boolean isConnectedLocked();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.UiAutomation.mConnectionId:I
iconst_m1
if_icmpeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/app/UiAutomation;
private void throwIfConnectedLocked();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield android.app.UiAutomation.mConnectionId:I
iconst_m1
if_icmpeq 2
1: new java.lang.IllegalStateException
dup
ldc "UiAutomation not connected!"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/app/UiAutomation;
private void throwIfNotConnectedLocked();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.app.UiAutomation.isConnectedLocked:()Z
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "UiAutomation not connected!"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/app/UiAutomation;
private void warnIfBetterCommand(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "pm grant "
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 3
1: getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
ldc "UiAutomation.grantRuntimePermission() is more robust and should be used instead of 'pm grant'"
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
2: goto 5
StackMap locals:
StackMap stack:
3: aload 1
ldc "pm revoke "
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 5
4: getstatic android.app.UiAutomation.LOG_TAG:Ljava/lang/String;
ldc "UiAutomation.revokeRuntimePermission() is more robust and should be used instead of 'pm revoke'"
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/app/UiAutomation;
0 6 1 cmd Ljava/lang/String;
MethodParameters:
Name Flags
cmd
}
SourceFile: "UiAutomation.java"
NestMembers:
android.app.UiAutomation$AccessibilityEventFilter android.app.UiAutomation$IAccessibilityServiceClientImpl android.app.UiAutomation$IAccessibilityServiceClientImpl$1 android.app.UiAutomation$OnAccessibilityEventListener
InnerClasses:
public abstract AccessibilityEventFilter = android.app.UiAutomation$AccessibilityEventFilter of android.app.UiAutomation
private IAccessibilityServiceClientImpl = android.app.UiAutomation$IAccessibilityServiceClientImpl of android.app.UiAutomation
public abstract OnAccessibilityEventListener = android.app.UiAutomation$OnAccessibilityEventListener of android.app.UiAutomation