我们通过 athrun 自带 ViewUtils 中获取当前 ui 所有 views 再根据这些 views 截出控件的图片

代码如下:

for (int a = 0;a < ViewUtils.getAllViews(true).size(); a++) {

/************抓取ID**********/
            try {
                        takeScreenShot(ViewUtils.getAllViews(true).get(a),
                                "/sdcard/wa/", ViewUtils.getAllViews(true).get(a)
                                .getId());

                TimeUnit.SECONDS.sleep(3);
            } catch (NullPointerException e) {
                System.out.println("----------");
            }

但是发现现在有部分 apk 的 ui 更新不在主线程,是在子线程中更新,导致我们程序抓取 id 时报 Only the original thread that created a view hierarchy can touch its views. 找了个 android 开发问了下,可能是大部分 ui 是在主线程更新,有一些图片可能是在子线程里更新
请教下各位大神有什么解决方法么?或者说换种什么更好方法来抓取 ui 中控件的好方法?


↙↙↙阅读原文可查看相关链接,并与作者交流