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"));
    }

}
Test.java

四、等待空閑相關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);
        
    }

}
Test.java

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM