03Android UiAutomator UiDevice API 详细介绍
2015-09-29 17:06
627 查看
UiDevice类介绍
1 、UiDevice代表设备状态2 、UiDevice为单例模式
3 、UiDevice 功能
1)获取设备信息:屏幕分辨率,旋转状态,亮灭屏状态等
2)操作:按键,坐标操作,滑动,拖拽,灭屏唤醒屏幕,截图等
3)监听器功能
按键与KeyCode使用
1、手机常见按键1)HOME
2)MENU(菜单键)
3)BACK (返回)
4)VOLUME_UP(音量加)
5)VOLUME_DOWN(音量减)
6)RecentApps (最近使用APP)
7)POWER (电源键)
8)Dpad (上下左右键)
9)...
2、按键API说明
返回值 | 方法名 | 描述 |
---|---|---|
boolean | pressBack() | 模拟短按返回back键 |
boolean | pressDPadCenter() | 模拟按轨迹球中点按键 |
boolean | pressDPadDown() | 模拟轨迹球向下按键 |
boolean | pressDPadLeft() | 模拟轨迹球向左按键 |
boolean | pressDPadRight() | 模拟轨迹球向右按键 |
boolean | pressDPadUp() | 模拟轨迹球向上按键 |
boolean | pressDelete() | 模拟短按删除delete按键 |
boolean | pressEnter() | 模拟短按回车键 |
boolean | pressHome() | 模拟短按HOME键 |
boolean | pressKeyCode(int keyCode, int metaState) | 模拟短按键盘代码keycode |
boolean | pressKeyCode(int keyCode) | 模拟短按键盘代码keycode |
boolean | pressMenu() | 模拟短按menu键 |
boolean | pressRecentApps() | 模拟短按最近使用程序 |
boolean | pressSearch() | 模拟短按搜索键 |
1)KeyEvent 按键事件
2)META Key
辅助功能键: ALT、SHIFT、CAPS_LOCK
列 | 激活状态 | metaState |
---|---|---|
base | META_key未被激活 | 0 |
caps | SHIFT或CAPS_LOCK被激活时 | 1 |
fn | ALT被激活 | 2 |
caps_fn | ALT,SHIFT或CAPS_LOCK同时被激活时 | 3 |
获取坐标与坐标点击
1 、坐标相关知识1)手机屏幕坐标:从左上角开始到右下角
2)DP:设备独立像素,例如,320像素显示到640像素上要拉升一倍
3)Point:代表一个点(x,y)
2 、坐标相关API
返回值 方法名 描述boolean click(int x, int y) 使用坐标点击屏幕
int getDisplayHeight() 获取屏幕高度
Point getDisplaySizeDp() 获取显示尺寸返回显示大小(设备独立像素),屏幕旋转返回的显示大小调整
int getDisplayWidth() 获得屏幕宽度
拖拽与滑动
1 、拖拽与滑动相关知识1 )拖拽:将一个组件从一个坐标移动到另一个坐标处
2 )滑动:从一个坐标点移动到另一个坐标点
3 )步长:从一点滑动到另一点使用的时间
2 、拖拽与滑动相关API介绍
返回值 方法名 描述
boolean drag(int startX, int startY, int endX,int endY, int steps) 拖动对象从一个坐标拖动到另一个坐标
boolean swipe(Point[] segments, int segmentSteps) 在点阵列中滑动,5ms一步
boolean swipe(int startX, int startY, int endX, int endY, int steps) 通过坐标滑动屏幕
旋转屏幕
1 、旋转屏幕相关知识1 )旋转方向:4个方向,分别为 0度,90度,180度,270度
2 )重力感应器
3 )固定位置与物理旋转
2 、旋转屏幕相关API
返回值 | 方法名 | 描述 |
---|---|---|
void | setOrientationLeft() | 通过禁用传感器,然后模拟设备向左转,并且固定位置 |
void | setOrientationNatural() | 通过禁用传感器,然后模拟设备转到其自然默认的方向,并且固定位置 |
void | setOrientationRight() | 通过禁用传感器,然后模拟设备向右转,并且固定位置 |
void | unfreezeRotation() | 重新启用传感器和允许物理旋转 |
boolean | isNaturalOrientation() | 检测设置是否处于默认旋转状态 |
int | getDisplayRotation() | 返回当前的显示旋转,0度,90度,180度,270度 值分别为:0、1、2、3 |
void | freezeRotation() | 禁用传感器和冻结装置物理旋转在其当前旋转状态 |
灭屏与唤醒屏幕
1 、灭屏与唤醒屏幕相关知识1)灭屏:按电源键将屏幕熄灭
2)唤醒屏幕:在灭屏状态下按电源键点亮屏幕
2 、灭屏与唤醒屏幕相关API
返回值 | 方法名 | 描述 |
---|---|---|
void | wakeUp() | 模拟按电源键,如果屏幕是唤醒的没有任何作用 |
void | sleep() | 模拟按电源键,如果屏幕已经是关闭的则没有任何作用 |
boolean | isScreenOn() | 检查屏幕是否亮屏 |
截图与等待空闲
1 、截图与等待空闲相关知识1)图片缩放比例
2)图片质量
3)File 类
4)图片格式 :PNG
5 ) 空闲状态
6)窗口更新事件
2 、截图相关API
返回值 | 方法名 | 描述 |
---|---|---|
boolean | takeScreenshot(File storePath) | 把当前窗口截图并将其存储为png 默认1.0f的规模(原尺寸)和90%质量, 参数为file类的文件路径 |
boolean | takeScreenshot(File storePath, float scale, int quality) | 把当前窗口截图为png格式图片, 可以自定义缩放比例与图片质量 |
storePath:存储路径,必须为png格式
Scale:缩放比例,1.0为原图
Quality:图片压缩质量,范围为0-100
3 、等待空闲相关API
返回值 | 方法名 | 描述 |
---|---|---|
void | waitForIdle(long timeout) | 自定义超时等待当前应用处于空闲状态 |
void | waitForIdle() | 等待当前应用处于空闲状态,默认等待10s |
boolean | waitForWindowUpdate(String packageName, long timeout) | 等待窗口内容更新事件的发生 |
Timeout:超时等待时间
获取包名&开启通知栏&快速设置&获取布局文件
1 、包名,通知栏,快速设置,布局文件 相关知识1)包名
2)通知栏
3)快速设置
4)布局文件
2 、包名,通知栏,快速设置,布局文件相关API
返回值 | 方法名 | 描述 |
---|---|---|
void | getCurrentPackageName() | 获取当前界面的包名 |
void | dumpWindowHierarchy(String fileName) | 获取当前界面的布局文件,保存在/data/local/tmp/目录下 |
boolean | openNotification() | 打开通知栏 |
boolean | openQuickSettings() | 打开快速设置 |
相关文章推荐
- Servlet RequestDispatcher需要注意的情况
- IOS UI 笔记整理回顾
- XML::Parser perl module is required for intltool错误
- 最大子列和CT 01-复杂度2 Maximum Subsequence Sum
- android四种更新UI的方法
- iOS UILabel一行字设置不同的字体
- NavigationBar和UINavigationController一样是一个容器
- ios上 更改 状态栏(UIStatusBar)的颜色,你值得一看、收藏
- master and slave have equal MySQL server UUIDs 解决方法
- UITableView之LOL英雄展示
- 如何隐藏RibbonBar的QAT QuickAccessToolBar
- 使用 xcodebuild 从 archive 导出 ipa
- EasyUI - Tabs
- 将标准输入复制到标准输出
- ios开发之UIImageView
- easyUI-->datagrid事件问题
- 定制自己的SolrRequestHandler
- LeetCode题解——Implement Queue using Stacks
- Archive for required library: ‘WebContent/WEB-INF/lib/xxx.jar cannot&n
- LeetCode题解——Implement Stack using Queues