• Android UiAutomator UiDevice API


    UiDevice为单例模式

    1.获取设备

    static UiDevice getInstance()

    This method is deprecated. Should use getInstance(Instrumentation) instead. This version hides UiDevice's dependency on having an Instrumentation reference and is prone to misuse.

    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

    int

    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 Surface

    Surface

    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 File.

    void dumpWindowHierarchy(OutputStream out)

    Dump the current window hierarchy to an OutputStream.


    打开通知栏,打开快速设置

    boolean openNotification()

    Opens the notification shade.

    boolean openQuickSettings()

    Opens the Quick Settings shade.

     

  • 相关阅读:
    vs2010下载
    .Net执行cmd命令
    本Blog链接交换
    DNN 04.09.01 StartKit中的新内容。
    如何使一个你没有源代码的DLL文件变为强命名的(Strong Name)
    "Error Creating Control" when creating a custom control
    GridView导出为Excel后,导出的.xls文件无法作为源文件导入的问题
    DotNetNuke的C#版本
    DotNetNuke 5.0 放到CodePlex上提供下载了
    在VS中使用独立的项目(Project)开发DNN模块
  • 原文地址:https://www.cnblogs.com/biang/p/6347688.html
Copyright © 2020-2023  润新知