StupidBeauty
Read times:1079Posted at:Sat May 3 23:27:02 2014
- no title specified

说一说与MonkeyRunner之间的故事

之前一直在用OPPO Find5 X909这个手机。

某一天,拿起来看消息时没拿稳,它掉下去,把触摸屏摔坏了,于是不能触摸了。当时忙得冒屎,就不想跑到维修点去修了。直接拿了一个备用手机来用。

几天之后,需要去看OPPO手机上的通讯录,就开始找那种通过电脑控制手机的方法了。

经过研究发现,已经获取了根权限的手机,可以安装VNC服务器来让电脑远程连接并进行控制。于是去下载了一个DroidVNCServer,用adb安装到了OPPO手机上,并且启动了。

但是,启动APK之后,发现这个VNC服务器需要手动点击才能启动服务的。

那么,还是要想个办法来自动启动VNC服务器啊。等到VNC服务器启动之后,再使用VNC客户端连接上,就可以远程控制了。

就需要研究一下怎么做自动点击了。经过研究之后,决定采用MonkeyRunner来实现这一点。只要写python脚本就可以点击屏幕上的任何位置,还可以模拟做拖动、按后退键等等动作。

弄清楚原理就好办了。写一个python脚本,使用MonkeyRunner来运行它。在脚本里面具体要这样写:

  1. 1.启动DroidVNCServer这个应用;

  2. 2.模拟点击“START”按钮;

  3. 3.在弹出的“SU权限确认对话框”中,点击“允许”,以让DroidVNCServer获取根权限;

  4. 4.完成了,此时VNC服务器就启动了,使用VNC客户端连接上它就行了。

在此附上所写的MonkeyRunner脚本代码:

# encoding:utf-8

from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage

device=MonkeyRunner.waitForConnection()

device.press('KEYCODE_HOME','DOWN_AND_UP') #退出到桌面。

MonkeyRunner.sleep(2) #睡2秒。

device.touch(441,1740,'MonkeyDevice.DOWN_AND_UP') #点击应用程序按钮。

MonkeyRunner.sleep(2) #睡2秒。

device.drag((250,850),(50,110),0.1,10) #向左拖动。翻页。

MonkeyRunner.sleep(2) #睡2秒。

device.drag((250,850),(50,110),0.1,10) #向左拖动。翻页。

MonkeyRunner.sleep(2) #睡2秒。

device.touch(447,249,'MonkeyDevice.DOWN_AND_UP') #点击droid vnc server

MonkeyRunner.sleep(2) #睡2秒。

device.touch(516,699,'MonkeyDevice.DOWN_AND_UP') #点击start

MonkeyRunner.sleep(2) #睡2秒。

device.touch(828,1278,'MonkeyDevice.DOWN_AND_UP') #点击 允许

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands