2 jzdzhiyun jzdzhiyun 于 2014.08.17 11:39 提问

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。

9个回答

q315099997
q315099997   2015.09.17 15:23

在manifest里加上shell的权限

u013129052
u013129052   2015.05.26 15:27

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

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

同问,我是报的这个错误,有懂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

lvzhongdi
lvzhongdi 兄弟,解决没?
3 个月之前 回复
p522947409
p522947409 这个貌似需要系统权限
12 个月之前 回复
yaoyeyzq
yaoyeyzq 我也遇到这个问题了,兄弟你解决没?
大约一年之前 回复
whl_vip
whl_vip   2015.08.13 12:22

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

zengjinping41102
zengjinping41102   2014.12.14 13:01

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

CodingFarmers
CodingFarmers   2015.05.16 15:12

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

a568690944
a568690944   2015.08.17 09:56

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

miniminifox
miniminifox   2017.02.08 15:57

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授权

wji1996
wji1996   2017.07.27 10:37

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android UiAutomator: 从apk中启动实现方法
UiAutomator 脚本启动通常是通过PC执行一条adb命令来实现的,实现简单,官方的指导文档也是这么写的;然而缺点启动要依赖PC,同时又占用手机的USB端口。 这里讲的是通过Android app中启动UiAutomator 脚本。
Android uiautomator实例使用
Android测试工具中,Monkey Runner只要简单几个指令即可,但他的局限性在于都是基于像素位置操作,不具备移植性。 而采用uiautomator编写的自动化测试工具则可以实现基于UiSelector选择直接操作uiObject来编写基于属性操作具备移植性的测试。 注: android官方给出的版本条件如下,若低于这些版本请先下载新版本 Android SDK Tools, Re
安卓apk调用uiautomator
问题: 1.uiautomator2的调用,需要shell用户权限,直接在app中调用的话,会出现权限问题。 2.手机root后,貌似可以调用uiautomator2,但是有些手机调用不了 解决方案: 1.root后使用app_process命令,启动java程序 app_process -Djava.class.path=/sdcard/demo.jar / com.xx.xxx 2.java程序调用uiatuomator2的代码,需要各位去看懂uiautomator2源码了 发布一个基于此原理的成品:
命令行运行uiautomator
sdk/docs/reference/android/support/test/runner/AndroidJUnitRunner.html Typical Usage Write JUnit3 style TestCases and/or JUnit4 style Tests that perform tests against the classes in your pac
android UiAutomator利用am命令启动和结束进程
最近在学习UiAutomator的时候看到UiAutomator可以利用am命令启动和结束进程,自己练习了一下,感觉效果挺不错的。分享一下经验。 //启动QQ Runtime.getRuntime().exec("am start -n com.tencent.mobileqq/.activity.SplashActivity"); //关闭QQ,如果运行中想结束得加上waitfor()
从eclipse运行UiAutomator的方法,告别cmd
最近学习uiautomator,感觉每次跑起来都好麻烦,不知道别的大神怎么着,我才入门自动化测试不久,到处学,找的资料都是很零散的,自己感觉原始的方法很麻烦,原始的方法应该是如下的: 字段说明:  LearnUIAutomator 工程名 D:\DEV\workspace\LearnUIAutomato 工程路径 CXQUiautomatorTestCase 类名 1、生成build
UiAutomator 与 Shell 结合的力量
转载地址:https://testerhome.com/topics/2806 我的想法就是通过UiAutomator本身的dump命令,来抓取手机当前页面的xml档,这个xml档里面有存储手机当前页面的属性及坐标等.接着通过shell脚本命令来解析或过滤出我们想要点击的属性的坐标值来,最后通过sendevent的方式来实现:点击/长按/滑动(Swipe)/双击/拖拽(Drag)
批处理文件:实现将写好的Android Uiautomator工程打包成jar包放到手机中执行
一、最开始的意图:将写好的Android Uiautomator工程打包成jar包放到手机中执行。 二、按照网上查到的方法(如下,感谢),一句一句的将命令敲进cmd窗口: http://blog.chengyunfeng.com/?p=504 http://www.tuicool.com/articles/ERBRVzY http://blog.csdn.net/robinzhou
Android使用UiAutomator进行测试
UiAutomatorView的位置: D:\Program Files\adt-bundle-windows-x86_64-20140702\sdk\tools\uiautomatorviewer.bat 测试代码编写过程: 1.建立一个java项目,新建lib文件夹。 2.拷贝android.jar和uiautomator.jar到lib文件夹(jar文件的地址:D:\Progra
uiautomator2.0+脱离PC运行(apk启动uiautomator2.0+)的实现方案
uiautomator2.0+脱离PC运行(apk启动uiautomator2.0+)效果:打开MyTest.apk,点击run uiautomator,就能直接运行你的脚本。方案概述: 新建一个Android app工程MyTest,在Activity中添加Button,用于启动脚本 给这个app添加系统签名 在MyTest中新建一个module,命名为MyTestCase,用于编写脚本 使用am