我正在使用uiautomator dumpWindowHierarchy(...)来转储当前设备显示的视图树。但是,似乎我无法更改转储的.xml文件的保存目录。下面的代码有效,但它将.xml文件保存到/ data / local / tmp / local / tmp文件夹。 “dumpXml”变量只是一个文件名,例如“的test.xml”
public void dumpView(String dumpXml) {
final File dump = new File(new File(Environment.getDataDirectory(), "local/tmp"), dumpXml);
dump.mkdirs();
if (dump.exists()) {
dump.delete();
}
try {
getUiDevice().dumpWindowHierarchy(dumpXml);
Log.i(TAG, String.format("UI hierarchy: " + dumpXml));
} catch (Exception e) {
testCaseAssertion("ERROR: did not dump a view file");
}
}
如果我将new File(new File(Environment.getDataDirectory(), "local/tmp"), dumpXml);
更改为其他文件夹,例如new File("sdcard/Test"), dumpXml);
,然后我找不到转储的.xml文件。
有人可以解释我为什么吗?如何更改转储的.xml文件的保存目录?
答案 0 :(得分:0)
如果希望它最终放在SD卡上,则需要将完整路径传递给dumpWindowHierarchy(..)。
现在你正在调用dumpWindowHierarchy(“test.xml”),这是一个相对路径。默认情况下,如果未指定完整路径,UI Automator将使用Context.getFileStreamPath(..)返回的目录。