当前位置:网站首页>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可以实现很多功能,自己想象。

原网站

版权声明
本文为[帅帅气气的黑猫警长]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Hao_ge_666/article/details/112765887