uiautomator 命令如何 在 android 中调用

在cmd中运行
adb push F:***\AutoRunner.jar data/local/tmp/AutoRunner.jar
adb shell uiautomator runtest AutoRunner.jar -c com.Runner.AutoRunner
能正常运行,手机上(android4.1.2)也有效果。

但是我想在一个安卓应用上(比如一个按钮隐藏当前应用后运行)调用adb shell uiautomator runtest ...命令。

运行:
Runtime.getRuntime().exec("am start -n com.tencent.mm/com.tencent.mm.ui.LauncherUI")
能正常打开微信。但是运行下面的语句,没有任何效果:
Runtime.getRuntime().exec("uiautomator runtest data/local/tmp/AutoRunner.jar -c com.Runner.AutoRunner")

大家有没有办法(其他办法也行),在安卓中触发uiautomator。

请问楼主,这个问题有解决方法吗?

楼主,同求解决方案,请指教谢谢!!!

用命令行执行是可以的 不过要在线程中调用 比如
new Thread(new Runnable() {
@Override
public void run() {

                 String cmdText = " uiautomator runtest AutoRunner.jar  -c dowork.com.Runner.AutoRunner";
                 CmdUtil.execCmd(cmdText);
              }
         }).start();

同问,我是报的这个错误,有懂Android开发大牛能帮忙解决一下吗?

09:26:02.898: E/UiAutomatorTestRunner(7071): java.lang.SecurityException: You do not have android.permission.RETRIEVE_WINDOW_CONTENT required to call registerUiTestAutomationService from pid=7071, uid=10156

这个要使用root用户执行,推荐在github找shellutil工具包,使用里面的execCommand

楼主,同求解决方案,请指教谢谢!!!

在manifest里加上shell的权限

am start -n com.tencent.mm/com.tencent.mm.ui.LauncherUI-->su -c am start -n com.tencent.mm/com.tencent.mm.ui.LauncherUI
解决问题 但需要root授权

要root 然后在manifest加android:sharedUserId="android.uid.system" 然后用系统对应的platform.x509.pem和platform.pk8给apk签名 应该就可以了