Android UiAutomator UiDevice API
UiDevice为单例模式
1.获取设备
static UiDevice |
getInstance()
This method is deprecated. Should use |
static UiDevice |
getInstance(Instrumentation instrumentation)
Retrieves a singleton instance of UiDevice |
2.按键与keycode
boolean |
pressBack()
Simulates a short press on the BACK button. |
boolean |
pressDPadCenter()
Simulates a short press on the CENTER button. |
boolean |
pressDPadDown()
Simulates a short press on the DOWN button. |
boolean |
pressDPadLeft()
Simulates a short press on the LEFT button. |
boolean |
pressDPadRight()
Simulates a short press on the RIGHT button. |
boolean |
pressDPadUp()
Simulates a short press on the UP button. |
boolean |
pressDelete()
Simulates a short press on the DELETE key. |
boolean |
pressEnter()
Simulates a short press on the ENTER key. |
boolean |
pressHome()
Simulates a short press on the HOME button. |
boolean |
pressKeyCode(int keyCode)
Simulates a short press using a key code. |
boolean |
pressKeyCode(int keyCode, int metaState)
Simulates a short press using a key code. |
boolean |
pressMenu()
Simulates a short press on the MENU button. |
boolean |
pressRecentApps()
Simulates a short press on the Recent Apps button. |
boolean |
pressSearch()
Simulates a short press on the SEARCH button. |
注意:
例子:
UiDevice.getInstance(Instrumentation instrumentation).pressKeyCode(keyEvent.KEYCODE_A);//输入a
UiDevice.getInstance(Instrumentation instrumentation).pressKeyCode(keyEvent.KEYCODE_A,1);//输入A
Android KEYCODE键值对应大全 : http://blog.csdn.net/u012839224/article/details/37764193
3.获取坐标与坐标点击
boolean |
click(int x, int y)
Perform a click at arbitrary coordinates specified by the user |
|
getDisplayHeight()
Gets the height of the display, in pixels. |
int |
getDisplayWidth()
Gets the width of the display, in pixels. |
另可通过UiObject来获取该对象的坐标
Rect z = UiObject.getBounds();
int x0 = z.left;
int y0 = z.top;
int x1 = z.right;
int y1 = z.bottom;
4.拖拽与滑动
boolean |
drag(int startX, int startY, int endX, int endY, int steps)
Performs a swipe from one coordinate to another coordinate. |
boolean |
swipe(int startX, int startY, int endX, int endY, int steps)
Performs a swipe from one coordinate to another using the number of steps to determine smoothness and speed. |
boolean |
swipe(Point[] segments, int segmentSteps)
Performs a swipe between points in the Point array. |
Steps 越大,拖拽/滑动速度越慢
steps |
int : is the number of move steps sent to the system |
Each step execution is throttled to 5ms per step. So for a 100 steps, the swipe will take about 1/2 second to complete.
5.旋转屏幕
void |
setOrientationLeft()
Simulates orienting the device to the left and also freezes rotation by disabling the sensors. |
void |
setOrientationNatural()
Simulates orienting the device into its natural orientation and also freezes rotation by disabling the sensors. |
void |
setOrientationRight()
Simulates orienting the device to the right and also freezes rotation by disabling the sensors. |
void |
freezeRotation()
Disables the sensors and freezes the device rotation at its current rotation state. |
void |
unfreezeRotation()
Re-enables the sensors and un-freezes the device rotation allowing its contents to rotate with the device physical rotation. |
boolean |
isNaturalOrientation()
Check if the device is in its natural orientation. |
int |
getDisplayRotation()
Returns the current rotation of the display, as defined in |
int |
ROTATION_0
Rotation constant: 0 degree rotation (natural orientation) |
int |
ROTATION_180
Rotation constant: 180 degree rotation. |
int |
ROTATION_270
Rotation constant: 270 degree rotation. |
int |
ROTATION_90
Rotation constant: 90 degree rotation. |
6.灭屏与唤醒屏幕
void |
wakeUp()
This method simulates pressing the power button if the screen is OFF else it does nothing if the screen is already ON. |
void |
sleep()
This method simply presses the power button if the screen is ON else it does nothing if the screen is already OFF. |
boolean |
isScreenOn()
Checks the power manager if the screen is ON. |
模拟点击电源键,手机灭屏与亮屏
7.截图
boolean |
takeScreenshot(File storePath, float scale, int quality)
Take a screenshot of current window and store it as PNG The screenshot is adjusted per screen rotation |
boolean |
takeScreenshot(File storePath)
Take a screenshot of current window and store it as PNG Default scale of 1.0f (original size) and 90% quality is used The screenshot is adjusted per screen rotation |
storePath: 存储路径,文件后缀必须为.png
scale: 1.0f 为原图大小
quality: 质量压缩,取值范围为0-100
8.等待空闲
void |
waitForIdle(long timeout)
Waits for the current application to idle. |
void |
waitForIdle()
Waits for the current application to idle. //默认10s |
boolean |
waitForWindowUpdate(String packageName, long timeout)
Waits for a window content update event to occur. |
9.包名
获取当前界面包名
String |
getCurrentPackageName()
Retrieves the name of the last package to report accessibility events. |
获取当前页面的布局文件,保存到/data/local/tmp/下
void |
dumpWindowHierarchy(File dest)
Dump the current window hierarchy to a |
void |
dumpWindowHierarchy(OutputStream out)
Dump the current window hierarchy to an |
打开通知栏,打开快速设置
boolean |
openNotification()
Opens the notification shade. |
boolean |
openQuickSettings()
Opens the Quick Settings shade. |