編輯:關於Android編程
在之前的第一篇文章:
android自動化測試中hierarchyviewer和uiautomatorviewer獲取控件信息的方式比對(1)
我說uiautomatorviewer獲取動態的界面會報錯。錯誤如下:
今天我學習uiautomator的時候,用dumpWindowHierarchy()獲得控件信息的時候,發現這個方法可以得到動態的界面信息。這就彌補了uiautomatorviewer的缺陷。下面把過程給大家貼出來。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGJyPgo8L3A+CjxwPsjnus6x4NC0amF2Ybmks8zOxLz+tcTQxc+io6zHsLGyw8fQtMHLuty24KOsztKw0c7S0afPsLXEway907fFuPi087zSoaM8L3A+CjxwPjxicj4KPC9wPgo8cD5odHRwOi8vYmxvZy5jc2RuLm5ldC9yb2Jpbnpob3UvYXJ0aWNsZS9kZXRhaWxzLzg0NDcwNTg8YnI+CjwvcD4KPHA+PGJyPgo8L3A+CjxwPs7SvPHW99KqtcS9q6GjamF2YbT6wuujujwvcD4KPHA+PGJyPgo8L3A+CjxwPjwvcD4KPHByZSBjbGFzcz0="brush:java;">package com.ibm.test;
import java.io.File;
import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
public class MyUIauto extends UiAutomatorTestCase {
private static final String TAG = "MyUIauto";
public void testPressHome() throws UiObjectNotFoundException {
File file = new File("/data/local/tmp/local/tmp/qian.xml");
UiDevice uiDevice = getUiDevice();
//uiDevice.pressHome();
String realPath = "qian.xml";
uiDevice.dumpWindowHierarchy(realPath);
}
}
我看了一下dumpWindowHierarchy的方法源碼:
public void [More ...] dumpWindowHierarchy(String fileName) { AccessibilityNodeInfo root = getAutomatorBridge().getQueryController().getAccessibilityRootNode(); if(root != null) { AccessibilityNodeInfoDumper.dumpWindowToFile( root, new File(new File(Environment.getDataDirectory(), "local/tmp"), fileName)); } }
官網上的說明默認目錄是/data/local/tmp目錄,但從源碼上可以看見它又增加了local/tmp目錄。合並起來就是/data/local/tmp/local/tmp目錄。這也是我起先隨便建立個目錄造成的錯誤的原因,老是報/data/local/tmp/local/tmp/下無文件的錯誤。後來找到源碼才知道。源碼網站給大家:
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.2_r1/com/android/uiautomator/core/UiDevice.java#UiDevice.dumpWindowHierarchy%28java.lang.String%29
編寫完java工程 以後,用ant命令生成jar包,然後把jar包push到設備上,將秒表打開。然後運行腳本,得到xml文件,抓到本地。查看xml文件如下:
小白:之前分享了ViewStub標簽的使用,Android還有其他優化布局的方式嗎? 小黑:標簽用於減少View樹的層次來優化Android的布局。先來用個例子演示
我們今天所使用的方案只是android手機設備集成短信驗證碼功能的方案之一。我們所采用的方案是使用聚合數據的短信驗證sdk。 程序的界面如下所示: 實
我們公司最近開始使用GitHub 托管代碼,當然公司這種創建私有庫是要收費的,不同於個人上傳共享自己代碼,在這裡我就介紹下如何使用GitHub來進行團隊開發。首先加入你們
(1)布局文件代碼 (2)控制的類 package com.example.android_switch; import androi