AutoJS
一个支持无障碍服务的 Android 平台上的 JavaScript IDE。Autojs 主要是基于安卓系统的无障碍服务,实现自动化操控和监控手机信息处理。web
特性:
由无障碍服务实现的简单易用的自动操做函数shell
悬浮窗录制和运行微信
更专业&强大的选择器 API,提供对屏幕上的控件的寻找、遍历、获取信息、操做等。相似于 Google 的 UI 测试框架 UiAutomator,您也能够把他当作移动版UI测试框架使用app
采用 JavaScript 为脚本语言,并支持代码补全、变量重命名、代码格式化、查找替换等功能,能够做为一个 JavaScript IDE 使用框架
支持使用 e4x 编写界面,并能够将 JavaScript 打包为 apk 文件,您能够用它来开发小工具应用编辑器
支持使用 Root 权限以提供更强大的屏幕点击、滑动、录制功能和运行 shell 命令。录制录制可产生js文件或二进制文件,录制动做的回放比较流畅函数
提供截取屏幕、保存截图、图片找色、找图等函数工具
可做为 Tasker 插件使用,结合 Tasker 可胜任平常工做流布局
带有界面分析工具,相似 Android Studio 的 LayoutInspector,能够分析界面层次和范围、获取界面上的控件信息测试
安装
免费版在网上搜索 autojs.apk,下载后便可安装,免费版已更新至 4.1.1Beta而且再也不更新。
最新版已经开始收费,下载地址:https://pro.autojs.org/
开启手机无障碍服务

在 某些版本 上打开音量上键中止全部脚本,防止死循环脚本(我所使用的版本上默认开启)
打开悬浮窗进行布局分析


编辑环境配置
autojs 软件提供了很是好的手机端编写支持,拥有强大的提示功能,基本上咱们在手机端进行编写也是很是温馨的。
同时有 VS Code 插件可提供基础的在桌面开发的功能。
免费版咱们下载:Auto.js-VSCodeExt

插件命令:
按 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.4 Alpha5 以上支持
Save Project(保存项目):保存一个项目,须要 Auto.js 4.0.4 Alpha5 以上支持
使用 vscode 进行开发
在命令面板选择 Start Server 启动服务,右下角会显示 Auto.js server running


将手机与电脑链接到同一个WiFi,查看电脑的 IP 地址。
在手机端 AutoJS 侧边菜单中选择远程调试,并输入电脑 IP,vscode 中会显示链接成功
AutoJS侧边栏设置

vscode 中建立 JS 文件,按 F5 或者选择 Run 命令,便可在手机端进行运行
在 vscode 命令面板中选择 Save,将自动发送并保存到手机上

经常使用命令及函数
auto.waitFor()
检查无障碍服务是否已经启用,若是没有启用则跳转到无障碍服务启用界面,并等待无障碍服务启动;当无障碍服务启动后脚本会继续运行。
app.launchApp(appName)
appName
{string} 应用名称
经过应用名称启动应用。若是该名称对应的应用不存在,则返回false; 不然返回true。若是该名称对应多个应用,则只启动其中某一个。
UiSelector.text(str)
str
{string} 控件文本返回 {UiSelector} 返回选择器自身以便链式调用
为当前选择器附加控件"text等于字符串str"的筛选条件。
控件的text(文本)属性是文本控件上的显示的文字,例如微信左上角的"微信"文本。
UiSelector.textContains(str)
str
{string} 要包含的字符串
为当前选择器附加控件"text须要包含字符串str"的筛选条件。
这是一个比较有用的条件,例如QQ动态页和微博发现页上方的"你们都在搜…."的控件能够用textContains("你们都在搜").findOne()
来获取。
bounds()
返回 Rect
返回控件在屏幕上的范围,其值是一个Rect对象
findOne(selector)
selector
UiSelector返回 UiOobject
根据选择器selector在该控件的子控件、孙控件…中搜索符合该选择器条件的控件,并返回找到的第一个控件;若是没有找到符合条件的控件则返回null
。
其余API请看官方文档。要注意控件的click函数不必定会生效,所以推荐使用全局点击click函数。
京东签到领京豆
开启 AutoJS 的悬浮窗
打开京东商城 APP
选择 AutoJS 悬浮窗的布局分析
选择布局分析
布局范围分析
点击领京豆
生成代码

查看 text、id、desc,也能够选择生成代码
上面咱们看到生成代码失败了,那么就要 查看控件信息,发现底下 text 属性为“领京豆”
而后咱们就能够在代码中使用text('领京豆')
,来获取这个控件了。
目前最新版的 AutoJS Pro 已是付费制了,37元永久免费,也但愿你们能支持做者,可是免费版的在网上依然能搜到,能够下载比较新的版本使用,基本上也能知足咱们不少需求。另外论坛已经中止更新了,可是咱们依然能够在上面搜索到一些脚本。
固然直接在 GitHub上就能够搜索到更多的脚本。
签到领京豆脚本已经上传到公号后台,请关注公众号,并回复:领京豆,获取源代码。
固然,也能够参考以前的这篇文章,直接利用 Tasker 天天定时去签到领取京豆。

本文分享自微信公众号 - AirPython(AirPython)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。