uiautomator源码
步骤:
1、配置好JDK。
2、SDK(API高于16)。
3、Eclipse(安装ADT插件),对Eclipse环境不太熟悉的,建议下载插件将其汉化,另外推荐一本书《Java从入门到精通》的电子版,里面有对Eclipse的使用介绍,浅显易懂。
4、ANT(用于编译生成的jar)。
㈡ 遇到android5.0.2系统上面使用uiautomator mp 命令生成的xml文件中文乱码怎么解
源码有问题,对比Android5.0.2与4.4的源码得出,在/frameworks/testing/uiautomator/library/core-src/com/Android/uiautomator/core/AccessibilityNodeInfoDumper.java的private static String stripInvalidXMLChars(CharSequence cs)方法存在差异,改方法就是将传入的字符转换为字符串,如下是差异对比:
大家可以看出,左边为5.0.2的源码,明显方法中只支持英文字符,其它字符统统返回问号,解决方法也很简单,就是修改该方法,然后重新编译刷机,自己测试中文正常显示。
㈢ 正在学uiautomator需要对其架构进行组内培训,求大神发源码到我的邮箱[email protected]
网络下 啥都有啊
㈣ 怎样看android自动化uiautomator源码
Google在sdk4.0以后提供了一个自动化解决方案uiautomator:
优点:可以跨应用了;这可是亲生的;
缺点:必须sdk4.0以上版本;要想实现的好,最好有开发配合;java项目编译为jar后需要push到手机才能运行,也就是说必须打印日志暴力调试。
㈤ uiautomator 源码在哪
gitclonehttps://android.googlesource.com/platform/frameworks/uiautomator
㈥ 为什么UIautomator viewer不能够截取到闹钟的界面
今天我学习uiautomator的时候,用mpWindowHierarchy()获得控件信息的时候,发现这个方法可以得到动态的界面信息。这就弥补了uiautomatorviewer的缺陷。下面把过程给大家贴出来。
我捡主要的将。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.mpWindowHierarchy(realPath);
}
}
我看了一下mpWindowHierarchy的方法源码:
public void [More ...] mpWindowHierarchy(String fileName) {
AccessibilityNodeInfo root = getAutomatorBridge().getQueryController().getAccessibilityRootNode();
if(root != null) {
AccessibilityNodeInfoDumper.mpWindowToFile(
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/下无文件的错误。后来找到源码才知道。
编写完java工程 以后,用ant命令生成jar包,然后把jar包push到设备上,将秒表打开。然后运行脚本,得到xml文件,抓到本地。
㈦ 在某些版本手机中通过UIAutomatorViewer工具无法获取手机屏幕元素的信息
如果你的工具只能获取到桌面,而进入任何一个APP界面,都无法获取到界面信息时,原因可能是sdk API版本过低,被听其他的瞎说什么手机没root,或者本身不支持之类,都是瞎扯。正确的解决方法是:
1.通过Android Studio或者IDEA下载更高级的API版本,我是把最新的26,27都下了,这和手机本身是不是android最新版本没关系。
2.升级后你可能会遇到一个adb连接不上手机的问题,这个请参考:
㈧ 用python+uiautomator做自动化,使用到swipePoints这个方法的时候,一直报KeyError错误,请问怎么解决
估计调用swipePoints传参有问题
㈨ 如何在另一个类中调用已经写好的UiAutomator Java代码中的方法
如果你使用Eclipse可以直接new UiAutomator对象,例如Uiautomator ui = new Uiautomator(),调用方法几时ui.方法名。
调用其他类的方法名一般是新建对象,然后通过对象加“.”调用方法。如果是静态方法就直接类名.方法