Android无线测试之—UiAutomator UiDevice API介绍七
截图与等待空闲
一、截图和等待空闲相关知识:
1)图片缩放比例:例如图片从100像素缩小到50像素
2)图片质量:是指图片大小,质量越高图片越大,质量越低图片越小
3)File类:指的是一个文件或者一个文件夹
4)图片格式:图片截图都采用的PNG格式
5)空闲状态:窗口没有更新就是没有动作,界面处于不动状态
6)窗口更新事件:窗口打开的过程就是一个更新事件,打开后不动了就是空闲状态
二、截图相关API:
返回值 | 方法名 | 描述 |
boolean | takeScreenShot(File storePath) | 把当前窗口截图并将其保存为PNG默认1.0f的规格(原尺寸)和90%质量,参数为File类的文件路径 |
boolen | takeScreenShot(File storePath, float scale, int quality) | 把当前窗口截图为PNG格式图片,可以自定义缩放比例和质量 |
参数说明:
storePath:存储路径,必须为png格式
scale:缩放比例,1.0为原图
quality:图片压缩质量,范围为0-100
三、截图API应用举例:
package com.uiautomatortest; import java.io.File; import android.graphics.Point; import android.os.Bundle; import android.os.RemoteException; import android.view.KeyEvent; import com.android.uiautomator.core.UiDevice; import com.android.uiautomator.testrunner.UiAutomatorTestCase; public class Test extends UiAutomatorTestCase { public void testScreen(){ UiDevice.getInstance().pressHome(); sleep(1000); UiDevice.getInstance().pressMenu(); sleep(2000); UiDevice.getInstance().takeScreenshot(new File("/sdcard/screen.png")); } }
四、等待空闲相关API:
返回值 | 方法名 | 描述 |
void | waitForIdle(long timeout) | 自定义超时等待当前应用处于空闲状态 |
void | waitForIdle() | 等待当前应用处于空闲状态,默认等待10s |
boolean | waitForWindowUpdate(String packageName, long timeout) | 等待窗口内容更新事件的发生 |
五、等待空闲API
package com.uiautomatortest; import java.io.File; import android.graphics.Point; import android.os.Bundle; import android.os.RemoteException; import android.view.KeyEvent; import com.android.uiautomator.core.UiDevice; import com.android.uiautomator.testrunner.UiAutomatorTestCase; public class Test extends UiAutomatorTestCase { public void testWait(){ //[256,577][320,640] int x, y; x=(320-256)/2+256; y=(640-577)/2+577; UiDevice.getInstance().pressHome(); UiDevice.getInstance().waitForIdle(3000); UiDevice.getInstance().click(x, y); String packageName="com.android.browser"; UiDevice.getInstance().waitForWindowUpdate(packageName, 20000); } }