编辑点评:不需要Root权限 的JavaScript 自动化软件
Autox.js是一款适用于安卓的JavaScript脚本编写工具,不需要root权限就可以使用,能实现自动化操作和快速开发。最新开源版本的使用体验更好,加入ui交互功能,多线程操作,支持ocr识别等,使得Autox.js更加强大和灵活,适合于各种场景下的自动化操作需求。
推荐理由
1.新增了网络请求模块,支持HTTP、WebSocket等多种协议;
2.支持多线程操作,可以同时运行多个脚本任务;
3.增强了UI交互能力,可以在界面上直接操作元素;
4.加入了OCR识别模块,可用于文字识别和图形识别等场景;
5.同时支持Node.js和浏览器端API,方便代码移植和跨平台使用。这些更新使得
软件亮点
1、由无障碍服务实现的简单易用的自动操作函数。
2、悬浮窗录制和运行。
3、更专业&强大的选择器API,提供对屏幕上的控件的寻找、遍历、获取信息、操作等。类似于Google的UI测试框架UiAutomator,您也可以把他当做移动版UI测试框架使用。
4、采用JavaScript为脚本语言,并支持代码补全、变量重命名、代码格式化、查找替换等功能,可以作为一个JavaScript IDE使用。
5、支持使用e4x编写界面,并可以将JavaScript打包为apk文件,您可以用它来开发小工具应用。
6、支持使用Root权限以提供更强大的屏幕点击、滑动、录制功能和运行shell命令。录制录制可产生js文件或二进制文件,录制动作的回放比较流畅。
7、提供截取屏幕、保存截图、图片找色、找图等函数。
8、可作为Tasker插件使用,结合Tasker可胜任日常工作流。
9、带有界面分析工具,类似Android Studio的LayoutInspector,可以分析界面层次和范围、获取界面上的控件信息。
Autox.js v6软件优势
Auto.js主要以自动化、工作流为目标,更多地是方便日常生活工作,例如启动游戏时自动屏蔽通知、一键与特定联系人微信视频(知乎上出现过该问题,老人难以进行复杂的操作和子女进行微信视频)等。
Auto.js兼容性更好。以坐标为基础的按键精灵、脚本精灵很容易出现分辨率问题,而以控件为基础的Auto.js则没有这个问题。
Auto.js执行大部分任务不需要root权限。只有需要精确坐标点击、滑动的相关函数才需要root权限。
Auto.js可以提供界面编写等功能,不仅仅是作为一个脚本软件而存在。
使用说明
一个支持无障碍服务的Android平台上的JavaScript 运行环境 和 开发环境,其发展目标是类似JsBox和Workflow。
本项目从hyb1996 autojs 获得,并命名为Autox.js (autojs 修改版本), 你现在看的是原4.1版本基础上的项目, 后面我们将针对项目本身如何开发、运行的进行介绍,欢迎更多开发者参与这个项目维护升级。hyb1996采用的 Mozilla Public License Version 2.0 +非商业性使用,出于多种因素考虑, 本产品采用 GPL-V2 许可证, 无论是其他贡献者,还是使用该产品,均需按照 MPL-2.0+非商业性使用 和 GPL-V2 的相关要求使用。
常见问题
本Autox.js能不能采用GPL-V2?
关于GPL-V2 应该很容易理解, 著名linux 采用该许可证。但是对于MPL-2.0 有非常多的文章都是停留在MPL-1.1 的版本,对非常多国内开发者造成困扰, 这一篇比较标准译文 有兴趣可以研究一下。
代码贡献者需要注意:
原文中没人声明license 即为MPL2.0 ,新加文件或修改(仅限于修你自己的)代码采用GPL-V2,需要做相关声明。
其他人使用Autox.js,做深度开发请注意
如果你使用了带有GPL-2.0 声明的代码 或编译出来的二进制。你需要开源你所有代码。
如果你仅使用了MPL-2.0 的东西,你需要开源你修改过的相关代码。
抛开本产品谈 开源和商业
开源不等于随意使用,开源也不等于禁止商用!
开源东西可以商用,但你需要按规定开源!
商用的产品可以是开源的,比如redhat!
不按开源协议使用开源产品,那可了解openwrt的来源,以及近几年国内的侵权案例!
关于其他人开发的js脚本,在这上面运行。是否需要遵循GPL-2.0进行开源
那是你的自由,不受这协议限制,如同linux 运行软件一样
使用本产品或autojs 产品是否可以商用?
本产品 能不能商用,取决于 原来autojs,因为目前很多功能和代码版权归autojs 所有。
autojs 能不能商用,取决于你对于附带的 “ 非商业性使用 ” 的理解和其法律效益。
反正本产品不会拿autojs 进行商用。
编译相关:
命令说明:在项目根目录下运行命令,如果使用 Windows powerShell < 7.0,请使用包含 ";" 的命令
更新日志
6.5.9更新
实现mqtt demo
依赖更新,kotlin升级到1.8.0
删除部分未使用Activity,bug修复
修复dialogs.build报错
6.5.8更新
调试器优化,升级target SDK到28(android9.0)
bug修复,截图优化
设置页面更新
修复打出的包崩溃问题,release下不启用内存泄漏检测
6.5.7更新
修复运行ui脚本存在的内存泄露
截图逻辑优化,使截图权限在所有脚本共享
添加离线文档选项
浏览器打开改为直接下载安装
修复“emit”报错
每次打开都是新任务,不受上一次打开文件内容的影响
6.5.4更新
换新编辑器
6.5.3更新
修复 Tasker插件功能
修复一处可能的内存泄露
优化底部导航切换时,已打开的文件目录保持不变,添加文档页面‘回到主页’按钮
修复模块exports导出null和undefined时报错,修复require('xxx')!==require('xxx.js')
修复JsBridge在非ui模式工作异常
修复setTimeout等函数传入仅一个额外参数且该参数为null时报错
修复部分设备编辑界面顶栏按钮重叠
6.4.1更新
Images.copy函数修复
添加JsBridge
添加node核心库buffer,events,stream,util
悬浮窗bug修复
新增异步http库:axios (实验性)
新增npm模块cheerio,用于处理html
提供java流的转换,buffer与java字节数组的转换
新增bluebird-co模块
定时器调用性能优化
新增同步转异步任务执行器
@Xiao-A-666
修复打包后访问资源文件出错的bug
新增隐藏启动页功能
6.3.8更新
修改加密解密bug
修改UI模式部分情况崩溃的问题
修改打包时没有替换资源文件的bug
6.3.7更新
引入documentfile支持,以便使用saf框架,更换Promise库为bluebird。支持更多特性。
使用kt重写悬浮窗并修复错误, 修复timers模块无法在其他java线程中使用。