Skip to content

eness-1/AutoX

 
 

Repository files navigation

Autox.js v7

GitHub Downloads (all assets, all releases) GitHub Issues or Pull Requests GitHub Actions Workflow Status GitHub Release Codacy Badge

English Document

简介

Fork 说明

本仓库基于上游 AutoX 项目继续维护,当前 fork 在保留原有功能和结构的基础上,补充了一些面向本地开发与 MCP 集成的调整,主要包括:

  • 优化 MCP 服务启动流程与日志输出,补充错误捕获、状态提示和更清晰的请求处理逻辑。
  • 调整 MCP 相关 Service / Manifest 配置,改进前台服务权限与进程行为,提升运行稳定性。
  • 调整 AutoJs 初始化时序,避免重复初始化带来的异常,并让主进程中的启动逻辑更明确。
  • 补充适用于本地环境的 build.sh 构建脚本,同时更新部分 Gradle / Ktor 相关配置,方便在 fork 基础上继续开发与打包。

如果你正在使用本 fork,请优先参考这里的提交记录与源码实现,了解这些定制改动是否符合你的使用场景。

一个支持无障碍服务的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:

Autox.js下载地址:

releases
如果下载过慢可以右键复制 Release Assets 中APK文件的链接地址,粘贴到 http://toolwa.com/github/ 等github加速网站下载

APK版本说明:

目前仅提供一下两种版本

  • arm64-v8a: 64位ARM设备(主流旗舰机)
  • mini-arm64-v8a: 移除一些非必要资源版本,可以在使用时按需下载

特性

  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,可以分析界面层次和范围、获取界面上的控件信息的

本软件与按键精灵等软件不同,主要区别是:

  1. Auto.js主要以自动化、工作流为目标,更多地是方便日常生活工作,例如启动游戏时自动屏蔽通知、一键与特定联系人微信视频(知乎上出现过该问题,老人难以进行复杂的操作和子女进行微信视频)等
  2. Auto.js兼容性更好。以坐标为基础的按键精灵、脚本精灵很容易出现分辨率问题,而以控件为基础的Auto.js则没有这个问题
  3. Auto.js执行大部分任务不需要root权限。只有需要精确坐标点击、滑动的相关函数才需要root权限
  4. Auto.js可以提供界面编写等功能,不仅仅是作为一个脚本软件而存在

v7版本新增功能特性🎉

  • 全新基于Material Design 3的ui界面
  • 支持Shizuku功能并且能够运行嵌入式脚本,从而能够动态调试基于Shizuku的api而无需频繁构建调试apk来测试Shizuku功能
  • 引入新的nodejs引擎,支持运行大量来自npm软件包,同时能够与java交互
  • 迁移大量模块使用ts编写并添加类型申明,支持使用ts编写脚本并获得更全面的类型提示
  • 全新基于Vue3和Jetpack Compose的ui框架,让你可以使用vue3编写数据响应式的Material Design 3界面
  • 新一代基于nodejs的api(简称v7 api),提供大量非阻塞式的功能模块(完善中)
  • 完善app打包功能和签名管理,支持打包nodejs引擎脚本,支持特殊权限请求配置
  • Rhino升级至v1.8.0稳定版,支持更多es6+语法

示例

可在这里查看一些示例,或者直接在应用内查看和运行。

编译相关:

环境要求:java版本为17

命令说明:在项目根目录下运行命令,如果使用 Windows powerShell < 7.0,请使用包含 ";" 的命令

从7.0版本开始,构建之前,需要运行以下命令编译js模块,确保你已经安装了nodejs 20+

./gradlew autojs:buildJsModule

仅需运行一次,若更改了模块代码需再次运行获得更新

构建文档
./gradlew app:buildDocs

仅需运行一次,若更改了文档需再次运行获得更新

本地安装调试版本到设备:
./gradlew app:buildDebugTemplateApp && ./gradlew app:assembleV7Debug && ./gradlew app:installV7Debug
#
./gradlew app:buildDebugTemplateApp ; ./gradlew app:assembleV7Debug ; ./gradlew app:installV7Debug

生成的调试版本APK文件在 app/build/outputs/apk/v6/debug 下,使用默认签名

本地编译发布版本:
./gradlew app:buildTemplateApp && ./gradlew app:assembleV7
#
./gradlew app:buildTemplateApp ; ./gradlew app:assembleV7

生成的是未签名的APK文件,在 app/build/outputs/apk/v6/release 下,需要签名后才能安装

本地 Android Studio 运行调试版本到设备:

先运行以下命令:

./gradlew app:buildDebugTemplateApp

再点击 Android Studio 运行按钮

本地 Android Studio 编译发布版本并签名:

先运行以下命令:

./gradlew app:buildTemplateApp

再点击 Android Studio 菜单 "Build" -> "Generate Signed Bundle /APK..." -> 勾选"APK" -> "Next" -> 选择或新建证书 -> "Next" -> 选择"v7Release" -> "Finish" 生成的APK文件,在 app/v7/release 下

测试

目前为autojs模块中添加了部分脚本功能测试,如需运行测试请参考以下步骤

  1. 准备一台安卓设备并使用adb连接到电脑
  2. 使用最新版Android Studio完成一次模块构建./gradlew autojs:assemble
  3. 打开autojs/src/androidTest目录下的测试类
  4. 点击类名旁边的运行按钮开始测试
  5. 随后可能因设备而异需要在手机上点击允许测试apk安装

About

A UiAutomator on android, does not need root access(安卓平台上的JavaScript自动化工具)

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 43.7%
  • Java 22.3%
  • Kotlin 22.2%
  • HTML 6.0%
  • C++ 3.0%
  • TypeScript 2.5%
  • Other 0.3%