monkeyrunner截图限时免费阅读#2:多线程保存
来源:互联网 发布:ubuntu debian fedora 编辑:程序博客网 时间:2024/04/27 12:23
这是monkeyrunner截图限时免费阅读#1的后作.
之前的脚本中将所有的东西都放在主线程里面执行, 实际上, 保存MonkeyImage
到磁盘的过程是IO相当大的, 将这类操作放入单独的线程进行处理能大大提高脚本运行的效率.
我们创建一个线程, 指定一个方法和要传入的参数, 就可以让这个方法在线程中执行, 线程需要是非守护线程, 不过这个是默认的.
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImageimport sys, os, time, threadingdef saveMonkeyImageToFile(img, name): '''save monkey img to file''' img.writeToFile(name, "png")def saveMonkeyImageByThread(img, name): '''save monkey img to file using thread''' t = threading.Thread(target=saveMonkeyImageToFile, args=(img, name,)) t.start()if (__name__ == '__main__'): PF_PNG = ".png" PN_WIDTH = "display.width" PN_HEIGHT = "display.height" DOWN_AND_UP = "down_and_up" TARGET_PATH = os.getcwd() + '/freeder' + str(int(round(time.time()*1000))) + '/' os.mkdir(TARGET_PATH) print 'create dir: ' + TARGET_PATH print 'waiting for connection' device = MonkeyRunner.waitForConnection() print 'device connected' touch_x = int(device.getProperty(PN_WIDTH)) - 10 touch_y = int(device.getProperty(PN_HEIGHT)) / 2 page = 1 if (len(sys.argv) == 2): page = int(sys.argv[1]) old_img = device.takeSnapshot() while (True): device.touch(touch_x, touch_y, DOWN_AND_UP) time.sleep(1) new_img = device.takeSnapshot() if (new_img.sameAs(old_img)): print 'snapshot is same, exit' break else: saveMonkeyImageByThread(old_img, TARGET_PATH + str(page) + PF_PNG) print 'write image to file, nameing ' + str(page) + '.png' old_img = new_img page += 1 print 'done exit'
脚本的主要改动在于将存储图片的过程变为了新建一个线程去处理.
0 0
- monkeyrunner截图限时免费阅读#2:多线程保存
- monkeyrunner截图限时免费阅读#1
- 【2月限时免费】多国语言文本采集数据
- monkeyrunner之截图和截图对比方法
- [VB.NET]关于多线程和截图保存的问题!
- 免费截图工具PicPick 2.1.2绿色版
- 开年有大礼!阿里珍贵技术资料限时免费下载(2月20日最新资料)
- 限时免费不可不知的秘密
- 限时免费不可不知的秘密
- 博学谷资料限时免费领取
- localStorage也可以限时保存登录信息
- MonkeyRunner之手机屏幕截图的比对
- 截图和保存图
- 屏幕截图并保存
- Unity3d 截图保存
- 保存摄像头截图
- flex截图 java保存
- 截图和保存
- jQuery ajax - serialize() 方法-遍历form进行AJAX提交
- react-native试玩(17)-iOS中的滑动条
- 支付宝网银退款业务
- ZOJ 2562 More Divisors (n以内约数个数最多的最小数)
- 紫影龙的编程日记 —— 界面设计之静态文本控件
- monkeyrunner截图限时免费阅读#2:多线程保存
- 线程管理之Thread类相关方法简介
- [Java Concurrency in Practice]第十三章 显式锁
- react-native试玩(18)-开关控件
- lintcode-比较字符串-55
- HDU-4289 Control
- MYSQL的常用命令和增删改查语句和数据类型
- react-native试玩(19)-分页栏
- 一个人分享的经历的故事和感悟