1、交互模式下运行
在cmd窗口中输入monkeyrunner,前提是你已经将sdk中的tools目录加入到环境变量中的PATH中,如果没有加入就只能先pushd到tools目录下再运行monkeyrunner,这个东西一开始启动有些慢,耐心点,当出现>>>的时候说明已经成功启动了,
输入
>>> from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
这些就是python的语法了,理论上应该不会出现什么问题
再输入device = MonkeyRunner.waitForConnection()
waitForConnection是一个阻塞式方法,如果没有手机连接的话会一直等着,你也可以设置一个超时时间MonkeyRunner.waitForConnection(10) 表示超时时间为10秒。
连接成功后会出现>>>
现在就可以调用device的一些方法,如reboot,可以先爽一爽重启手机
四、自动化的调起360手机卫士
monkeyrunner的调用api为device.startActivity(component=’packageName/Activity')
那么现在问题来了,packageName好弄,但是这个Activity可就不好搞了,可以通过反编译apk文件,但这里使用sl4a中的android模块来搞到这个activity
解压将刚才下载的sl4a-master.zip,取出里面的\sl4a-master\python\中的python_extras.zip,再解压这个zip,cmd到这个目录下,先使用adb命令得到安装的包的package名字,输入pm list packages –3 -f
找到这样的一个package:/data/app/com.qihoo360.mobilesafe-2.apk=com.qihoo360.mobilesafe 后面的就是package名字
接下来获得activity名字
使用以下python代码
import android
import pprint
droid=android.Android()
apps=droid.getLaunchableApplications()
pprint.pprint(apps.result)
仔细找找,找到以下的字典元素,其中后面的u'com.qihoo360.mobilesafe.ui.index.AppEnterActivity'就为360卫士的StartActivity
u'\xa0360\u536b\u58eb': u'com.qihoo360.mobilesafe.ui.index.AppEnterActivity',
这样将上面的代码补充全
device.startActivity(component='com.qihoo360.mobilesafe/com.qihoo360.mobilesafe.ui.index.AppEnterActivity')