最近在倒腾这个monkeyrunner,一切环境准备ok后,想在运用一下monkeyrunner命令在模拟器上装个apk
网上随便下载一个apk,
接下来步骤如下:
启动monkeyrunner,
1)导入monkeyrunner所要使用的模块
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
注意:MonkeyRunner和MonkeyDevice中间是英文逗号‘,’,不是点
2)模拟器连接
device=MonkeyRunner.waitForConnection()
其中,device=MonkeyRunner.waitForConnection(6,'emulator-5554′)
参数1:超时时间,单位秒,浮点数,默认是无限期地等待。
参数2:指定的设备名称device_id,默认为当前设备(手机优先,其次为模拟器)
输入模拟器连接命令后,页面上没有错误信息返回,即设备连接成功。
3)app安装
模拟器启动成功后,我们安装自己想要的apk,这里我选择58同城安装。
命令:device.installPackage('F:\\a.apk'),
其中,参数是APK的相对路径。(不知道为什么只要没放在盘的根目录下就安装不成功)
安装成功返回true,此时查看模拟器我们可以在IDLE界面上看到安装的APK的图标了
4)app启动
app安装成功后->启动该app
命令为:
device.startActivity(component="package名/.activity")
那么如何获取apk包名呢?
方法一:
在link上反编译一下就ok了,那么win10上呢?当然一样的道理:反编译apk
执行命令:aapt dump badging W:\a.apk ,注意,apk路径中一定不能有空格。
使用aapt工具,aapt是sdk自带的一个工具,在sdk\builds-tools\目录下。
一下就得到了package和activity,简单吧。
方法二:
aapt dump badging W:\a.apk > w:\log.txt
这个很简单吧,txt文档中一搜索,完事。
下面启动app:
命令:device.startActivity(component='com.wuba/com.wuba.activity.launch.LaunchActivity')
简单吧。
也可以向模拟器发送如按键、滚动、截图、存储等操作。哈哈
5)Monkeyrunner运行python脚本
文件testMonkeyRunner。py放在H盘根目录下。即路径为:H:\test.py。
内容:
#coding:utf-8
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
device=MonkeyRunner.waitForConnection()
device.installPackage('w:\\a.apk')
MonkeyRunner.sleep(3.0)
runComponent = "com.wuba.activity.launch.LaunchActivity/com.wuba.activity.launch.LaunchActivity"
device.startActivity(component=runComponent)
python脚本应在dos模式下执行,不要进入monkeyrunner的shell命令交互模式。正确的方式如下,输入命令monkeyrunner F:\test.py:
Ok啦