当前位置:网站首页>Auto.js入门
Auto.js入门
2022-07-06 09:27:00 【帅帅气气的黑猫警长】
Auto.JS
Auto.js
是个基于 JavaScript
语言运行在Android平台上的脚本框架。Auto.js主要工作原理是基于辅助服务AccessibilityService
。
手机环境:auto.js下载(资源自己寻找)及安装,开启无障碍服务
pc环境:推荐使用vscode,点击 扩展
搜索 Auto.js
或 hyb1996
即可找到Auto.JS插件。
一、准备工作
在pc端开启服务
在vscode中按 Ctrl+Shift+P 或点击"查看"->"命令面板"可调出命令面板,输入 Auto.js 可以看到几个命令,移动光标到命令Auto.js: Start Server,按回车键执行该命令。(VS Code会在右上角显示"Auto.js server running",即开启服务成功)。
手机app连接pc(同一局域网或有公网ip)
点手机app左上角,在“其他”选项中,有“连接电脑”这个开关,点开启会让输入pc的ip地址,输入pcIP地址后,在pc端会提示“New device attached:........”,这样就手机和pc连接成功了。
运行
run或者快捷键F5,会自动在手机端运行。
保存项目到手机终端
按 Ctrl+Shift+P 或点击"查看"->"命令面板"可调出命令面板,输入
Auto.js:Save On device
命令(vscode版本不同,语句不同,但意思都是save on/to device,都一样意思),会找到已连接手机终端,点击device,就可以在手机端查看了。
二、常用命令
按 Ctrl+Shift+P 或点击"查看"->"命令面板"可调出命令面板,输入 Auto.js 可以看到几个命令:
Start Server: 启动插件服务。之后在确保手机和电脑在同一区域网的情况下,在Auto.js的侧拉菜单中使用连接电脑功能连接。
Stop Server: 停止插件服务。
Run 运行当前编辑器的脚本。如果有多个设备连接,则在所有设备运行。
Rerun 停止当前文件对应的脚本并重新运行。如果有多个设备连接,则在所有设备重新运行。
Stop 停止当前文件对应的脚本。如果有多个设备连接,则在所有设备停止。
StopAll 停止所有正在运行的脚本。如果有多个设备连接,则在所有设备运行所有脚本。
Save 保存当前文件到手机的脚本默认目录(文件名会加上前缀remote)。如果有多个设备连接,则在所有设备保存。
RunOnDevice: 弹出设备菜单并在指定设备运行脚本。
SaveToDevice: 弹出设备菜单并在指定设备保存脚本。
New Project(新建项目):选择一个空文件夹(或者在文件管理器中新建一个空文件夹),将会自动创建一个项目
Run Project(运行项目):运行一个项目,需要Auto.js 4.0.4Alpha5以上支持
Save Project(保存项目):保存一个项目,需要Auto.js 4.0.4Alpha5以上支持
三、基本语法
1、变量-var
语法:var 变量名=值;
var 变量名=new 数据类型(传入值);
如声明数组d:var d=new Array();
声明变量a:var a= 10;
2、输出
日志输出:
log(要输出的内容);
console.verbose("要输出的内容");颜色为灰色,一般用来打印不重要内容。
console.info("要输出的内容");颜色为绿色,一般用来打印运行信息。
console.warn("要输出的内容");颜色为蓝色,一般用来打印运行警报。
console.error("要输出的内容");颜色为红色,一般用来打印运行报错信息。
气泡输出:
toast("要输出内容");
对话框输出:
alert("标题","内容");
3、变量赋值
同其它高级语言
4、注释
同c++
//注释一行
/*注释
一块*/
5、if语句
同c++
else if同c++
switch case同c++
6、while循环
同c++
7、for循环
同c++
8、break/continue
同c++
四、基本函数
1、click(x,y);
点击功能。然后把其中x换成你要点的坐标的横坐标,y换成你要点的坐标的纵坐标即可。
2、sleep();
能让脚本运行到这一步时,暂停一段时间,再继续运行下去。t改成需要暂停运行的毫秒数,1秒=1000毫秒 。可用sleep(10*60*1000);意思是暂停十分钟。
3、press(x,y,t);
长按操作,x和y分别为点击的坐标,t为点击时长。例如press(200,200,2000);意思为点击(200,200)位置2秒。
4、swipe(x1,y1,x2,y2,t);
意思为从(x1,y1)滑动到(x2,y2),滑动时间为t。
5、device.width/height;
device.width//获取屏幕分辨率宽度
device.height//获取屏幕分辨率高度
eg:
var a = device.width; //将分辨率宽度赋值给a
toast(a); //气泡输出a的值
6、setScreenMetrics(width,height);
设置脚本坐标点击所适合的屏幕宽高。如果脚本运行时,屏幕宽度不一致会自动放缩坐标。这个功能可以设置屏幕上坐标点击的等比缩放效果。
传入值width为要修改到的宽度,单位像素,height为要修改到的高度,单位像素。
假如你的手机分辨率200*200,然后你手机上屏幕中央有个按钮,你写了个click点击坐标100*100的地方,正好是你手机的中央,能点到这个按钮。然后你发给别人用,别人手机分辨率400*400,结果点了100*100就没有点到。虽然把坐标乘上分辨率比值就能达到效果,但加这一行代码,明显方便了不少。加了setScreenMetrics(200,200);在代码开头后,对于该脚本中的点击命令,会把使用者的手机分辨率看成200*200,也就是运行click(100,100);时,会点击到屏幕中央。
7、console.show();
显示控制台。这会显示一个控制台的悬浮窗(需要悬浮窗权限)。打印到日志的内容也会在控制台上显示,控制台还可以输入信息,调整大小等,非常适合调试代码。
8.console.rawInput(data);
运行这段代码时,程序会进入等待状态,控制台内的输入框,可以打印信息内容,直到点击确定,可以把输入框内的信息返回。
9.dialogs.confirm(title,content);
这个功能会弹出个选择对话框,下面有确定和取消两个按钮,点击确定会返回true,点击取消会返回false。使用简单,可以自己尝试。
title和content都为字符串类型。分别设置为对话框的标题和内容的文字。
10.engines.execScriptFile(path);
通过脚本文件路径,用一个脚本,启动另一个脚本,path是字符串是文件保存的路径,比如从手机sd卡开始找文件夹就用/sdcard/文件夹名/....../文件名.js或者如果想直接找与自己脚本同一文件夹下的脚本文件,就用./脚本名.js表示同一文件夹下的路径。相对路径还有别的功能可以自己百度。
11.engines.stopAll();
停止所有在运行的脚本文件,包括脚本自身。
12.exit();
停止当前脚本,关闭前记得释放需要释放资源,该功能对悬浮窗等无效。
13.app.launchApp(appName);
appName要打开的app名
通过应用名称启动应用。如果该名称对应的应用不存在,则返回false; 否则返回true。如果该名称对应多个应用,则只启动其中某一个。该函数也可以作为全局函数使用。
14.app.launch(packageName);
通过包名启动app。包名可以在悬浮窗设置中查看到,也可以用app.getPackageName(appName);通过输入应用名获取到。
15.app.uninstall(packageName);
通过包名卸载app,会有确认提示框。包名如上。
16.app.openUrl(url);
打开浏览器,并打开指定网址的网站,如果没浏览器,会抛出ActivityNotException报错信息。
17.back();
返回。模仿手机返回键效果。
18.home();
桌面。模仿手机主屏幕键效果。
19.random(min,max);
随机数,随机生成min和max之间的一个整数。输入min最小数,max最大数。 比如random(0,2);返回0,1,2中任意一个。
20.toastLog(message);
相当于toast(message);log(message)。显示信息message并在控制台中输出。把气泡输出和打印输出结合,提高代码简洁度。message输入要打印的信息。
21.device.vibrate(millis);
让手机振动输入millis为要振动的时间,单位是毫秒,比如振动一秒的代码为:device.vibrate(1000);
22.device.keepScreenOn(time);
让手机屏幕保持常亮,输入要保持常亮的时间time单位是毫秒,不输入则为永远。
23.setClip(text);
设置手机剪贴板的内容,输入要设置的文字text字符串。
24.getClip()
获取手机剪贴板内容,返回手机剪贴板上的文字,字符串。
五、自定义函数
1、function
function 代码名(){
代码块内容;
}
2、return
函数可以只有运行内容,但是我们也可以让他有返回内容。比如说在我们需要获取到函数运行的结果,或者快速停止函数的时候,我们都会用到return来返回。
3、同c++,函数可重载
六、例子
最后给个简单应用例子
auto.waitFor();//申请无障碍,如果没开启权限,跳转到无障碍;如果开启权限,继续运行
var height = device.height;//将设备分辨率高度赋值给height变量
var width = device.width;
toast("设备宽" + width + "\n" + "设备高" + height + "\n" + "手机型号" + device.model + "\n安卓版本" + device.release)//气泡输出设备信息
setScreenMetrics(width, height);//设置脚本坐标点击所适合的屏幕宽高
var a=10;//声明变量a
var b= 15;//声明变量b
if(a==b) toast("a等于b");//if判断
else toast("a不等于b" + "\n" + "a=" + a + " , b=" + b);
console.show();//控制台悬浮窗
log(a);//悬浮窗输出a
log(b);
device.vibrate(500);//设备震动
back();//返回
logabc();//自定义函数
function logabc()//自定义函数在控制台输出a,b,c
{
log("a");
log("b");
log("c");
}
auto.js可以实现很多功能,自己想象。
边栏推荐
- [exercise-7] (UVA 10976) fractions again?! (fraction split)
- 入门C语言基础问答
- Research Report of peripheral venous catheter (pivc) industry - market status analysis and development prospect prediction
- Opencv learning log 16 paperclip count
- TCP的三次握手与四次挥手
- Research Report on market supply and demand and strategy of geosynthetics industry in China
- SSM框架常用配置文件
- JS调用摄像头
- CEP used by Flink
- MySQL授予用户指定内容的操作权限
猜你喜欢
VS2019初步使用
渗透测试 ( 2 ) --- 渗透测试系统、靶机、GoogleHacking、kali工具
B - 代码派对(女生赛)
X-forwarded-for details, how to get the client IP
Penetration test (7) -- vulnerability scanning tool Nessus
C语言数组的概念
Penetration test (8) -- official document of burp Suite Pro
数据在内存中的存储&载入内存,让程序运行起来
Record of force deduction and question brushing
STM32 how to use stlink download program: light LED running light (Library version)
随机推荐
Alice and Bob (2021牛客暑期多校训练营1)
[exercise-7] crossover answers
[exercise-6] (PTA) divide and conquer
Research Report of peripheral venous catheter (pivc) industry - market status analysis and development prospect prediction
洛谷P1102 A-B数对(二分,map,双指针)
信息安全-安全编排自动化与响应 (SOAR) 技术解析
b站 实时弹幕和历史弹幕 Protobuf 格式解析
HDU-6025-Coprime Sequence(女生赛)
Opencv learning log 15 count the number of solder joints and output
【练习-3】(Uva 442)Matrix Chain Multiplication(矩阵链乘)
X-forwarded-for details, how to get the client IP
Determine the Photo Position
区间和------离散化
【练习-11】4 Values whose Sum is 0(和为0的4个值)
VS2019初步使用
Accounting regulations and professional ethics [2]
China's salt water membrane market trend report, technological innovation and market forecast
信息安全-史诗级漏洞Log4j的漏洞机理和防范措施
Cost accounting [13]
Accounting regulations and professional ethics [3]