adb shell monkey ............
我想最后在手机端生成 monkey 的报告,之前测试过,必须先进入 shell 环境,才可以生成在手机端
所以,在写 bat 的时候遇到了问题
就是 adb shell 之后的命令都不执行
后来想想也对,都已经进入 shell 环境了,肯定不听 windows 使唤了。
之后上网查了一下 说: adb shell < cmd.txt 可以解决
但是我尝试了,也没有得到预期;(我的使用方法不对,参见 17 楼)
想问一下大家应该怎么做~
更新: 解决了
在这里汇总一下关于 monkey 的问题:
1.monkey 运行时,如果选择报告生成在 pc 端,那么 adb 断开连接后,日志就停止记录了
2.根据 1,建议将日志生成在手机端,并定向错误输出 monkey yourcommand >monkey.txt 2>&1
3.日志生成在手机端,需要对命令进行处理,普通手打情况下,必须先进入 shell,再运行 monkey 才能生成报告在手机端,bat 的话比如说 xuxu 说的 adb shell “monkey......>monkey.txt”
4.最终的解决方案是 17 楼,不仅是 monkey 的 bat 可以像 17 楼那样,其他需要在 shell 下执行的语句都可以采用 adb shell < cmd.txt 的方式解决
感谢大家的帮助!谢谢!
你想在手机里通过 apk 来运行 monkey,是这个意思么?
如果是的话,那么这个需要 root 的手机,其次你需要一个 system 的证书,然后在 manifest 中增加一个 inject 的权限,至少我知道的是这样。。= =
#3 楼 @chenhengjie123 =。=。。这个。。如果是这样的话。。我觉得木有坎儿啊。。。
@uncle_mm 你的 cmd.txt 里面写的是什么?
另外,你要的是什么报告,需要先进入 shell 命令行才能得到?
#5 楼 @chenhengjie123 就是一条 monkey 指令呀,末尾是指向手机端路径,因为 monkey 日志只有 shell 下才能存入手机端,所以先 shell
那你就把运行的脚本先 push 到手机上,然后 adb shell 直接调用这个脚本啊!
@uncle_mm 用这个,adb shell "monkey 1000 > sdcard/monkey_log.txt",带了引号,日志就可以存储在手机中
#9 楼 @weamylady 比如脚本写在了 sdcard/cmd.txt 如何调用 对 bat 不熟 见谅
#11 楼 @chenhengjie123 adb 断了的话,monkey 不会停哦~ shell 是断开了,但是 monkey 指令运行了,monkey 就会运行直到完成,不管连接是否断开,如果我没记错的话
你说得对,刚刚试了一下,就算 adb 断开了,monkey 还是会继续执行。应该它本来就是 daemon 模式执行的吧。
另外关于你之前提到的adb shell < cmd.txt
,试验了一下,确实可以用。
给个简单例子你参考:
test.bat
adb shell < cmd.sh pause
cmd.sh
monkey 10 > /sdcard/monkey.log exit
两个文件都放在电脑里的同一文件夹,记得cmd.sh最后一行是空行,否则会停在出现了exit命令但没执行的地方。
cmd.sh里面就能像写shell脚本那样任意写命令了。
#17 楼 @chenhengjie123 nice!我之前把 sh 放到手机里了,着实很 2 啊~ 谢谢 chg123~ 可以结贴了 么么哒
电脑端执行的可以这样写
adb shell "moneky -v -v -v 1000 >>/sdcard/monkeylog.txt"
需要 su 的
adb shell su -c "comand"
#24 楼 @weamylady O(∩_∩) O 哈哈~半年后也会搬去科技园