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.youkuaiyun.com/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. |