uiautomator dumpWindowHierarchy(...)无法更改转储目录

时间:2016-05-06 21:12:51

标签: android uiautomator android-uiautomator

我正在使用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文件的保存目录?

1 个答案:

答案 0 :(得分:0)

如果希望它最终放在SD卡上,则需要将完整路径传递给dumpWindowHierarchy(..)。

现在你正在调用dumpWindowHierarchy(“test.xml”),这是一个相对路径。默认情况下,如果未指定完整路径,UI Automator将使用Context.getFileStreamPath(..)返回的目录。