准备工具
Auto.js手机app
电脑开发推荐使用VScode
开发步骤
VScode编辑js脚本文件
VScode点击查看>命令面板
输入auto.js:start server
启动服务;手机打开auto.js然后左滑打开连接电脑,输入电脑的ip地址(局域网地址),连接成功后VScode右下角会有弹出连接成功显示;电脑按F5
键就可以将当前活动页代码发送到手机上执行。
操作命令
VScode:
auto.js:Start Server
- 启动远程操作服务
auto.js:Stop Server
- 停止远程操作服务
auto.js:Run
/ F5
- 在手机上运行当前活动页程序
auto.js:Stop
- 在手机上停止当前活动页脚本
auto.js:StopAll
- 停止手机上运行的所有脚本
auto.js:Save
- 将当前文件保存到手机默认目录下
auto.js:Run Project
- 在手机上运行项目
auto.js:Save Project
- 在手机上保存项目
常用函数
详细参考命令到Auto.js文档
注意:此处仅仅介绍本人用过的命令
一般全局函数
sleep(n)
- 暂停运行n毫秒的时间
home()
- 相当于点击安卓的home按键
back()
- 相当于点击安卓的back按键
toast(message)
- 以气泡显示信息message几秒,安卓一般为2秒
exit()
- 立刻停止脚本运行
setScreenMetrics(x, y)
- 设置屏幕分辨率
点击
click(x, y)
- 点击指定的像素点
click(text[, i])
- 点击文本,入过有多个,则点击第i个,i从0开始数,不指定则会将所有的文本点击一次,返回是否全部成功
while(!click("扫一扫"));
- 点击扫一扫,从文本处向其父视图寻找,直至发现一个可点击的部件为止。
swipe(x1, y1, x2, y2, duration)
- 从(x1, y1)滑动到(x2, y2),持续时间为duration毫秒
press(x, y, duration)
- 长按(x, y)点,持续时间为duration毫秒
应用
launchApp(appName)
- 指定应用名启动应用,如“支付宝”
launch(packageName)
- 指定应用的包名启动应用,如“com.eg.android.AlipayGphone”,该方法启动应用更快
图片和颜色
requestScreenCapture([landscape])
- 获取截图权限,返回是否具有权限;landscape为false, 则表示竖屏截图; true为横屏截图;该方法只用执行一次
captureScreen()
- 截取屏幕,返回一个image对象
images.pixel(image, x, y)
- 返回image图片(x, y)位置的ARGB值,用0xAARRGGBB表示
images.findColor(image, color, options)
- 区域找色,image中找color颜色,options为一个类似python字典的对象,region为区域,指定左上角x,y和区域的宽和高,threshold为颜色相似度,0为相同,255为所有颜色都相似,默认为4
images.findColorInRegion(img, color, x, y[, width, height, threshold])
- 用法同findColor
images.findImage(img, template[, options])
- 以图找图,img为原图,template为模板图,options和findColor用法相似;threshold图片相似度,取值范围为0~1的浮点数。默认值为0.9。region找图区域,用法和findColor一样,level默认不设置,会自动调整图片大小。
images.findImageInRegion(img, template, x, y[, width, height, threshold])
- 用法和findImage一样
colors.toString(color)
- 将颜色值转换为字符串
代码示例
监控我的支付宝蚂蚁庄园是否有小鸡偷吃的脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| "auto";
setScreenMetrics(1080, 1920);
requestScreenCapture(false);
main();
function main(){ app.launch("com.eg.android.AlipayGphone"); sleep(2000); while(!check_alipay_home()){ back(); sleep(1000); }; watched_me(); }
function check_alipay_home(){
var scan = text('首页').findOnce(); var pay = text('理财').findOnce(); if(scan != null && pay != null){ while(!click("首页")); return true }else{ return false } }
function check_ant_home(){ while(!click("蚂蚁庄园")); sleep(800); while(true){ var img = captureScreen(); var color1 = images.pixel(img, 100, 200); var colors1 = colors.toString(color1); if(colors1 == "#ffb7eaff"){ sleep(500); } else{ sleep(500); break; } } }
function watched_me(){ while(true){ check_ant_home(); var img = captureScreen(); var color1 = images.pixel(img, 400, 1300); var color2 = images.pixel(img, 850, 1300); var colors1 = colors.toString(color1); var colors2 = colors.toString(color2); if(colors1=="#ff000000" || colors2=="#ff000000"){ media.playMusic("/storage/emulated/0/MIUI/.ringtone/五月天 我不愿让你一个人_&_5b2e2bd6-6230-45c4-a1a5-e2a6bcdcd4b2.mp3"); sleep(30000); exit(); } toast(colors1 + colors2) back(); sleep(700); } }
|
监控蚂蚁庄园前三名是否有小鸡偷吃的脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| "auto";
setScreenMetrics(1080, 1920);
requestScreenCapture(false);
main();
function main(){ app.launch("com.eg.android.AlipayGphone"); sleep(2000); while(!check_alipay_home()){ back(); sleep(1000); }; watched_other(); }
function check_alipay_home(){
var scan = text('首页').findOnce(); var pay = text('理财').findOnce(); if(scan != null && pay != null){ while(!click("首页")); return true }else{ return false } }
function check_ant_home(){ while(!click("蚂蚁庄园")); sleep(800); while(true){ var img = captureScreen(); var color1 = images.pixel(img, 100, 200); var colors1 = colors.toString(color1); if(colors1 == "#ffb7eaff"){ sleep(500); } else{ sleep(500); break; } } }
function watched_other(){ check_ant_home(); while(true){ click(156,1721); sleep(1000); var img = captureScreen(); var color1 = images.pixel(img,940,1380); var colors1 = colors.toString(color1); var color2 = images.pixel(img,940,1570); var colors2 = colors.toString(color2); var color3 = images.pixel(img,940,1760); var colors3 = colors.toString(color3);
if(colors1=="#ff333333" ||colors2=="#ff333333" ||colors3=="#ff333333" ){ media.playMusic("/storage/emulated/0/MIUI/.ringtone/五月天 我不愿让你一个人_&_5b2e2bd6-6230-45c4-a1a5-e2a6bcdcd4b2.mp3"); sleep(30000); exit(); } toast(colors1 + colors2 + colors3) back(); sleep(1000); } }
|