{"id":21031182,"url":"https://github.com/tonyjiangwj/autoscriptbase","last_synced_at":"2025-04-04T16:16:39.307Z","repository":{"id":37769404,"uuid":"258793955","full_name":"TonyJiangWJ/AutoScriptBase","owner":"TonyJiangWJ","description":"AutoJS项目框架，用于快速构建自动化项目","archived":false,"fork":false,"pushed_at":"2024-04-12T09:06:15.000Z","size":32569,"stargazers_count":549,"open_issues_count":1,"forks_count":162,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-03-28T15:11:12.156Z","etag":null,"topics":["autojs","autoscript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TonyJiangWJ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-25T14:20:40.000Z","updated_at":"2025-03-28T02:52:13.000Z","dependencies_parsed_at":"2024-11-19T12:49:38.808Z","dependency_job_id":null,"html_url":"https://github.com/TonyJiangWJ/AutoScriptBase","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyJiangWJ%2FAutoScriptBase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyJiangWJ%2FAutoScriptBase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyJiangWJ%2FAutoScriptBase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TonyJiangWJ%2FAutoScriptBase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TonyJiangWJ","download_url":"https://codeload.github.com/TonyJiangWJ/AutoScriptBase/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247208183,"owners_count":20901570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autojs","autoscript"],"created_at":"2024-11-19T12:25:21.498Z","updated_at":"2025-04-04T16:16:39.299Z","avatar_url":"https://github.com/TonyJiangWJ.png","language":"JavaScript","readme":"[![GitHub forks](https://img.shields.io/github/forks/TonyJiangWJ/AutoScriptBase?style=flat-square)](https://github.com/TonyJiangWJ/AutoScriptBase/forks)\n[![GitHub stars](https://img.shields.io/github/stars/TonyJiangWJ/AutoScriptBase?style=flat-square)](https://github.com/TonyJiangWJ/AutoScriptBase/stargazers)\n[![GitHub issues](https://img.shields.io/github/issues/TonyJiangWJ/AutoScriptBase?style=flat-square)](https://github.com/TonyJiangWJ/AutoScriptBase/issues)\n[![Page Views Count](https://badges.toozhao.com/badges/01HV8RWXME6R30S0AHH5SZV0YE/green.svg)](https://badges.toozhao.com/stats/01HV8RWXME6R30S0AHH5SZV0YE \"Get your own page views count badge on badges.toozhao.com\")\n\n# 简介\n\n- 本项目是用于快速构建AutoJS自动化脚本项目的模板框架\n- 基于webpack打包编译的版本见: [AutoScriptWB](https://github.com/TonyJiangWJ/AutoScriptWB)\n- 目前已实现的功能如下：\n  - 图形化配置，基于Vue开发的可视化界面 `可视化配置`，适合无安卓开发基础的前端人员编写界面\n  - 多脚本执行调度，防止多个不同脚本抢占前台 `RunningQueueDispatcher`\n  - 封装了支持多脚本锁的 `LockableStorage`，阻塞写入并返回写入成功与否，达到锁互斥的目的\n  - 封装了基于文本、ID控件正则查找工具 `WidgetUtils`，支持控件等待，批量获取匹配控件等等\n  - 日志工具 `LogUtils`，可以保存日志到文件，支持日志级别 error\\warn\\info\\log\\debug，不同级别日志控制台中不同颜色显示，且开启日志文件后写入到不同的文件中。\n    - 日志支持同步写入文件和异步写入文件两种方式，写这个仅仅是想要实现双缓冲异步写入这么个东西\n    - 异步方式的日志文件不是立马刷新到文件的，在脚本完全执行完毕之后才会完全写入\n    - 因此如果需要性能则选择启用异步方式，否则使用同步就行。\n  - 日志文件查看工具 `查看日志.js` 可以查看当前脚本执行时所创建的日志信息 用于分析问题\n  - 支持 `github release api` 的脚本手动更新功能，支持自动检测更新，如需自动执行更新可以修改相关代码实现\n  - 支持自动判断Root和无障碍的自动化执行操作 `Automator`\n  - 封装了一个文本悬浮窗工具 `FloatyUtil`\n  - 支持自动解锁设备，也支持扩展自定义解锁\n  - 支持模拟手势自动锁定屏幕，同时支持扩展自定义锁屏代码\n  - 支持支付宝手势解锁\n  - 支持SQLite\n  - 支持本地OCR，`PaddleOCR` `MlKitOCR`\n  - 支持运行YOLO模型 `YoloDetectionUtil`\n  - 支持发送消息通知 `Notification`\n  - 支持通过代码添加定时任务 `Timers` 来自作者 [SuperMonster003](https://github.com/SuperMonster003)\n  - 支持自动点击授权截图权限 `TryRequestScreenCapture` 来自作者 [SuperMonster003](https://github.com/SuperMonster003)\n  - 支持配置信息导入和导出以及配置信息加密\n  - 支持通过ADB授权之后自动开启无障碍功能，具体如何使用ADB请自行Google或Baidu。不同的软件请自行替换包名: Pro版为 `org.autojs.autojspro` 可以通过 `context.getPackageName()` 获取\n\n  ```shell\n  adb shell pm grant org.autojs.autojs android.permission.WRITE_SECURE_SETTINGS\n  ```\n\n  - [ADB的详细使用介绍](./resources/doc/ADB授权脚本自动开启无障碍权限.md)\n  - 封装了常用方法 `CommonFunction` 如保存运行时数据，倒计时延迟等等\n  - `lib/autojs-tools.dex` 中封装了更新用的一些Java方法，用于优化脚本执行性能，源码见[auto-js-tools](https://github.com/TonyJiangWJ/auto-js-tools)\n  - 执行 `unit/获取当前页面的布局信息.js` 可以查看当前页面中的控件文本以及id信息 方便开发脚本\n- 具体使用详见各个js文件中的说明信息\n\n## 目前基于此项目实现的脚本\n\n- [蚂蚁森林脚本传送门](https://github.com/TonyJiangWJ/Ant-Forest)\n- [蚂蚁庄园脚本传送门](https://github.com/TonyJiangWJ/Ant-Manor)\n- [聚合签到脚本传送门](https://github.com/TonyJiangWJ/Unify-Sign)\n\n## 开发说明\n\n- 1. 下载本仓库\n- 2. 修改config.js中的 `CONFIG_STORAGE_NAME` 和 `PROJECT_NAME`\n\n  ```javascript\n    // 不同项目需要设置不同的storageName，不然会导致配置信息混乱\n    let CONFIG_STORAGE_NAME = 'autoscript_version'\n    let PROJECT_NAME = 'AutoJS 脚手架'\n  ```\n\n- 3. 开发一个主业务逻辑代码，替换 `main.js` 中的 `mainLoop()` 方法\n  比如创建 `core/MainRunner.js` 内容参考如下\n\n  ```javascript\n    function MainRunner() {\n\n      this.exec = function () {\n        // 执行主要业务逻辑\n      }\n    }\n    module.exports = new MainRunner()\n  ```\n\n  再在 `main.js` 中调用:\n\n  ```javascript\n    let mainExecutor = require('./core/MainExecutor.js')\n\n    //....main.js 中的共有代码可以酌情修改 或者直接不动也可以\n\n    // 开发模式不包裹异常捕捉，方便查看错误信息\n    if (config.develop_mode) {\n      mainExecutor.exec()\n    } else {\n      try {\n        mainExecutor.exec()\n      } catch (e) {\n        commonFunctions.setUpAutoStart(1)\n        errorInfo('执行异常, 1分钟后重新开始' + e)\n        commonFunctions.printExceptionStack(e)\n      }\n    }\n\n    //....\n\n  ```\n\n- 4. 将修改完成后的代码带文件夹全部放到手机根目录`/脚本/`下 如 `/脚本/AutoScriptBase/`\n- 5. 打开AutoJS软件，下拉刷新就能看到`AutoScriptBase`，点击进入然后运行 `main.js` 即可\n  - 5.1 脚本执行依赖于无障碍服务，请在自动弹出界面中打开AutoJS的无障碍权限，或者直接通过ADB赋权让脚本自动获取无障碍权限\n  - 5.2 另外其他需要的应用权限有 `后台弹出界面` `显示悬浮窗` `修改系统配置（可选）` 等\n\n## 开发辅助\n\n- 在线取色工具：[图片base64取色](https://tonyjiangwj.gitee.io/statics/pic_base64.html)\n- 在线多点取色路径生成: [多点取色辅助工具](https://tonyjiangwj.gitee.io/statics/multi_color_assist.html)\n- 解锁功能扩展辅助：`unit/获取锁屏界面控件信息.js`\n- 图片实时二值化等 `test/visual_test/可视化测试工具.js` 目前只有一个功能，按运行后的提示来操作就行\n- 可视化配置工具，基于webvie和vue框架实现，H5内容在vue_configs下，新增配置项可以只修改`vue_configs/js/commponets/configuration.js` 和 `config.js` 两个文件，其他作为公用的可以不关注。如果会vue那么可以随你所想进行修改\n- 控件可视化辅助工具 电脑上浏览器打开 控件可视化/index.html 按界面提示操作\n- ![96f32786b6142f8bb4e44f7b1706afcb_689323151505_v_1667630351524368_1](https://user-images.githubusercontent.com/11325805/200108292-4097b77b-954f-4739-b80a-b10281d93b8c.gif)\n\n## lib下的js说明\n\n- [WIKI_FOR_LIBS](./resources/doc/WIKI_FOR_LIBS.md)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonyjiangwj%2Fautoscriptbase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftonyjiangwj%2Fautoscriptbase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonyjiangwj%2Fautoscriptbase/lists"}