ingwlhot0801 发表于 2013-1-7 10:45:10

关于Monkeyrunner连接手机设备启动APP的问题

最经正在攻Monkeyrunner,万事开头难啊,刚一上手就遇到了个问题:L,还行有经验的来协助并讨论一下,在下感恩不尽:handshake,好了,废话少说,现在切入正题:

环境:Monkeyrunner+Python3.3
终端:HTC G14(MIUI 4.0.3系统,官网的ROM)

以ApiDemo演示为例,前提是此程序已成功安装

进入cmd命令窗口

依次输入命令:

1、monkeyrunner回车

2、from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice回车

3、device=MonkeyRunner.waitRorConnection(5,‘HT23LV804061’) 回车
# 'HT23LV804061'为终端的设备名称(可从adb devices获取)

4、device.startActivity(component = "com.example.android.apis/com.example.android.apis.ApiDemos")

执行步骤4时并没有打开app主页面,终端无响应:'(,在模拟器中是可以打开的!
但是在手动打开app后,执行device.press('KEYCODE_DPAD_DOWN', MonkeyDevice.DOWN_AND_UP),终端可正常响应

还请有经验的朋友来回答一下,是命令有误,还是系统与Monkeyrunner的兼容问题造成的?

likang2005608 发表于 2013-1-7 15:51:37

第3步中,如果只连接一个手机设备可以不用添加设备名称
可以改为:device=MonkeyRunner.waitRorConnection()
第4步中,要保证package和activity名称正确

ingwlhot0801 发表于 2013-1-8 10:13:47

回复 2# likang2005608

还有一个问题,monkeyrunner传入app时运用device.installPackage(),其中括号内写入相对路径,这儿的当前路径是什么?我用的windows xp

likang2005608 发表于 2013-1-22 14:14:16

回复 3# ingwlhot0801


你在执行monkeyrunner命令之前,首先要进入monkeyrunner.bat所在目录下。(例如我的D:\adt-bundle-windows-x86\sdk\tools)所以这里的相对路径当然是相对tools这个目录的app路径。简单的方法就是在monkeyrunner.bat所在目录下保存你要安装的apk文件。此时代码就类似下面这样:device.installPackage('./sdk_demo.apk')

chy2436447@ 发表于 2013-5-11 14:42:33

回复 2# likang2005608


   确认可以不用输入设备名吗?我测试,不输入设备名不能连接

jiguanghover 发表于 2013-5-14 09:12:51

device=MonkeyRunner.waitRorConnection()这句写错了吧,device=MonkeyRunner.waitForConnection()

zpy8202 发表于 2013-7-3 10:20:53

回复 1# ingwlhot0801


    我和你碰到了同样的问题,应该是兼容的问题,同样的脚本在2.3.3模拟器上打开正常,但是在4.0.4系统下,手机这是menu键亮了一下!正在查找如何解决

生如夏花LUX 发表于 2013-11-7 09:42:33

回复 7# zpy8202

我现在也遇到了这个问题 请问怎么解决的呢?

张亚洲 发表于 2013-12-9 19:59:42

回复zpy8202

我现在也遇到了这个问题 请问怎么解决的呢?
生如夏花LUX 发表于 2013-11-7 09:42 http://bbs.51testing.com/images/common/back.gif

device.startActivity(component = "com.example.android.apis/com.example.android.apis.ApiDemos")

这里把双引号改成单引号试试,应该没问题
com.example.android.apis--对应应用包名
com.example.android.apis.ApiDemos--对应启动后的主程序

loading_happy 发表于 2014-5-20 14:00:00

回复 5# chy2436447@
当只连接一个设备时,device=MonkeyRunner.waitForConnection()是可以成功执行并连接的。
我一只是这样用的。

oo0vini0oo 发表于 2015-8-25 17:11:45

刚接触,请问怎么使用monkeyrunner连接模拟器。求具体步骤。感激。。没有安装eclipse
怎么使用monkeyrunner链接手机。求步骤。感激不尽。。。

joy66 发表于 2015-11-16 16:51:09

手机4.4的系统,同样遇到app起不来的问题,请大神指点。

mumusan 发表于 2016-4-14 15:31:18

哥们你的包名是不是多写了个.apis???

zy36151 发表于 2016-4-29 17:24:16

楼主的语句,给我了好大帮助,之前一直用py脚本,总说报错,根据楼主的一句句来,成功了,除了那个错的单词~;P

cuikejie123 发表于 2016-5-26 14:42:00

1.device=MonkeyRunner.waitForConnection()这种是默认的,也可以像楼主一样加入参数,参数一般用于连接多个设备时使用
2.component=‘’这里要用单引号
页: [1]
查看完整版本: 关于Monkeyrunner连接手机设备启动APP的问题