# 简介
- 本项目是用于快速构建AutoJS自动化脚本项目的模板框架,基于webpack进行编译打包,因此需要在电脑上编辑并编译才能使用。纯AutoJS版本的见[AutoScriptBase](https://github.com/TonyJiangWJ/AutoScriptBase)
- 相对于AutoScriptBase,本项目的优势在于,可以将脚本编译成独立的文件,可以对其进行混淆和加密。比如配合加解密插件(暂不开源)来保护自己的代码,即便不加密其混淆后的代码也是很难被人盗用编辑的。
- autojs-webpack打包的插件和loader均借鉴自:[https://github.com/snailuncle/webpack-autojs](https://github.com/snailuncle/webpack-autojs),优化了对webpack5的兼容和部分语法的适配。
- 目前已实现的功能如下:
- 图形化配置,基于Vue开发的可视化界面 `可视化配置`,适合无安卓开发基础的前端人员编写界面
- 多脚本执行调度,防止多个不同脚本抢占前台 `RunningQueueDispatcher`
- 封装了支持多脚本锁的 `LockableStorage`,阻塞写入并返回写入成功与否,达到锁互斥的目的
- 封装了基于文本、ID控件正则查找工具 `WidgetUtils`,支持控件等待,批量获取匹配控件等等
- 日志工具 `LogUtils`,可以保存日志到文件,支持日志级别 error\warn\info\log\debug,不同级别日志控制台中不同颜色显示,且开启日志文件后写入到不同的文件中。
- 日志支持同步写入文件和异步写入文件两种方式,写这个仅仅是想要实现双缓冲异步写入这么个东西
- 异步方式的日志文件不是立马刷新到文件的,在脚本完全执行完毕之后才会完全写入
- 因此如果需要性能则选择启用异步方式,否则使用同步就行。
- 日志文件查看工具 `查看日志.js` 可以查看当前脚本执行时所创建的日志信息 用于分析问题
- 支持 `github release api` 的脚本手动更新功能,支持自动检测更新,如需自动执行更新可以修改相关代码实现
- 支持自动判断Root和无障碍的自动化执行操作 `Automator`
- 封装了一个文本悬浮窗工具 `FloatyUtil`
- 支持自动解锁设备,也支持扩展自定义解锁
- 支持模拟手势自动锁定屏幕,同时支持扩展自定义锁屏代码
- 支持支付宝手势解锁
- 支持通过代码添加定时任务 `Timers` 来自作者 [SuperMonster003](https://github.com/SuperMonster003)
- 支持自动点击授权截图权限 `TryRequestScreenCapture` 来自作者 [SuperMonster003](https://github.com/SuperMonster003)
- 支持配置信息导入和导出以及配置信息加密
- 支持通过ADB授权之后自动开启无障碍功能,具体如何使用ADB请自行Google或Baidu。不同的软件请自行替换包名: Pro版为 `org.autojs.autojspro` 可以通过 `context.getPackageName()` 获取
```shell
adb shell pm grant org.autojs.autojs android.permission.WRITE_SECURE_SETTINGS
```
- [ADB的详细使用介绍](https://github.com/TonyJiangWJ/AutoScriptBase/blob/master/resources/doc/ADB%E6%8E%88%E6%9D%83%E8%84%9A%E6%9C%AC%E8%87%AA%E5%8A%A8%E5%BC%80%E5%90%AF%E6%97%A0%E9%9A%9C%E7%A2%8D%E6%9D%83%E9%99%90.md)
- 封装了常用方法 `CommonFunction` 如保存运行时数据,倒计时延迟等等
- `lib/autojs-tools.dex` 中封装了更新用的一些Java方法,用于优化脚本执行性能,源码见[auto-js-tools](https://github.com/TonyJiangWJ/auto-js-tools)
- 执行 `独立工具/布局分析悬浮窗.js` 可以查看当前页面中的控件文本以及id信息 方便开发脚本
- 具体使用详见各个js文件中的说明信息
## 目前基于此项目实现的脚本
- 暂无
## 纯AutoJS版本
- [AutoScriptBase](https://github.com/TonyJiangWJ/AutoScriptBase)
## 开发说明
### 首先安装node环境
- 前往 [Node.js下载](https://nodejs.org/en/download/) 下载适合自己系统的Node.js并安装
- 安装完在 `终端/命令提示符` 中运行: `npm -v` 检查是否安装成功
## 代码编写
- 1. 下载本仓库
- 2. 进入本仓库代码所在文件夹,运行 `npm install` 自动下载依赖。
- 3. 修改 `src/simpleConfig.js` 中的 `CONFIG_STORAGE_NAME` 和 `PROJECT_NAME`
```javascript
// 不同项目需要设置不同的storageName,不然会导致配置信息混乱
let CONFIG_STORAGE_NAME = 'autoscript_version'
let PROJECT_NAME = 'AutoJS 脚手架'
```
- 4. 开发一个主业务逻辑代码,替换 `main.js` 中的 `mainLoop()` 方法
比如创建 `src/core/MainRunner.js` 内容参考如下
```javascript
function MainRunner() {
this.exec = function () {
// 执行主要业务逻辑
}
}
module.exports = new MainRunner()
```
再在 `main.js` 中调用:
```javascript
let mainExecutor = require('./core/MainExecutor.js')
//....main.js 中的共有代码可以酌情修改 或者直接不动也可以
// 开发模式不包裹异常捕捉,方便查看错误信息
if (config.develop_mode) {
mainExecutor.exec()
} else {
try {
mainExecutor.exec()
} catch (e) {
commonFunctions.setUpAutoStart(1)
errorInfo('执行异常, 1分钟后重新开始' + e)
commonFunctions.printExceptionStack(e)
}
}
//....
```
- 4. 修改完毕后,运行 `npm run dev` 生成未压缩的代码,然后将 `dist` 下的文件复制到手机根目录 `脚本` 文件夹下,如 `/脚本/AutoScriptBaseWP/`。
- 5. 在手机端调试验证功能逻辑是否正常,确认需要发布时,运行 `npm run build` 生成压缩后的代码。同样复制 `dist` 下的文件到手机里即可。
- 6. 打开AutoJS软件,下拉刷新就能看到`AutoScriptBaseWP`,点击进入然后运行 `main.js` 即可
- 5.1 脚本执行依赖于无障碍服务,请在自动弹出界面中打开AutoJS的无障碍权限,或者直接通过ADB赋权让脚本自动获取无障碍权限
- 5.2 另外其他需要的应用权限有 `后台弹出界面` `显示悬浮窗` `修改系统配置(可选)` 等
### 其他说明
- `npm run build` 时默认启用混淆代码,所使用的插件为 `javascript-obfuscator`,具体配置见obfusConfig.js,配置参数详情见官方文档。如不需要自行剔除插件即可
- 每个独立入口文件都需要定义在 `webpack.config.js` 中,将会在dist中独立打包成一个文件,具体配置参考如下:
```javascript
entry: {
"可视化配置": './src/可视化配置.js',
'handler/CrashCatcher': './src/lib/prototype/CrashCatcher.js',
'main': './src/main.js',
'独立工具/布局分析悬浮窗': './src/独立工具/布局分析悬浮窗.js',
'独立工具/获取当前页面的布局信息': './src/独立工具/获取当前页面的布局信息.js',
'独立工具/挂起所有脚本': './src/独立工具/挂起所有脚本.js',
'独立工具/灰度取色': './src/独立工具/灰度取色.js',
'update/检测更新': './src/update/检测更新.js',
'update/历史版本下载': './src/update/历史版本下载.js',
},
```
- 目前未对打包编译的文件进行拆分,因此上述独立文件体积都会比较大
## 发布更新
- 修改 `src/simpleConfig.js` 中的 `github_latest_url`,改为实际你自己仓库的release地址即可 参考如下:
```javascript
// github release url 用于检测更新状态
github_latest_url: 'https://api.github.com/repos/TonyJiangWJ/AutoScriptWB/releases/latest',
```
- 需发布时,可以参考本项目,创建一个release分支,只保存 `npm run build` 编译生成的 `dist` 下的内容。然后在github上对该分支创建发布包即可,后续运行 `update/检测更新.js` 便可以实现在线更新。
- 或者也可将源码仓库和发布仓库拆分开,发布仓库保存 `dist` 下的内容,修改上述配置文件中的 `github_
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
webpack方式打包编译AutoJS脚本的基础框架,用于快速编写混淆加密的代码.zip (112个子文件)
.babelrc 214B
vuetify.min.css 524KB
materialdesignicons.min.css 218KB
style.css 8KB
autojs-common.dex 43KB
download.dex 28KB
download.dex 28KB
encrypt.dex 9KB
webview-bridge.dex 1KB
.gitignore 138B
index.html 35KB
log-read.html 27KB
loading.html 12KB
index.html 4KB
error.html 3KB
vuetify.js 1.57MB
img.js 795KB
data.js 681KB
vue.js 336KB
BaseCommonFunctions.js 64KB
crypto-js.js 47KB
灰度取色.js 33KB
common.js 32KB
RunningQueueDispatcher.js 24KB
CommonConfigs.js 19KB
FloatyButton.js 19KB
BaseWidgetUtils.js 18KB
LogUtils.js 16KB
BridgeHandler.js 15KB
UpdateChecker.js 15KB
OpenCvUtil.js 14KB
inspector.js 14KB
Unlock.js 13KB
PaddleOcrUtil.js 12KB
ResourceMonitor.js 12KB
Automator.js 10KB
SQLiteUtil.js 9KB
__mDialogs__.js 9KB
PrepareWebView.js 9KB
布局分析悬浮窗.js 9KB
VisualHelper.js 9KB
FileUtils.js 8KB
Timers.js 8KB
__$crypto__.js 6KB
StorageFactory.js 6KB
__$zip__.js 5KB
BaiduOcrUtil.js 5KB
可视化配置.js 5KB
FloatyUtil.js 5KB
main.js 5KB
index.js 4KB
simpleConfig.js 4KB
app.js 3KB
查看日志.js 3KB
CallStateListener.js 3KB
Base64.js 3KB
webpack.config.js 3KB
CapturePermissionResolver.js 3KB
ProcessShare.js 3KB
BaseOcrUtil.js 3KB
webview_bridge.js 3KB
重载备份的定时任务.js 3KB
CrashCatcher.js 3KB
MlkitOcrUtil.js 2KB
PushPlusUtil.js 2KB
About.js 2KB
jsLoader.js 2KB
RequestScreenCapture.js 2KB
挂起所有脚本.js 2KB
ui-file-plugin.js 2KB
AutoJSRemoveDexResolver.js 2KB
obfusConfig.js 2KB
MainExecutor.js 2KB
DateUtil.js 1KB
DevelopConfig.js 1KB
ExternalUnlockDevice-demo.js 1KB
AesUtil.js 1KB
MyEngines.js 1KB
PrintExceptionStack.js 1KB
AlipayUnlocker.js 1KB
清空所有的定时任务.js 1KB
LockableStorage.js 1KB
Index.js 1008B
LocalOcrUtil.js 994B
CommonFunction.js 950B
__$power_manager__.js 949B
备份所有的定时任务.js 904B
routerIndex.js 819B
store.js 791B
__$base64__.js 766B
secureConfig.js 753B
ProjectCommonFunctions.js 695B
ProjectWidgetUtils.js 607B
init_if_needed.js 571B
killMyDuplicator.js 559B
LockScreen-demo.js 399B
WidgetUtils.js 386B
检测更新.js 251B
binder.js 176B
历史版本下载.js 96B
共 112 条
- 1
- 2
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于SHT25温湿度传感器、FREERTOS、STM32F103C8T6、LCD1602温湿度采集显示系统proteus仿真设计
- C# 屏幕放大取色器 随时随地获取屏幕像素颜色
- 下载安装这个软件.apk
- 【数据集详细解释及案例分析】数据集详细解释及案例分析
- 基于SHT71温湿度传感器、STM32F103C8T6、LCD1602温湿度采集显示系统proteus仿真设计
- 基于TH02温湿度传感器、STM32F103C8T6、LCD1602、FREERTOS的温湿度采集系统proteus仿真设计
- 【TCP-IP协议详细解释及案例分析】TCP-IP协议详细解释及案例分析
- 一文搞懂 LSTM(长短期记忆网络).rar
- 【autosar简介及基本案例解析】autosar简介及基本案例解析
- java模拟斗地主洗牌发牌
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功