当前位置:网站首页>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可以实现很多功能,自己想象。
边栏推荐
- 7-1 懂的都懂 (20 分)
- 【练习-6】(PTA)分而治之
- C语言必背代码大全
- [exercise-5] (UVA 839) not so mobile (balance)
- 【练习-7】Crossword Answers
- Path problem before dynamic planning
- 【练习-5】(Uva 839)Not so Mobile(天平)
- frida hook so层、protobuf 数据解析
- 渗透测试 ( 5 ) --- 扫描之王 nmap、渗透测试工具实战技巧合集
- MySQL import database error [err] 1273 - unknown collation: 'utf8mb4_ 0900_ ai_ ci’
猜你喜欢

Penetration testing (5) -- a collection of practical skills of scanning King nmap and penetration testing tools

Information security - threat detection - Flink broadcast stream broadcaststate dual stream merging application in filtering security logs

渗透测试 ( 5 ) --- 扫描之王 nmap、渗透测试工具实战技巧合集

Matlab comprehensive exercise: application in signal and system

X-forwarded-for details, how to get the client IP

动态规划前路径问题优化方式

Information security - Analysis of security orchestration automation and response (soar) technology

7-1 懂的都懂 (20 分)

1010 things that college students majoring in it must do before graduation
![MySQL import database error [err] 1273 - unknown collation: 'utf8mb4_ 0900_ ai_ ci’](/img/e6/f4a696179282fe1f4193410c5a493a.png)
MySQL import database error [err] 1273 - unknown collation: 'utf8mb4_ 0900_ ai_ ci’
随机推荐
Perform general operations on iptables
Printing quality inspection and verification system Industry Research Report - market status analysis and development prospect forecast
Cost accounting [16]
C语言数组的概念
frida hook so层、protobuf 数据解析
基于web的照片数码冲印网站
Research Report of exterior wall insulation system (ewis) industry - market status analysis and development prospect prediction
Information security - threat detection engine - common rule engine base performance comparison
信息安全-威胁检测-flink广播流BroadcastState双流合并应用在过滤安全日志
Matlab comprehensive exercise: application in signal and system
Opencv learning log 15 count the number of solder joints and output
Alice and Bob (2021牛客暑期多校训练营1)
China earth moving machinery market trend report, technical dynamic innovation and market forecast
Nodejs+vue online fresh flower shop sales information system express+mysql
Penetration test (3) -- Metasploit framework (MSF)
nodejs爬虫
信息安全-安全编排自动化与响应 (SOAR) 技术解析
Information security - Epic vulnerability log4j vulnerability mechanism and preventive measures
China's earthwork equipment market trend report, technical dynamic innovation and market forecast
[exercise-4] (UVA 11988) broken keyboard = = (linked list)