例如 adb root, adb push, adb pull, 可以用 os.system()来实现,例如os.system("adb push e:\\tmp\\email_eception.log /sdcard/")
os.chdir('e:\\tmp')
os.getcwd()
首先获取时间:time.ctime(), 获得的时间格式如"Mon Oct 31 15:48:30 2011",因为window不支持文件夹名包括“:”,并且带有空格也会带来兼容性的问题,可以用字符串处理函数str.replace来将空格用“_”替换,将“:”删除,st2.replace(" ","_").replace(":","")
os.path.exists(), 返回True 或 False
os.path.exists("D:\\shellwork\\devtool\\setup\\music\\setup.bat")
os.system('adb root')
os.system('adb wait-for-device')
def sendsms(dev, number, smscontent = '', ifsend = True):
''' 发送一条短信,号码必须要指定,短信内容可选
number: 发送短信的目的号码
smscontent: 短信的内容
ifsend: 是否点击短信编辑页面的发送键,将短信发送出去'''
if smscontent == '':
dev.startActivity(action = 'android.intent.action.SENDTO', data = 'sms:'+ str(number))
else:
extrasDic = {'sms_body': str(smscontent)}
dev.startActivity(action = 'android.intent.action.SENDTO', \
data = 'sms:'+ str(number), extras = extrasDic)
if ifsend:
time.sleep(3)
dev.touch(443, 816, MonkeyDevice.DOWN_AND_UP)
time.sleep(1)
keypress_home(dev)
def makecall(dev, targetdev, number, duration = 15, ifspeaker = False, ifhangup = True, timeout = 2):
'''拨打一个电话
number: 要拨打的目标电话的号码
duration: 电话持续的时长,默认10秒钟
speaker: 是否在接通电话后打开speaker
hangup: 指定是否需要由发起电话的一端挂断电话
timeout: 接听电话一方收到incomingcall的超时时长
'''
assert(number)
dev.startActivity(action = 'android.intent.action.CALL', data = 'tel:'+ str(number))
time.sleep(5)
if ifspeaker == True:
for i in range(4): #尝试查询5次电话的状态,如果在电话中,打开扬声器
if isincall(dev):
dev.touch(80, 665, MonkeyDevice.DOWN_AND_UP)
break
time.sleep(2)
acceptcall(targetdev, timeout = 15)
time.sleep(duration)
if ifhangup:
if isincall(dev):
dev.startActivity(component = 'com.android.phone/.MiuiInCallScreen')
time.sleep(2)
dev.touch(240, 800, MonkeyDevice.DOWN_AND_UP)
8. monkeyrunner的交互解释器中使用help函数
在monkeyrunenr的交互解释器中,也许你发现了,无法用help函数,我们习惯了在python的交互式解释器中直接输入help命令来查询各种函数或者模块的用法。但是在monkeyrunner中的交互解释器中就用不了了,会提示 NameError: name 'help' is not defined,这是因为没有导入help函数。只需要到如pydoc中的help就可以使用了,如下:
from pydoc import help