最近需要一个手机自己点点点的需求,使用MacroDroid来做发现流程太多,一步一步操作起来太繁琐,而且不具有很强的可编辑性。于是想到了另一个可以手机自动化的软件Auto.js。他和IOS平台的快捷指令很像,但是又有着自己独特的优势。
Auto.js 是一个Android平台免费的自动化脚本运行软件。目前最新版本是4.1.1版本,处于停止维护的状态。https://github.com/hyb1996/Auto.js
Auto.js Pro是 Auto.js的升级收费版本。目前作者依然在开发维护。https://pro.autojs.org/
Autox.js是kkevsekk1大佬在Auto.js的基础上分支出来的版本,目前依然维护。http://doc.autoxjs.com/
由于一些黑产因素,原作者在Pro版本中限制了一些软件的使用,比如淘宝等。不过也有版本避开(自己百度)。如果想使用全功能版本的,就要使用免费开源版的最后一版
Auto.js 使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持 ES5 与部分 ES6 特性。
因为 Auto.js 是基于 JavaScript 的,学习 Auto.js 的 API 之前建议先学习 JavaScript 的基本语法和内置对象,可以使用教程前面的两个 JavaScript 教程链接来学习。
如果您想要使用 TypeScript 来开发,目前已经有开发者公布了一个可以把使用 TypeScript 进行 Auto.js 开发的工具,参见Auto.js DevTools。
如果想要在电脑而不是手机上开发 Auto.js,可以使用 VS Code 以及相应的 Auto.js 插件使得在电脑上编辑的脚本能推送到手机运行,参见Auto.js-VSCode-Extension。
本文档的章节大致上是以模块来分的,总体上可以分成"自动操作"类模块(控件操作、触摸模拟、按键模拟等)和其他类模块(设备、应用、界面等)。
"自动操作"的部分又可以大致分为基于控件和基于坐标的操作。基于坐标的操作是传统按键精灵、触摸精灵等脚本软件采用的方式,通过屏幕坐标来点击、长按指定位置模拟操作,从而到达目的。例如click(100, 200), press(100, 200, 500)等。这种方式在游戏类脚本中比较有可行性,结合找图找色、坐标放缩功能也能达到较好的兼容性。但是,这种方式对一般软件脚本却难以达到想要的效果,而且这种方式需要安卓 7.0 版本以上或者 root 权限才能执行。所以对于一般软件脚本(例如批量添加联系人、自动提取短信验证码等等),我们采用基于控件的模拟操作方式,结合通知事情、按键事情等达成更好的工作流。这些部分的文档参见基于控件的操作和基于坐标的操作。
由于Auto.js支持VSCode电脑编辑器,所以可以直接用VSCode编辑JS脚本,然后同步到手机运行。
客户端使用目前还维护的免费版本Autox.js,在VSCode中安装 Auto.js-VSCodeExt-Fixed 注意是Autox.js插件。然后安装提示安装完之后,就可以新建一个js文件编写了。支持的API操作都在http://doc.autoxjs.com/的文档里。
(Autox.js手机端)
VSCode界面