From f3e04b9ca2e135f1623f1e06be1a9f2afaa98d55 Mon Sep 17 00:00:00 2001 From: SuperMonster003 Date: Wed, 1 Oct 2025 00:13:00 +0800 Subject: [PATCH] 6.7.0 - Alpha6 - Fine tuning --- .../sample/AutoJs6/基本信息 [v6.1.0+].js | 8 +- .../AutoJs6/强制 Root 检查 [v6.1.0+].js | 8 +- .../sample/HTTP/文件上传 [Legacy].js | 38 +- .../main/assets-app/sample/HTTP/文件下载.js | 2 +- .../main/assets-app/sample/HTTP/获取网页.js | 4 +- .../main/assets-app/sample/JavaScript/E4X.js | 10 +- .../sample/JavaScript/HelloWorld.js | 6 +- .../main/assets-app/sample/JavaScript/数字.js | 2 +- .../sample/OCR/PaddleOCR (内置API).js | 2 +- .../sample/OCR/PaddleOCR (原始类).js | 18 +- .../sample/OCR/PaddleOCR (截图识别).js | 20 +- .../assets-app/sample/Shell/冻结网易云音乐.js | 2 +- .../sample/Shell/结束所有后台进程.js | 2 +- .../sample/Shell/解冻并打开网易云音乐.js | 4 +- app/src/main/assets-app/sample/Shell/锁屏.js | 4 +- .../assets-app/sample/事件与监听/Toast监听.js | 10 +- .../assets-app/sample/事件与监听/按键监听.js | 28 +- .../assets-app/sample/事件与监听/触摸监听.js | 7 +- .../assets-app/sample/事件与监听/通知监听.js | 22 +- .../sample/事件与监听/长按返回退出当前程序.js | 20 +- .../sample/事件与监听/音量减键分析布局.js | 2 +- .../sample/事件与监听/音量键控制程序.js | 24 +- .../sample/任务/一次性任务 [v6.1.0+].js | 2 +- .../任务/意图 (Intent) 任务 [v6.1.0+].js | 4 +- .../sample/任务/每周任务 [v6.1.0+].js | 4 +- .../sample/任务/每日任务 [v6.1.0+].js | 2 +- .../sample/传感器/打印常用传感器信息.js | 74 +- .../sample/传感器/显示常用传感器信息.js | 78 +- .../sample/协程/UI模式中使用协程/main.js | 2 +- .../assets-app/sample/图像与颜色/区域找色1.js | 22 +- .../assets-app/sample/图像与颜色/区域找色2.js | 26 +- .../assets-app/sample/图像与颜色/图片处理.js | 103 +-- .../图像与颜色/基本颜色转换 [v6.1.0+].js | 4 +- .../sample/图像与颜色/实时显示触摸点颜色.js | 6 +- .../sample/图像与颜色/截图并保存.js | 6 +- .../sample/图像与颜色/找到QQ红点位置.js | 20 +- .../图像与颜色/找图/找出所有问号方块.js | 9 +- .../sample/图像与颜色/找图/找出马里奥.js | 7 +- .../assets-app/sample/图像与颜色/模糊找色.js | 18 +- .../assets-app/sample/图像与颜色/精确找色.js | 20 +- .../sample/图像与颜色/获取网络图片并保存.js | 8 +- .../sample/图像与颜色/颜色获取和检测.js | 24 +- .../sample/多线程/变量可见性实验.js | 8 +- .../sample/多线程/多线程按键监听.js | 22 +- .../sample/多线程/多线程简单示例.js | 29 +- .../sample/多线程/线程启动与关闭.js | 13 +- .../main/assets-app/sample/定时器/定时执行.js | 11 +- .../main/assets-app/sample/定时器/循环执行.js | 7 +- .../sample/定时器/条件周期执行 [v6.1.0+].js | 2 +- .../sample/对话框/UI模式中使用对话框.js | 52 +- .../sample/对话框/个性化对话框 [v6.1.0+].js | 2 +- .../main/assets-app/sample/对话框/单选框.js | 4 +- .../main/assets-app/sample/对话框/多选框.js | 14 +- .../sample/对话框/模拟更新下载对话框.js | 57 +- .../main/assets-app/sample/对话框/确认框.js | 18 +- app/src/main/assets-app/sample/对话框/菜单.js | 18 +- .../main/assets-app/sample/对话框/输入框.js | 8 +- .../sample/工具/安卓版本信息查询 [v6.1.0+].js | 8 +- .../sample/工具/摩斯电码 [v6.1.0+].js | 2 +- .../sample/工具/获取类与类名 [v6.6.0+].js | 2 +- .../sample/布局/Vue2 + Vant (SFC)/main.js | 2 +- .../sample/布局/WannaCry (仅为娱乐).js | 82 +- .../sample/布局/可交互 HTML/index.js | 2 +- .../sample/布局/可交互 HTML/main.js | 2 +- .../sample/布局/应用浏览器 [v6.2.0+].js | 4 +- .../sample/布局/待办事项 [v6.2.0+].js | 4 +- .../sample/布局/待办事项 [v6.3.1+].js | 20 +- .../assets-app/sample/布局/控件切换显示.js | 2 +- .../assets-app/sample/布局/播放视频文件.js | 4 +- .../main/assets-app/sample/布局/用户调查.js | 24 +- .../main/assets-app/sample/布局/界面模板一.js | 76 +- .../main/assets-app/sample/布局/登录界面.js | 92 +-- .../布局/简单 Android 布局 [v6.7.0+].js | 6 +- .../sample/布局/简单 Android 布局.js | 2 +- .../main/assets-app/sample/应用/卸载应用.js | 2 +- .../main/assets-app/sample/应用/应用工具.js | 56 +- .../assets-app/sample/应用/强制停止应用.js | 6 +- .../应用/意图/分享文本消息 (QQ) [v6.2.0+].js | 2 +- .../意图/启动 URL Scheme (支付宝) [v6.2.0+].js | 2 +- .../sample/应用/意图/转换为 Shell 语句.js | 2 +- .../main/assets-app/sample/应用/打开应用.js | 4 +- .../main/assets-app/sample/控件/下拉菜单.js | 18 +- .../main/assets-app/sample/控件/列表控件.js | 42 +- .../main/assets-app/sample/控件/卡片布局.js | 23 +- .../main/assets-app/sample/控件/图片控件.js | 48 +- .../sample/控件/复选框单选框控件.js | 27 +- .../main/assets-app/sample/控件/按钮控件.js | 14 +- .../sample/控件/文本控件 [v6.6.0+].js | 4 +- .../main/assets-app/sample/控件/文本控件.js | 14 +- .../sample/控件/时间日期选择控件.js | 10 +- .../sample/控件/自定义控件-使用配置勾选框.js | 12 +- .../sample/控件/自定义控件-布局模板.js | 31 +- .../sample/控件/自定义控件-带颜色按钮.js | 36 +- .../sample/控件/自定义控件-模块-配置勾选框.js | 56 +- .../sample/控件/表格控件-内置图标查看器.js | 26 +- .../main/assets-app/sample/控件/输入框控件.js | 48 +- .../main/assets-app/sample/控件/进度条控件.js | 28 +- .../assets-app/sample/控制台/产生随机数.js | 20 +- .../main/assets-app/sample/控制台/保存日志.js | 4 +- .../assets-app/sample/控制台/打印不同级别.js | 2 +- .../sample/控制台/打印调用栈 [v6.1.0+].js | 2 +- .../assets-app/sample/控制台/格式化输出.js | 8 +- .../assets-app/sample/控制台/终端模拟器.js | 10 +- .../sample/控制台/调整控制台大小位置.js | 4 +- .../sample/文件读写/写入文本文件.js | 18 +- .../sample/文件读写/删除所有空文件夹.js | 18 +- .../sample/文件读写/文件编码转换 (高级).js | 16 +- .../sample/文件读写/文件编码转换.js | 12 +- .../sample/文件读写/读写文本文件.js | 36 +- .../sample/文件读写/读取文本文件.js | 14 +- .../assets-app/sample/无障碍服务/三指下滑.js | 18 +- .../assets-app/sample/无障碍服务/三指捏合.js | 10 +- .../assets-app/sample/无障碍服务/双指捏合.js | 8 +- .../无障碍服务/安卓 11 (R) 新增 [v6.1.0+].js | 2 +- .../无障碍服务/安卓 9 (Pie) 新增 [v6.1.0+].js | 12 +- .../assets-app/sample/无障碍服务/心形手势.js | 10 +- .../sample/无障碍服务/拉出通知栏.js | 6 +- .../sample/无障碍服务/点击左上角.js | 4 +- .../无障碍服务/获取屏幕截图 [v6.1.0+].js | 2 +- .../sample/本地存储/保存数组和复杂对象.js | 20 +- .../sample/本地存储/保存整数等简单数据.js | 20 +- .../main/assets-app/sample/本地存储/随手记.js | 3 - .../测试/基本功能测试 (ui) [v6.3.1+].js | 4 +- .../sample/浮动窗口/动态悬浮文字.js | 28 +- .../assets-app/sample/浮动窗口/悬浮文字.js | 6 +- .../sample/浮动窗口/悬浮运行脚本按钮.js | 41 +- .../assets-app/sample/浮动窗口/护眼模式.js | 6 +- .../浮动窗口/浮动窗口输入框 [v6.3.1+].js | 2 +- .../sample/浮动窗口/浮动窗口输入框.js | 19 +- .../浮动窗口/浮动窗口运行脚本按钮 (简单版).js | 25 +- .../sample/画布/函数图像简单版 [v6.2.0+].js | 20 +- .../sample/画布/函数图像高级版 [v6.2.0+].js | 22 +- .../sample/画布/贪吃蛇 [v6.2.0+].js | 170 ++-- .../sample/画布/贪吃蛇重力感应版 [v6.2.0+].js | 206 ++--- .../sample/脚本引擎/停止所有正在运行的脚本.js | 2 +- .../sample/脚本引擎/运行录制文件.js | 17 +- .../sample/脚本引擎/运行新的脚本任务.js | 10 +- .../sample/脚本引擎/运行脚本文件.js | 17 +- .../sample/记录器/基本读写 [v6.0.3+].js | 4 +- .../sample/记录器/循环监测 [v6.0.3+].js | 4 +- .../sample/记录器/条件检测 [v6.0.3+].js | 4 +- .../sample/设备/摩斯电码震动 [v6.1.0+].js | 2 +- .../sample/设备/模式震动 [v6.1.0+].js | 4 +- .../sample/设备/获取设备信息 [v6.4.2+].js | 2 +- .../assets-app/sample/设备/调整设备亮度.js | 18 +- .../assets-app/sample/设备/调整设备音量.js | 24 +- .../modules/axios/browser-libs/Event.js | 60 +- .../axios/browser-libs/XMLHttpRequest.js | 18 +- .../modules/axios/browser-libs/utils.js | 33 +- .../ezy/assist/compat/SettingsCompat.java | 6 +- .../accessibility/AccessibilityDelegate.kt | 4 +- .../runtime/api/augment/pinyin/Pinyin.kt | 2 +- .../autojs/ui/edit/editor/AutoIndent.java | 14 +- .../autojs/ui/project/BuildActivity.java | 2 +- .../arsceditor/ResDecoder/ARSCDecoder.java | 271 +++--- .../arsceditor/ResDecoder/AXMLDecoder.java | 12 +- .../ResDecoder/IO/LEDataInputStream.java | 551 +++++++------ .../arsceditor/ResDecoder/StringBlock.java | 776 +++++++++--------- .../res/drawable/ic_color_palette_vector.xml | 6 +- app/src/main/res/values-ja/strings.xml | 2 +- .../paddle/lite/ocr/OCRPredictorNative.java | 2 +- .../com/huaban/analysis/jieba/DictSegment.kt | 80 +- .../analysis/jieba/DictionaryDatabase.kt | 6 +- .../java/com/huaban/analysis/jieba/Hit.java | 190 ++--- version.properties | 6 +- 165 files changed, 2356 insertions(+), 2413 deletions(-) diff --git a/app/src/main/assets-app/sample/AutoJs6/基本信息 [v6.1.0+].js b/app/src/main/assets-app/sample/AutoJs6/基本信息 [v6.1.0+].js index a4256f29..41ef05de 100644 --- a/app/src/main/assets-app/sample/AutoJs6/基本信息 [v6.1.0+].js +++ b/app/src/main/assets-app/sample/AutoJs6/基本信息 [v6.1.0+].js @@ -1,6 +1,6 @@ -let {versionName, versionCode, versionDate} = autojs; -Object.entries({versionName, versionCode, versionDate}).forEach((entry) => { - let [key, value] = entry; +let { versionName, versionCode, versionDate } = autojs; +Object.entries({ versionName, versionCode, versionDate }).forEach((entry) => { + let [ key, value ] = entry; console.log(`${key}: ${value}`); }); @@ -15,4 +15,4 @@ console.log(`Display over other apps: ${autojs.canDisplayOverOtherApps()}`); console.log(`Modify system settings: ${autojs.canModifySystemSettings()}`); console.log(`Write secure settings: ${autojs.canWriteSecureSettings()}`); -console.launch(); \ No newline at end of file +console.launch(); diff --git a/app/src/main/assets-app/sample/AutoJs6/强制 Root 检查 [v6.1.0+].js b/app/src/main/assets-app/sample/AutoJs6/强制 Root 检查 [v6.1.0+].js index 4481ff68..0abfadc0 100644 --- a/app/src/main/assets-app/sample/AutoJs6/强制 Root 检查 [v6.1.0+].js +++ b/app/src/main/assets-app/sample/AutoJs6/强制 Root 检查 [v6.1.0+].js @@ -8,21 +8,21 @@ console.log(`Root access: ${autojs.isRootAvailable()}`); // 1 or true or 'root' (force set root mode) // zh-CN: 1 或 true 或 'root' (强制设置 Root 模式) autojs.setRootMode(true); -console.log(`setRootMode(true)`) +console.log(`setRootMode(true)`); // true console.log(`Root access: ${autojs.isRootAvailable()}`); // 0 or false or 'non-root' (force set non-root mode) // zh-CN: 0 或 false 或 'non-root' (强制设置非 Root 模式) autojs.setRootMode(false); -console.log(`setRootMode(false)`) +console.log(`setRootMode(false)`); // false console.log(`Root access: ${autojs.isRootAvailable()}`); // -1 or 'auto' (auto detect) // zh-CN: -1 或 'auto' (自动检测 Root 模式) autojs.setRootMode('auto'); -console.log(`setRootMode(auto)`) +console.log(`setRootMode(auto)`); // depends on system again // zh-CN: 再次取决于系统检测结果 console.log(`Root access: ${autojs.isRootAvailable()}`); @@ -47,4 +47,4 @@ console.launch(); // 如需改变软件配置参数 可在 "AutoJs6 > 设置" 中更改 // 也可通过 autojs.setRootMode() 的第二项参数直接将修改应用到软件配置参数 // 如强制非 Root 模式: autojs.setRootMode('non-root', true); -// 也可使用字符串参数: autojs.setRootMode('non-root', 'write_into_pref'); \ No newline at end of file +// 也可使用字符串参数: autojs.setRootMode('non-root', 'write_into_pref'); diff --git a/app/src/main/assets-app/sample/HTTP/文件上传 [Legacy].js b/app/src/main/assets-app/sample/HTTP/文件上传 [Legacy].js index 53975965..5634e887 100644 --- a/app/src/main/assets-app/sample/HTTP/文件上传 [Legacy].js +++ b/app/src/main/assets-app/sample/HTTP/文件上传 [Legacy].js @@ -1,4 +1,4 @@ -//如果遇到SocketTimeout的异常,重新多运行几次脚本即可 +// 如果遇到 SocketTimeout 的异常, 重新多运行几次脚本即可 console.show(); example1(); @@ -6,35 +6,35 @@ example2(); example3(); example4(); -function example1(){ - var res = http.postMultipart("http://posttestserver.com/post.php", { - "file": open("/sdcard/1.txt") +function example1() { + var res = http.postMultipart('http://posttestserver.com/post.php', { + 'file': open('/sdcard/1.txt'), }); - log("例子1:"); + log('例子 1:'); log(res.body.string()); } -function example2(){ - var res = http.postMultipart("http://posttestserver.com/post.php", { - "file": ["1.txt", "/sdcard/1.txt"] +function example2() { + var res = http.postMultipart('http://posttestserver.com/post.php', { + 'file': [ '1.txt', '/sdcard/1.txt' ], }); - log("例子2:"); + log('例子 2:'); log(res.body.string()); } -function example3(){ - var res = http.postMultipart("http://posttestserver.com/post.php", { - "file": ["1.txt", "text/plain", "/sdcard/1.txt"] +function example3() { + var res = http.postMultipart('http://posttestserver.com/post.php', { + 'file': [ '1.txt', 'text/plain', '/sdcard/1.txt' ], }); - log("例子3:"); + log('例子 3:'); log(res.body.string()); } -function example4(){ - var res = http.postMultipart("http://posttestserver.com/post.php", { - "file": open("/sdcard/1.txt"), - "aKey": "aValue" +function example4() { + var res = http.postMultipart('http://posttestserver.com/post.php', { + 'file': open('/sdcard/1.txt'), + 'aKey': 'aValue', }); - log("例子4:"); + log('例子 4:'); log(res.body.string()); -} \ No newline at end of file +} diff --git a/app/src/main/assets-app/sample/HTTP/文件下载.js b/app/src/main/assets-app/sample/HTTP/文件下载.js index 5f3a784d..0c2f6778 100644 --- a/app/src/main/assets-app/sample/HTTP/文件下载.js +++ b/app/src/main/assets-app/sample/HTTP/文件下载.js @@ -7,4 +7,4 @@ if (res.statusCode !== 200) { let path = './github-mark.png'; files.writeBytes(path, res.body.bytes()); toast(`下载成功: ${path}`); -app.viewFile(path); \ No newline at end of file +app.viewFile(path); diff --git a/app/src/main/assets-app/sample/HTTP/获取网页.js b/app/src/main/assets-app/sample/HTTP/获取网页.js index 94069112..10814089 100644 --- a/app/src/main/assets-app/sample/HTTP/获取网页.js +++ b/app/src/main/assets-app/sample/HTTP/获取网页.js @@ -1,9 +1,9 @@ let MAX_LENGTH_TO_PRINT = 3000; -let url = 'https://www.npmjs.com'; +let url = 'https://github.com'; let res = http.get(url); if (res.statusCode !== 200) { - toast(`请求失败: ${res.statusMessage}`); + toast(`请求失败 [${res.statusCode}]: "${res.statusMessage}"`); exit(); } let str = res.body.string(); diff --git a/app/src/main/assets-app/sample/JavaScript/E4X.js b/app/src/main/assets-app/sample/JavaScript/E4X.js index af0351a9..2cb297ea 100644 --- a/app/src/main/assets-app/sample/JavaScript/E4X.js +++ b/app/src/main/assets-app/sample/JavaScript/E4X.js @@ -140,10 +140,10 @@ var order = { app.sendBroadcast('bounds'); exit(); -}); \ No newline at end of file +}); diff --git a/app/src/main/assets-app/sample/事件与监听/音量键控制程序.js b/app/src/main/assets-app/sample/事件与监听/音量键控制程序.js index 90cb11f2..2d0920ca 100644 --- a/app/src/main/assets-app/sample/事件与监听/音量键控制程序.js +++ b/app/src/main/assets-app/sample/事件与监听/音量键控制程序.js @@ -1,21 +1,21 @@ -"auto"; +'auto'; events.observeKey(); var interval = 5000; var task = task1; -events.onKeyDown("volume_up", function(event){ - if(task === task1){ +events.onKeyDown('volume_up', function (event) { + if (task === task1) { task = task2; - }else{ + } else { task = task1; } - toast("任务已切换"); + toast('任务已切换'); }); -events.onKeyDown("volume_down", function(event){ - toast("程序结束"); +events.onKeyDown('volume_down', function (event) { + toast('程序结束'); exit(); }); @@ -23,12 +23,12 @@ task(); // loop(); -function task1(){ - toast("任务1运行中,音量下键结束,音量上键切换任务"); +function task1() { + toast('任务 1 运行中, 音量下键结束, 音量上键切换任务'); setTimeout(task, interval); } -function task2(){ - toast("任务2运行中,音量下键结束,音量上键切换任务"); +function task2() { + toast('任务 2 运行中, 音量下键结束, 音量上键切换任务'); setTimeout(task, interval); -} \ No newline at end of file +} diff --git a/app/src/main/assets-app/sample/任务/一次性任务 [v6.1.0+].js b/app/src/main/assets-app/sample/任务/一次性任务 [v6.1.0+].js index b7329c95..02214567 100644 --- a/app/src/main/assets-app/sample/任务/一次性任务 [v6.1.0+].js +++ b/app/src/main/assets-app/sample/任务/一次性任务 [v6.1.0+].js @@ -10,4 +10,4 @@ tasks.addDisposableTask({ }, }); -console.launch(); \ No newline at end of file +console.launch(); diff --git a/app/src/main/assets-app/sample/任务/意图 (Intent) 任务 [v6.1.0+].js b/app/src/main/assets-app/sample/任务/意图 (Intent) 任务 [v6.1.0+].js index bc5d5655..49447f01 100644 --- a/app/src/main/assets-app/sample/任务/意图 (Intent) 任务 [v6.1.0+].js +++ b/app/src/main/assets-app/sample/任务/意图 (Intent) 任务 [v6.1.0+].js @@ -7,7 +7,7 @@ tasks.addIntentTask({ console.log(`意图动作: ${task.action}`); console.log(`脚本路径: ${task.scriptPath}`); console.info('可在 AutoJs6 任务面板查看或管理任务'); - } + }, }); -console.launch(); \ No newline at end of file +console.launch(); diff --git a/app/src/main/assets-app/sample/任务/每周任务 [v6.1.0+].js b/app/src/main/assets-app/sample/任务/每周任务 [v6.1.0+].js index 7ff93378..e23b7ca0 100644 --- a/app/src/main/assets-app/sample/任务/每周任务 [v6.1.0+].js +++ b/app/src/main/assets-app/sample/任务/每周任务 [v6.1.0+].js @@ -1,7 +1,7 @@ tasks.addWeeklyTask({ time: Date.now() + 3.6e6 * 12, path: files.path('./test.js'), - daysOfWeek: ['六', 3, 'Fri', 'Sunday'], + daysOfWeek: [ '六', 3, 'Fri', 'Sunday' ], callback(task) { console.log(`已添加的每周任务: ${task}`); console.log(`ID: ${task.id}`); @@ -12,4 +12,4 @@ tasks.addWeeklyTask({ }, }); -console.launch(); \ No newline at end of file +console.launch(); diff --git a/app/src/main/assets-app/sample/任务/每日任务 [v6.1.0+].js b/app/src/main/assets-app/sample/任务/每日任务 [v6.1.0+].js index 83c09e24..37cd57ad 100644 --- a/app/src/main/assets-app/sample/任务/每日任务 [v6.1.0+].js +++ b/app/src/main/assets-app/sample/任务/每日任务 [v6.1.0+].js @@ -10,4 +10,4 @@ tasks.addDailyTask({ }, }); -console.launch(); \ No newline at end of file +console.launch(); diff --git a/app/src/main/assets-app/sample/传感器/打印常用传感器信息.js b/app/src/main/assets-app/sample/传感器/打印常用传感器信息.js index 98122870..e2147c99 100644 --- a/app/src/main/assets-app/sample/传感器/打印常用传感器信息.js +++ b/app/src/main/assets-app/sample/传感器/打印常用传感器信息.js @@ -1,54 +1,54 @@ -//忽略不支持的传感器,即使有传感器不支持也不抛出异常 +// 忽略不支持的传感器, 即使有传感器不支持也不抛出异常 sensors.ignoresUnsupportedSensor = true; -sensors.on("unsupported_sensor", function(sensorName, sensorType){ - log("不支持的传感器: %s 类型: %d", sensorName, sensorType); +sensors.on('unsupported_sensor', function (sensorName, sensorType) { + log('不支持的传感器: %s 类型: %d', sensorName, sensorType); }); -//加速度传感器 -sensors.register("accelerometer").on("change", (event, ax, ay, az)=>{ - log("x方向加速度: %d\ny方向加速度: %d\nz方向加速度: %d", ax, ay, az); +// 加速度传感器 +sensors.register('accelerometer').on('change', (event, ax, ay, az) => { + log('x 方向加速度: %d\ny 方向加速度: %d\nz 方向加速度: %d', ax, ay, az); }); -//方向传感器 -sensors.register("orientation").on("change", (event, dx, dy, dz)=>{ - log("绕x轴转过角度: %d\n绕y轴转过角度: %d\n绕z轴转过角度: %d", dx, dy, dz); +// 方向传感器 +sensors.register('orientation').on('change', (event, dx, dy, dz) => { + log('绕 x 轴转过角度: %d\n 绕 y 轴转过角度: %d\n 绕 z 轴转过角度: %d', dx, dy, dz); }); -//陀螺仪传感器 -sensors.register("gyroscope").on("change", (event, wx, wy, wz)=>{ - log("绕x轴角速度: %d\n绕y轴角速度: %d\n绕z轴角速度: %d", wx, wy, wz); +// 陀螺仪传感器 +sensors.register('gyroscope').on('change', (event, wx, wy, wz) => { + log('绕 x 轴角速度: %d\n 绕 y 轴角速度: %d\n 绕 z 轴角速度: %d', wx, wy, wz); }); -//磁场传感器 -sensors.register("magnetic_field").on("change", (event, bx, by, bz)=>{ - log("x方向磁场强度: %d\ny方向磁场强度: %d\nz方向磁场强度: %d", bx, by, bz); +// 磁场传感器 +sensors.register('magnetic_field').on('change', (event, bx, by, bz) => { + log('x 方向磁场强度: %d\ny 方向磁场强度: %d\nz 方向磁场强度: %d', bx, by, bz); }); -//重力传感器 -sensors.register("magnetic_field").on("change", (event, gx, gy, gz)=>{ - log("x方向重力: %d\ny方向重力: %d\nz方向重力: %d", gx, gy, gz); +// 重力传感器 +sensors.register('magnetic_field').on('change', (event, gx, gy, gz) => { + log('x 方向重力: %d\ny 方向重力: %d\nz 方向重力: %d', gx, gy, gz); }); -//线性加速度传感器 -sensors.register("linear_acceleration").on("change", (event, ax, ay, az)=>{ - log("x方向线性加速度: %d\ny方向线性加速度: %d\nz方向线性加速度: %d", ax, ay, az); +// 线性加速度传感器 +sensors.register('linear_acceleration').on('change', (event, ax, ay, az) => { + log('x 方向线性加速度: %d\ny 方向线性加速度: %d\nz 方向线性加速度: %d', ax, ay, az); }); -//温度传感器 -sensors.register("ambient_temperature").on("change", (event, t)=>{ - log("当前温度: %d", t); +// 温度传感器 +sensors.register('ambient_temperature').on('change', (event, t) => { + log('当前温度: %d', t); }); -//光线传感器 -sensors.register("light").on("change", (event, l)=>{ - log("当前光的强度: %d", l); +// 光线传感器 +sensors.register('light').on('change', (event, l) => { + log('当前光的强度: %d', l); }); -//压力传感器 -sensors.register("pressure").on("change", (event, p)=>{ - log("当前压力: %d", p); +// 压力传感器 +sensors.register('pressure').on('change', (event, p) => { + log('当前压力: %d', p); }); -//距离传感器 -sensors.register("proximity").on("change", (event, d)=>{ - log("当前距离: %d", d); +// 距离传感器 +sensors.register('proximity').on('change', (event, d) => { + log('当前距离: %d', d); }); -//湿度传感器 -sensors.register("relative_humidity").on("change", (event, rh)=>{ - log("当前相对湿度: %d", rh); +// 湿度传感器 +sensors.register('relative_humidity').on('change', (event, rh) => { + log('当前相对湿度: %d', rh); }); -//30秒后退出程序 +// 30 秒后退出程序 setTimeout(exit, 30 * 1000); diff --git a/app/src/main/assets-app/sample/传感器/显示常用传感器信息.js b/app/src/main/assets-app/sample/传感器/显示常用传感器信息.js index e95b4274..55e6914c 100644 --- a/app/src/main/assets-app/sample/传感器/显示常用传感器信息.js +++ b/app/src/main/assets-app/sample/传感器/显示常用传感器信息.js @@ -1,4 +1,4 @@ -"ui"; +'ui'; ui.layout( @@ -15,60 +15,60 @@ ui.layout( - + , ); -//忽略不支持的传感器,即使有传感器不支持也不抛出异常 +// 忽略不支持的传感器, 即使有传感器不支持也不抛出异常 sensors.ignoresUnsupportedSensor = true; -sensors.on("unsupported_sensor", function(sensorName, sensorType){ - log(util.format("不支持的传感器: %s 类型: %d", sensorName, sensorType)); +sensors.on('unsupported_sensor', function (sensorName, sensorType) { + log(util.format('不支持的传感器: %s 类型: %d', sensorName, sensorType)); }); -//加速度传感器 -sensors.register("accelerometer", sensors.delay.ui).on("change", (event, ax, ay, az)=>{ - ui.accelerometer.setText(util.format("x方向加速度: %d\ny方向加速度: %d\nz方向加速度: %d", ax, ay, az)); +// 加速度传感器 +sensors.register('accelerometer', sensors.delay.ui).on('change', (event, ax, ay, az) => { + ui.accelerometer.setText(util.format('x 方向加速度: %d\ny 方向加速度: %d\nz 方向加速度: %d', ax, ay, az)); }); -//方向传感器 -sensors.register("orientation", sensors.delay.ui).on("change", (event, dx, dy, dz)=>{ - ui.orientation.setText(util.format("绕x轴转过角度: %d\n绕y轴转过角度: %d\n绕z轴转过角度: %d", dx, dy, dz)); +// 方向传感器 +sensors.register('orientation', sensors.delay.ui).on('change', (event, dx, dy, dz) => { + ui.orientation.setText(util.format('绕 x 轴转过角度: %d\n 绕 y 轴转过角度: %d\n 绕 z 轴转过角度: %d', dx, dy, dz)); }); -//陀螺仪传感器 -sensors.register("gyroscope", sensors.delay.ui).on("change", (event, wx, wy, wz)=>{ - ui.gyroscope.setText(util.format("绕x轴角速度: %d\n绕y轴角速度: %d\n绕z轴角速度: %d", wx, wy, wz)); +// 陀螺仪传感器 +sensors.register('gyroscope', sensors.delay.ui).on('change', (event, wx, wy, wz) => { + ui.gyroscope.setText(util.format('绕 x 轴角速度: %d\n 绕 y 轴角速度: %d\n 绕 z 轴角速度: %d', wx, wy, wz)); }); -//磁场传感器 -sensors.register("magnetic_field", sensors.delay.ui).on("change", (event, bx, by, bz)=>{ - ui.magnetic_field.setText(util.format("x方向磁场强度: %d\ny方向磁场强度: %d\nz方向磁场强度: %d", bx, by, bz)); +// 磁场传感器 +sensors.register('magnetic_field', sensors.delay.ui).on('change', (event, bx, by, bz) => { + ui.magnetic_field.setText(util.format('x 方向磁场强度: %d\ny 方向磁场强度: %d\nz 方向磁场强度: %d', bx, by, bz)); }); -//重力传感器 -sensors.register("gravity", sensors.delay.ui).on("change", (event, gx, gy, gz)=>{ - ui.gravity.setText(util.format("x方向重力: %d\ny方向重力: %d\nz方向重力: %d", gx, gy, gz)); +// 重力传感器 +sensors.register('gravity', sensors.delay.ui).on('change', (event, gx, gy, gz) => { + ui.gravity.setText(util.format('x 方向重力: %d\ny 方向重力: %d\nz 方向重力: %d', gx, gy, gz)); }); -//线性加速度传感器 -sensors.register("linear_acceleration", sensors.delay.ui).on("change", (event, ax, ay, az)=>{ - ui.linear_acceleration.setText(util.format("x方向线性加速度: %d\ny方向线性加速度: %d\nz方向线性加速度: %d", ax, ay, az)); +// 线性加速度传感器 +sensors.register('linear_acceleration', sensors.delay.ui).on('change', (event, ax, ay, az) => { + ui.linear_acceleration.setText(util.format('x 方向线性加速度: %d\ny 方向线性加速度: %d\nz 方向线性加速度: %d', ax, ay, az)); }); -//温度传感器 -sensors.register("ambient_temperature", sensors.delay.ui).on("change", (event, t)=>{ - ui.ambient_temperature.setText(util.format("当前温度: %d", t)); +// 温度传感器 +sensors.register('ambient_temperature', sensors.delay.ui).on('change', (event, t) => { + ui.ambient_temperature.setText(util.format('当前温度: %d', t)); }); -//光线传感器 -sensors.register("light", sensors.delay.ui).on("change", (event, l)=>{ - ui.light.setText(util.format("当前光的强度: %d", l)); +// 光线传感器 +sensors.register('light', sensors.delay.ui).on('change', (event, l) => { + ui.light.setText(util.format('当前光的强度: %d', l)); }); -//压力传感器 -sensors.register("pressure", sensors.delay.ui).on("change", (event, p)=>{ - ui.pressure.setText(util.format("当前压力: %d", p)); +// 压力传感器 +sensors.register('pressure', sensors.delay.ui).on('change', (event, p) => { + ui.pressure.setText(util.format('当前压力: %d', p)); }); -//距离传感器 -sensors.register("proximity", sensors.delay.ui).on("change", (event, d)=>{ - ui.proximity.setText(util.format("当前距离: %d", d)); +// 距离传感器 +sensors.register('proximity', sensors.delay.ui).on('change', (event, d) => { + ui.proximity.setText(util.format('当前距离: %d', d)); }); -//湿度传感器 -sensors.register("relative_humidity", sensors.delay.ui).on("change", (event, rh)=>{ - ui.relative_humidity.setText(util.format("当前相对湿度: %d", rh)); +// 湿度传感器 +sensors.register('relative_humidity', sensors.delay.ui).on('change', (event, rh) => { + ui.relative_humidity.setText(util.format('当前相对湿度: %d', rh)); }); -//30秒后退出程序 +// 30 秒后退出程序 setTimeout(exit, 30 * 1000); diff --git a/app/src/main/assets-app/sample/协程/UI模式中使用协程/main.js b/app/src/main/assets-app/sample/协程/UI模式中使用协程/main.js index b739dc68..30fd22ee 100644 --- a/app/src/main/assets-app/sample/协程/UI模式中使用协程/main.js +++ b/app/src/main/assets-app/sample/协程/UI模式中使用协程/main.js @@ -21,4 +21,4 @@ ui.emitter.on('back_pressed', function (e) { if (exit) { ui.finish(); } -}); \ No newline at end of file +}); diff --git a/app/src/main/assets-app/sample/图像与颜色/区域找色1.js b/app/src/main/assets-app/sample/图像与颜色/区域找色1.js index 19d67ee9..d76f6a69 100644 --- a/app/src/main/assets-app/sample/图像与颜色/区域找色1.js +++ b/app/src/main/assets-app/sample/图像与颜色/区域找色1.js @@ -1,16 +1,14 @@ -if(!requestScreenCapture()){ - toast("请求截图失败"); +if (!requestScreenCapture()) { + toast('请求截图失败'); exit(); } var img = captureScreen(); -toastLog("开始找色"); -//指定在位置(100, 220)宽高为400*400的区域找色。 -//#75438a是编辑器默认主题的棕红色字体(数字)颜色,位置大约在第5行的"2000",坐标大约为(283, 465) -var point = findColorInRegion(img, "#75438a", 90, 220, 900, 1000); -if(point){ - toastLog("x = " + point.x + ", y = " + point.y); -}else{ - toastLog("没有找到"); +toastLog('开始找色'); +// 指定在位置 (100, 220) 宽高为 400 × 400 的区域找色. +// #75438a 是编辑器默认主题的棕红色字体 (数字) 颜色, 位置大约在第 5 行的 "2000", 坐标大约为 (283, 465) +var point = findColorInRegion(img, '#75438a', 90, 220, 900, 1000); +if (point) { + toastLog('x = ' + point.x + ', y = ' + point.y); +} else { + toastLog('没有找到'); } - - diff --git a/app/src/main/assets-app/sample/图像与颜色/区域找色2.js b/app/src/main/assets-app/sample/图像与颜色/区域找色2.js index 94b0917e..ea695b2d 100644 --- a/app/src/main/assets-app/sample/图像与颜色/区域找色2.js +++ b/app/src/main/assets-app/sample/图像与颜色/区域找色2.js @@ -1,18 +1,18 @@ -if(!requestScreenCapture()){ - toast("请求截图失败"); +if (!requestScreenCapture()) { + toast('请求截图失败'); exit(); } var img = captureScreen(); -//0xffffff为白色 -toastLog("开始找色"); -//指定在位置(90, 220)宽高为900*1000的区域找色。 -//0xff00cc是编辑器的深粉红色字体(字符串)颜色 -var point = findColor(img, "#ff00cc", { - region: [90, 220, 900, 1000], - threads: 8 +// 0xffffff 为白色 +toastLog('开始找色'); +// 指定在位置 (90, 220) 宽高为 900 × 1000 的区域找色. +// 0xff00cc 是编辑器的深粉红色字体 (字符串) 颜色. +var point = findColor(img, '#ff00cc', { + region: [ 90, 220, 900, 1000 ], + threads: 8, }); -if(point){ - toastLog("x = " + point.x + ", y = " + point.y); -}else{ - toastLog("没有找到"); +if (point) { + toastLog('x = ' + point.x + ', y = ' + point.y); +} else { + toastLog('没有找到'); } diff --git a/app/src/main/assets-app/sample/图像与颜色/图片处理.js b/app/src/main/assets-app/sample/图像与颜色/图片处理.js index 83ea3fac..227d3050 100644 --- a/app/src/main/assets-app/sample/图像与颜色/图片处理.js +++ b/app/src/main/assets-app/sample/图像与颜色/图片处理.js @@ -1,45 +1,45 @@ -"ui"; +'ui'; -var url = "https://www.autojs.org/assets/uploads/files/1540386817060-918021-20160416200702191-185324559.jpg"; +var url = 'https://www.autojs.org/assets/uploads/files/1540386817060-918021-20160416200702191-185324559.jpg'; var logo = null; var currentImg = null; -events.on("exit", function(){ - if(logo){ +events.on('exit', function () { + if (logo) { logo.recycle(); } - if(currentImg){ + if (currentImg) { currentImg.recycle(); } }); ui.layout( - + - - + - + , ); -ui.callback.click(()=>{ - dialogs.confirm("要弹出输入框吗?", "", function(b){ - if(b){ - dialogs.rawInput("输入", "", function(str){ - alert("您输入的是:" + str); +ui.callback.click(() => { + dialogs.confirm('要弹出输入框吗?', '', function (b) { + if (b) { + dialogs.rawInput('输入', '', function (str) { + alert('您输入的是:' + str); }); - }else{ + } else { ui.finish(); } }); }); -ui.promise.click(()=>{ - dialogs.confirm("要弹出输入框吗") - .then(function(b){ - if(b){ - return dialogs.rawInput("输入"); - }else{ +ui.promise.click(() => { + dialogs.confirm('要弹出输入框吗') + .then(function (b) { + if (b) { + return dialogs.rawInput('输入'); + } else { ui.finish(); } - }).then(function(str){ - alert("您输入的是:" + str); - }); + }).then(function (str) { + alert('您输入的是:' + str); + }); }); -ui.calc.click(()=>{ +ui.calc.click(() => { let num1, num2, op; - dialogs.input("请输入第一个数字") + dialogs.input('请输入第一个数字') .then(n => { num1 = n; - return dialogs.singleChoice("请选择运算", ["加", "减", "乘", "除", "幂"]); + return dialogs.singleChoice('请选择运算', [ '加', '减', '乘', '除', '幂' ]); }) .then(o => { op = o; - return dialogs.input("请输入第二个数字"); - }) + return dialogs.input('请输入第二个数字'); + }) .then(n => { num2 = n; var result; - switch(op){ + switch (op) { case 0: result = num1 + num2; break; @@ -65,6 +65,6 @@ ui.calc.click(()=>{ result = Math.pow(num1, num2); break; } - alert("运算结果", result); + alert('运算结果', result); }); -}); \ No newline at end of file +}); diff --git a/app/src/main/assets-app/sample/对话框/个性化对话框 [v6.1.0+].js b/app/src/main/assets-app/sample/对话框/个性化对话框 [v6.1.0+].js index dd2af30d..45aa937f 100644 --- a/app/src/main/assets-app/sample/对话框/个性化对话框 [v6.1.0+].js +++ b/app/src/main/assets-app/sample/对话框/个性化对话框 [v6.1.0+].js @@ -60,4 +60,4 @@ setInterval(() => { cachedTimeStr = timeStr; dialog.setContent(`${timeStr}\n${urlStr}`); } -}, 30); \ No newline at end of file +}, 30); diff --git a/app/src/main/assets-app/sample/对话框/单选框.js b/app/src/main/assets-app/sample/对话框/单选框.js index 26e5588d..76ce65fb 100644 --- a/app/src/main/assets-app/sample/对话框/单选框.js +++ b/app/src/main/assets-app/sample/对话框/单选框.js @@ -1,2 +1,2 @@ -var sex = dialogs.singleChoice("请选择性别", ["男", "女", "基佬", "女装", "其他"], 2); -toast("选择了第" + (sex + 1) + "个选项"); \ No newline at end of file +var sex = dialogs.singleChoice('请选择性别', [ '男', '女', '基佬', '女装', '其他' ], 2); +toast('选择了第' + (sex + 1) + '个选项'); diff --git a/app/src/main/assets-app/sample/对话框/多选框.js b/app/src/main/assets-app/sample/对话框/多选框.js index f0edab4e..f4be577c 100644 --- a/app/src/main/assets-app/sample/对话框/多选框.js +++ b/app/src/main/assets-app/sample/对话框/多选框.js @@ -1,7 +1,7 @@ -var i = dialogs.multiChoice("下列作品出自李贽的是", ["《焚书》", "《西湖寻梦》", "《高太史全集》", "《续焚烧书》", "《藏书》"]); -toast("选择了: " + i); -if(i.length === 2 && i.toString() === [0, 4].toString()){ - toast("答对辣"); -}else{ - toast("答错辣"); -} \ No newline at end of file +var i = dialogs.multiChoice('下列作品出自李贽的是', [ '<<焚书>>', '<<西湖寻梦>>', '<<高太史全集>>', '<<续焚烧书>>', '<<藏书>>' ]); +toast('选择了: ' + i); +if (i.length === 2 && i.toString() === [ 0, 4 ].toString()) { + toast('答对辣'); +} else { + toast('答错辣'); +} diff --git a/app/src/main/assets-app/sample/对话框/模拟更新下载对话框.js b/app/src/main/assets-app/sample/对话框/模拟更新下载对话框.js index 9154d364..5a5ac452 100644 --- a/app/src/main/assets-app/sample/对话框/模拟更新下载对话框.js +++ b/app/src/main/assets-app/sample/对话框/模拟更新下载对话框.js @@ -1,43 +1,43 @@ -var releaseNotes = "版本 v7.7.7\n" - + "更新日志:\n" - + "* 新增 若干Bug\n"; +var releaseNotes = '版本 v7.7.7\n' + + '更新日志:\n' + + '* 新增 若干 Bug\n'; dialogs.build({ - title: "发现新版本", + title: '发现新版本', content: releaseNotes, - positive: "立即下载", - negative: "取消", - neutral: "到浏览器下载" + positive: '立即下载', + negative: '取消', + neutral: '到浏览器下载', }) - .on("positive", download) - .on("neutral", () => { - app.openUrl("https://www.autojs.org"); + .on('positive', download) + .on('neutral', () => { + app.openUrl('https://www.autojs.org'); }) .show(); var downloadDialog = null; var downloadId = -1; -function download(){ +function download() { downloadDialog = dialogs.build({ - title: "下载中...", - positive: "暂停", - negative: "取消", + title: '下载中...', + positive: '暂停', + negative: '取消', progress: { max: 100, - showMinMax: true + showMinMax: true, }, - autoDismiss: false + autoDismiss: false, }) - .on("positive", ()=>{ - if(downloadDialog.getActionButton("positive") === "暂停"){ + .on('positive', () => { + if (downloadDialog.getActionButton('positive') === '暂停') { stopDownload(); - downloadDialog.setActionButton("positive", "继续"); - }else{ + downloadDialog.setActionButton('positive', '继续'); + } else { startDownload(); - downloadDialog.setActionButton("positive", "暂停"); + downloadDialog.setActionButton('positive', '暂停'); } }) - .on("negative", ()=>{ + .on('negative', () => { stopDownload(); downloadDialog.dismiss(); downloadDialog = null; @@ -46,21 +46,20 @@ function download(){ startDownload(); } -function startDownload(){ - downloadId = setInterval(()=>{ +function startDownload() { + downloadId = setInterval(() => { var p = downloadDialog.getProgress(); - if(p >= 100){ + if (p >= 100) { stopDownload(); downloadDialog.dismiss(); downloadDialog = null; - toast("下载完成"); - }else{ + toast('下载完成'); + } else { downloadDialog.setProgress(p + 1); } }, 100); } -function stopDownload(){ +function stopDownload() { clearInterval(downloadId); } - diff --git a/app/src/main/assets-app/sample/对话框/确认框.js b/app/src/main/assets-app/sample/对话框/确认框.js index 2cbf1d35..f0df1aed 100644 --- a/app/src/main/assets-app/sample/对话框/确认框.js +++ b/app/src/main/assets-app/sample/对话框/确认框.js @@ -1,9 +1,9 @@ -var handsome = confirm("你帅吗?"); -if(handsome){ - toast("真不要脸!"); - toast("真不要脸!"); - toast("真不要脸!"); - alert("真不要脸!"); -}else{ - toast("嗯"); -} \ No newline at end of file +var handsome = confirm('你帅吗?'); +if (handsome) { + toast('真不要脸!'); + toast('真不要脸!'); + toast('真不要脸!'); + alert('真不要脸!'); +} else { + toast('嗯'); +} diff --git a/app/src/main/assets-app/sample/对话框/菜单.js b/app/src/main/assets-app/sample/对话框/菜单.js index db7bf4cf..9ec14475 100644 --- a/app/src/main/assets-app/sample/对话框/菜单.js +++ b/app/src/main/assets-app/sample/对话框/菜单.js @@ -1,15 +1,13 @@ -while(true){ - var i = dialogs.select("哲学的基本问题是", "社会和自然的关系问题", "思维与存在的关系问题", "政治和经济的关系问题", "实践和理论的关系问题"); - if(i === -1){ - toast("猜一下呗"); +while (true) { + var i = dialogs.select('哲学的基本问题是', '社会和自然的关系问题', '思维与存在的关系问题', '政治和经济的关系问题', '实践和理论的关系问题'); + if (i === -1) { + toast('猜一下呗'); continue; } - if(i === 1){ - toast("答对辣"); + if (i === 1) { + toast('答对辣'); break; - }else{ - toast("答错辣") + } else { + toast('答错辣'); } } - - diff --git a/app/src/main/assets-app/sample/对话框/输入框.js b/app/src/main/assets-app/sample/对话框/输入框.js index b2547a4c..e50c0b19 100644 --- a/app/src/main/assets-app/sample/对话框/输入框.js +++ b/app/src/main/assets-app/sample/对话框/输入框.js @@ -1,4 +1,4 @@ -var name = rawInput("请输入名字"); -alert("(•́へ•́╬)", "你好~ " + name); -var expr = dialogs.input("请输入简单的算式", "1+1"); -alert("计算结果为 " + expr); \ No newline at end of file +var name = rawInput('请输入名字'); +alert('(•́へ•́╬)', '你好~ ' + name); +var expr = dialogs.input('请输入简单的算式', '1+1'); +alert('计算结果: ' + expr); diff --git a/app/src/main/assets-app/sample/工具/安卓版本信息查询 [v6.1.0+].js b/app/src/main/assets-app/sample/工具/安卓版本信息查询 [v6.1.0+].js index d2e594ef..c1d0081c 100644 --- a/app/src/main/assets-app/sample/工具/安卓版本信息查询 [v6.1.0+].js +++ b/app/src/main/assets-app/sample/工具/安卓版本信息查询 [v6.1.0+].js @@ -11,12 +11,12 @@ let _ = { textSize: 16, inputHint: '输入要检索的内容', sampleTitle: '检索示例', - samples: ['30', 'R', 'Android 11', 'oreo', 'pie', 'cookie', 'nougat', 'jelly bean', + samples: [ '30', 'R', 'Android 11', 'oreo', 'pie', 'cookie', 'nougat', 'jelly bean', '7.1.1', '7.1', '8.0', '8', '2022', '2022 Mar', '2022 March', '2022 3', '2022/3', '2022/03', 'Mar 2022', 'March 2022', 'Mar, 2022', 'March, 2022', '2022 Mar 07', '2022 Mar 7', '2022 March 7', '2022 3 7', '2022/3/7', '2022/3/07', '2022/03/07', - 'Mar 7 2022', 'March 7 2022', 'Mar 7, 2022', 'March 7, 2022'], - infoKeys: ['versionCode', 'apiLevel', 'platformVersion', 'releaseName', 'internalCodename', 'releaseDate'], + 'Mar 7 2022', 'March 7 2022', 'Mar 7, 2022', 'March 7, 2022' ], + infoKeys: [ 'versionCode', 'apiLevel', 'platformVersion', 'releaseName', 'internalCodename', 'releaseDate' ], }; let $ = { @@ -101,4 +101,4 @@ let $ = { }, }; -$.show(); \ No newline at end of file +$.show(); diff --git a/app/src/main/assets-app/sample/工具/摩斯电码 [v6.1.0+].js b/app/src/main/assets-app/sample/工具/摩斯电码 [v6.1.0+].js index e55f5f75..683e3612 100644 --- a/app/src/main/assets-app/sample/工具/摩斯电码 [v6.1.0+].js +++ b/app/src/main/assets-app/sample/工具/摩斯电码 [v6.1.0+].js @@ -21,4 +21,4 @@ console.log(`pattern: ${morse.pattern}`); // morse.vibrate(); -console.launch(); \ No newline at end of file +console.launch(); diff --git a/app/src/main/assets-app/sample/工具/获取类与类名 [v6.6.0+].js b/app/src/main/assets-app/sample/工具/获取类与类名 [v6.6.0+].js index 8e87da62..e444d83c 100644 --- a/app/src/main/assets-app/sample/工具/获取类与类名 [v6.6.0+].js +++ b/app/src/main/assets-app/sample/工具/获取类与类名 [v6.6.0+].js @@ -23,4 +23,4 @@ test(new java.lang.Integer(0.5).getClass() === java.lang.Integer); test(util.getClass(new java.lang.Integer(0.5)) === java.lang.Integer); test(util.getClass(new java.lang.Integer(0.5)) === util.getClass(java.lang.Integer)); -console.launch(); \ No newline at end of file +console.launch(); diff --git a/app/src/main/assets-app/sample/布局/Vue2 + Vant (SFC)/main.js b/app/src/main/assets-app/sample/布局/Vue2 + Vant (SFC)/main.js index 48beabf3..ea9ab4ed 100644 --- a/app/src/main/assets-app/sample/布局/Vue2 + Vant (SFC)/main.js +++ b/app/src/main/assets-app/sample/布局/Vue2 + Vant (SFC)/main.js @@ -90,4 +90,4 @@ ui.emitter.on('activity_result', (requestCode, resultCode, data) => { } fileChooserResolve = null; } -}); \ No newline at end of file +}); diff --git a/app/src/main/assets-app/sample/布局/WannaCry (仅为娱乐).js b/app/src/main/assets-app/sample/布局/WannaCry (仅为娱乐).js index 10396451..3172b6d7 100644 --- a/app/src/main/assets-app/sample/布局/WannaCry (仅为娱乐).js +++ b/app/src/main/assets-app/sample/布局/WannaCry (仅为娱乐).js @@ -1,67 +1,67 @@ -"ui"; +'ui'; /** * By Da Zhang - * 本脚本仅为娱乐,没有任何破坏性质 + * 本脚本仅为娱乐, 没有任何破坏性质 */ -ui.statusBarColor("#AA0000"); +ui.statusBarColor('#AA0000'); var Quin = 32552732; ui.layout( - - Oops, your files have been encrypted! - - @@ -48,7 +48,7 @@ ui.layout( - -) + , +); -ui.webview.loadUrl("http://www.autojs.org"); \ No newline at end of file +ui.webview.loadUrl('http://www.autojs.org'); diff --git a/app/src/main/assets-app/sample/布局/界面模板一.js b/app/src/main/assets-app/sample/布局/界面模板一.js index d65242d4..074830a3 100644 --- a/app/src/main/assets-app/sample/布局/界面模板一.js +++ b/app/src/main/assets-app/sample/布局/界面模板一.js @@ -1,6 +1,6 @@ -"ui"; +'ui'; -var color = "#009688"; +var color = '#009688'; ui.layout( @@ -30,60 +30,60 @@ ui.layout( - + , ); -//创建选项菜单(右上角) -ui.emitter.on("create_options_menu", menu=>{ - menu.add("设置"); - menu.add("关于"); +// 创建选项菜单 (右上角) +ui.emitter.on('create_options_menu', menu => { + menu.add('设置'); + menu.add('关于'); }); -//监听选项菜单点击 -ui.emitter.on("options_item_selected", (e, item)=>{ - switch(item.getTitle()){ - case "设置": - toast("还没有设置"); +// 监听选项菜单点击 +ui.emitter.on('options_item_selected', (e, item) => { + switch (item.getTitle()) { + case '设置': + toast('还没有设置'); break; - case "关于": - alert("关于", "Auto.js界面模板 v1.0.0"); + case '关于': + alert('关于', 'Auto.js 界面模板 v1.0.0'); break; } e.consumed = true; }); activity.setSupportActionBar(ui.toolbar); -//设置滑动页面的标题 -ui.viewpager.setTitles(["标签一", "标签二", "标签三"]); -//让滑动页面和标签栏联动 +// 设置滑动页面的标题 +ui.viewpager.setTitles([ '标签一', '标签二', '标签三' ]); +// 让滑动页面和标签栏联动 ui.tabs.setupWithViewPager(ui.viewpager); -//让工具栏左上角可以打开侧拉菜单 +// 让工具栏左上角可以打开侧拉菜单 ui.toolbar.setupWithDrawer(ui.drawer); ui.menu.setDataSource([ - { - title: "选项一", - icon: "@drawable/ic_android_black_48dp" - }, - { - title: "选项二", - icon: "@drawable/ic_settings_black_48dp" - }, - { - title: "选项三", - icon: "@drawable/ic_favorite_black_48dp" - }, - { - title: "退出", - icon: "@drawable/ic_exit_to_app_black_48dp" - } + { + title: '选项一', + icon: '@drawable/ic_android_black_48dp', + }, + { + title: '选项二', + icon: '@drawable/ic_settings_black_48dp', + }, + { + title: '选项三', + icon: '@drawable/ic_favorite_black_48dp', + }, + { + title: '退出', + icon: '@drawable/ic_exit_to_app_black_48dp', + }, ]); -ui.menu.on("item_click", item => { - switch(item.title){ - case "退出": +ui.menu.on('item_click', item => { + switch (item.title) { + case '退出': ui.finish(); break; } -}) \ No newline at end of file +}); diff --git a/app/src/main/assets-app/sample/布局/登录界面.js b/app/src/main/assets-app/sample/布局/登录界面.js index 993c5e0e..b916a8f9 100644 --- a/app/src/main/assets-app/sample/布局/登录界面.js +++ b/app/src/main/assets-app/sample/布局/登录界面.js @@ -1,58 +1,58 @@ -"ui"; +'ui'; showLoginUI(); // ui.statusBarColor("#000000") -//显示登录界面 -function showLoginUI(){ +// 显示登录界面 +function showLoginUI() { ui.layout( - - - - 用户名 - - - - 密码 - - - - - - - - + + + + 用户名 + + + + 密码 + + + + 邮箱 + + + + + + + + , ); - ui.cancel.on("click", () => showLoginUI()); -} \ No newline at end of file + ui.cancel.on('click', () => showLoginUI()); +} diff --git a/app/src/main/assets-app/sample/布局/简单 Android 布局 [v6.7.0+].js b/app/src/main/assets-app/sample/布局/简单 Android 布局 [v6.7.0+].js index ea5b82cf..8b3c76cd 100644 --- a/app/src/main/assets-app/sample/布局/简单 Android 布局 [v6.7.0+].js +++ b/app/src/main/assets-app/sample/布局/简单 Android 布局 [v6.7.0+].js @@ -9,7 +9,7 @@ ui.layout( android:layout_width="wrap_content" android:layout_height="wrap_content" android:format24Hour="HH:mm" - android:textSize="36sp" />, + android:textSize="36sp"/>, ); /* 1 秒钟后应用自定义样式. */ @@ -22,7 +22,9 @@ setTimeout(() => { ui.statusBarIconLightBy(themeColor); ui.navigationBarColor(themeColor); - ui.navigationBarIconLightBy(themeColor); + if (util.version.sdkInt >= util.versionCodes.O) { + ui.navigationBarIconLightBy(themeColor); + } /** @type {JsTextClock} */ let textClockView = ui['text_clock']; diff --git a/app/src/main/assets-app/sample/布局/简单 Android 布局.js b/app/src/main/assets-app/sample/布局/简单 Android 布局.js index 01d33506..07422189 100644 --- a/app/src/main/assets-app/sample/布局/简单 Android 布局.js +++ b/app/src/main/assets-app/sample/布局/简单 Android 布局.js @@ -31,4 +31,4 @@ setTimeout(() => { textClockView.attr('size', '56'); textClockView.attr('layout_gravity', 'center'); textClockView.attr('format24Hour', 'HH:mm:ss'); -}, 1e3); \ No newline at end of file +}, 1e3); diff --git a/app/src/main/assets-app/sample/应用/卸载应用.js b/app/src/main/assets-app/sample/应用/卸载应用.js index 02f3bdf4..c9036512 100644 --- a/app/src/main/assets-app/sample/应用/卸载应用.js +++ b/app/src/main/assets-app/sample/应用/卸载应用.js @@ -7,4 +7,4 @@ if (!packageName) { toast(`应用 "${appName}" 不存在`); } else { app.uninstall(packageName); -} \ No newline at end of file +} diff --git a/app/src/main/assets-app/sample/应用/应用工具.js b/app/src/main/assets-app/sample/应用/应用工具.js index 3ee46fdb..9651bafe 100644 --- a/app/src/main/assets-app/sample/应用/应用工具.js +++ b/app/src/main/assets-app/sample/应用/应用工具.js @@ -1,31 +1,31 @@ -var i = dialogs.select("请选择工具", "获取应用包名", "打开应用详情页", "卸载应用"); +var i = dialogs.select('请选择工具', '获取应用包名', '打开应用详情页', '卸载应用'); -if(i === -1){ - alert("没有选择任何工具!"); +if (i === -1) { + alert('没有选择任何工具!'); } -switch(i){ -case 0: - //获取应用包名 - appName = rawInput("请输入应用名称", "QQ"); - packageName = getPackageName(appName); - toast(packageName); - setClip(packageName); - toast("已复制到剪贴板"); - break; -case 1: - //打开应用详情页 - appName = rawInput("请输入应用名称", "微信"); - launchSettings(getPackageName(appName)); - break; -case 2: - //卸载应用 - appName = rawInput("请输入应用名称"); - packageName = getPackageName(appName); - if(packageName === ""){ - toast("应用不存在"); - }else if(confirm("确定卸载应用" + packageName + "吗?")){ - app.uninstall(packageName); - } - break; -} \ No newline at end of file +switch (i) { + case 0: + // 获取应用包名 + appName = rawInput('请输入应用名称', 'QQ'); + packageName = getPackageName(appName); + toast(packageName); + setClip(packageName); + toast('已复制到剪贴板'); + break; + case 1: + // 打开应用详情页 + appName = rawInput('请输入应用名称', '微信'); + launchSettings(getPackageName(appName)); + break; + case 2: + // 卸载应用 + appName = rawInput('请输入应用名称'); + packageName = getPackageName(appName); + if (packageName === '') { + toast('应用不存在'); + } else if (confirm('确定卸载应用 "' + packageName + '" 吗?')) { + app.uninstall(packageName); + } + break; +} diff --git a/app/src/main/assets-app/sample/应用/强制停止应用.js b/app/src/main/assets-app/sample/应用/强制停止应用.js index 81f9a98b..b56ccd99 100644 --- a/app/src/main/assets-app/sample/应用/强制停止应用.js +++ b/app/src/main/assets-app/sample/应用/强制停止应用.js @@ -1,5 +1,5 @@ -"auto"; +'auto'; -var appName = rawInput("请输入应用名称"); +var appName = rawInput('请输入应用名称'); launchSettings(getPackageName(appName)); -while(!click("强制停止")); \ No newline at end of file +while (!click('强制停止')) ; diff --git a/app/src/main/assets-app/sample/应用/意图/分享文本消息 (QQ) [v6.2.0+].js b/app/src/main/assets-app/sample/应用/意图/分享文本消息 (QQ) [v6.2.0+].js index f0a10593..4ce0341b 100644 --- a/app/src/main/assets-app/sample/应用/意图/分享文本消息 (QQ) [v6.2.0+].js +++ b/app/src/main/assets-app/sample/应用/意图/分享文本消息 (QQ) [v6.2.0+].js @@ -8,4 +8,4 @@ content && app.startActivity({ extras: { 'android.intent.extra.TEXT': content }, packageName: App.QQ.getPackageName(), className: '@{packageName}.activity.JumpActivity', -}); \ No newline at end of file +}); diff --git a/app/src/main/assets-app/sample/应用/意图/启动 URL Scheme (支付宝) [v6.2.0+].js b/app/src/main/assets-app/sample/应用/意图/启动 URL Scheme (支付宝) [v6.2.0+].js index 10cf6045..a0a4203b 100644 --- a/app/src/main/assets-app/sample/应用/意图/启动 URL Scheme (支付宝) [v6.2.0+].js +++ b/app/src/main/assets-app/sample/应用/意图/启动 URL Scheme (支付宝) [v6.2.0+].js @@ -53,4 +53,4 @@ App.ALIPAY.ensureInstalled(); }, }, packageName: App.ALIPAY.getPackageName(), -}); \ No newline at end of file +}); diff --git a/app/src/main/assets-app/sample/应用/意图/转换为 Shell 语句.js b/app/src/main/assets-app/sample/应用/意图/转换为 Shell 语句.js index c993854f..d3146866 100644 --- a/app/src/main/assets-app/sample/应用/意图/转换为 Shell 语句.js +++ b/app/src/main/assets-app/sample/应用/意图/转换为 Shell 语句.js @@ -20,4 +20,4 @@ console.log(app.intentToShell({ type: 'application/pics-rules', data: 'protocol://xxx', category: 'cat003', -}).split(/ (?=-)/).join('\n')); \ No newline at end of file +}).split(/ (?=-)/).join('\n')); diff --git a/app/src/main/assets-app/sample/应用/打开应用.js b/app/src/main/assets-app/sample/应用/打开应用.js index be8dc545..9d2457bb 100644 --- a/app/src/main/assets-app/sample/应用/打开应用.js +++ b/app/src/main/assets-app/sample/应用/打开应用.js @@ -1,2 +1,2 @@ -var appName = rawInput("请输入应用名称"); -launchApp(appName); \ No newline at end of file +var appName = rawInput('请输入应用名称'); +launchApp(appName); diff --git a/app/src/main/assets-app/sample/控件/下拉菜单.js b/app/src/main/assets-app/sample/控件/下拉菜单.js index b92c4c42..52edfa40 100644 --- a/app/src/main/assets-app/sample/控件/下拉菜单.js +++ b/app/src/main/assets-app/sample/控件/下拉菜单.js @@ -1,26 +1,26 @@ -"ui"; +'ui'; ui.layout( 下拉菜单 - + 对话框菜单 - + - - + + , ); -ui.ok.on("click", ()=>{ +ui.ok.on('click', () => { var i = ui.sp1.getSelectedItemPosition(); var j = ui.sp2.getSelectedItemPosition(); - toast("您的选择是选项" + (i + 1) + "和选项" + (j + 4)); + toast('您的选择是选项 ' + (i + 1) + ' 和选项 ' + (j + 4)); }); -ui.select3.on("click", ()=>{ +ui.select3.on('click', () => { ui.sp1.setSelection(2); -}); \ No newline at end of file +}); diff --git a/app/src/main/assets-app/sample/控件/列表控件.js b/app/src/main/assets-app/sample/控件/列表控件.js index e85afede..06a9f429 100644 --- a/app/src/main/assets-app/sample/控件/列表控件.js +++ b/app/src/main/assets-app/sample/控件/列表控件.js @@ -1,42 +1,42 @@ -"ui"; +'ui'; ui.layout( - + - + , ); var downloadId = null; -ui.download.click(()=>{ - if(downloadId){ +ui.download.click(() => { + if (downloadId) { stopDownload(); - }else{ + } else { startDownload(); } }); -function stopDownload(){ - ui.download.text("开始下载"); +function stopDownload() { + ui.download.text('开始下载'); clearInterval(downloadId); downloadId = null; } -function startDownload(){ - if(ui.progress.getProgress() === 100){ +function startDownload() { + if (ui.progress.getProgress() === 100) { ui.progress.setProgress(0); } - ui.download.text("停止下载"); - downloadId = setInterval(()=>{ + ui.download.text('停止下载'); + downloadId = setInterval(() => { var p = ui.progress.getProgress(); p++; - if(p > 100){ + if (p > 100) { stopDownload(); return; } ui.progress.setProgress(p); ui.progress_value.setText(p.toString()); }, 200); -} \ No newline at end of file +} diff --git a/app/src/main/assets-app/sample/控制台/产生随机数.js b/app/src/main/assets-app/sample/控制台/产生随机数.js index 148eacb2..7ab0b0c8 100644 --- a/app/src/main/assets-app/sample/控制台/产生随机数.js +++ b/app/src/main/assets-app/sample/控制台/产生随机数.js @@ -1,24 +1,24 @@ console.show(); -log("将产生5个1到100的随机数"); +log('将产生 5 个 1 到 100 的随机数'); -for(let i = 0; i < 5; i++){ +for (let i = 0; i < 5; i++) { print(random(1, 100)); - print(" "); + print(' '); sleep(400); } -print("\n"); +print('\n'); -log("将产生10个1到20的不重复随机数"); +log('将产生 10 个 1 到 20 的不重复随机数'); var exists = {}; -for(let i = 0; i < 10; i++){ +for (let i = 0; i < 10; i++) { var r; - do{ + do { r = random(1, 20); - }while(exists[r]); + } while (exists[r]); exists[r] = true; - print(r + " "); + print(r + ' '); sleep(400); -} \ No newline at end of file +} diff --git a/app/src/main/assets-app/sample/控制台/保存日志.js b/app/src/main/assets-app/sample/控制台/保存日志.js index f93f6cb6..3e8c105f 100644 --- a/app/src/main/assets-app/sample/控制台/保存日志.js +++ b/app/src/main/assets-app/sample/控制台/保存日志.js @@ -1,7 +1,7 @@ console.setGlobalLogConfig({ - file: "/sdcard/log.txt" + file: '/sdcard/log.txt', }); console.log(1); console.log(2); console.error(3); -app.viewFile("/sdcard/log.txt"); +app.viewFile('/sdcard/log.txt'); diff --git a/app/src/main/assets-app/sample/控制台/打印不同级别.js b/app/src/main/assets-app/sample/控制台/打印不同级别.js index fc970423..18329901 100644 --- a/app/src/main/assets-app/sample/控制台/打印不同级别.js +++ b/app/src/main/assets-app/sample/控制台/打印不同级别.js @@ -9,4 +9,4 @@ try { console.assert(false, `Text from \`console.assert\``); } catch (e) { /* Ignored. */ -} \ No newline at end of file +} diff --git a/app/src/main/assets-app/sample/控制台/打印调用栈 [v6.1.0+].js b/app/src/main/assets-app/sample/控制台/打印调用栈 [v6.1.0+].js index e2d7a010..a729db39 100644 --- a/app/src/main/assets-app/sample/控制台/打印调用栈 [v6.1.0+].js +++ b/app/src/main/assets-app/sample/控制台/打印调用栈 [v6.1.0+].js @@ -20,4 +20,4 @@ function printMessages() { // at consoleTrace.js:5 (printMessages) // at consoleTrace.js:14 // at consoleTrace.js:11 -// at consoleTrace.js:9 \ No newline at end of file +// at consoleTrace.js:9 diff --git a/app/src/main/assets-app/sample/控制台/格式化输出.js b/app/src/main/assets-app/sample/控制台/格式化输出.js index f41ec792..5e58b6af 100644 --- a/app/src/main/assets-app/sample/控制台/格式化输出.js +++ b/app/src/main/assets-app/sample/控制台/格式化输出.js @@ -1,10 +1,10 @@ console.show(); var i = { - name: "小明", + name: '小明', age: 18, - height: 1.72 + height: 1.72, }; -console.log("大家好, 我叫%s, 今年%d岁, 身高%d米", i.name, i.age, i.height); -console.log("实际上我是一个对象啦,长这样子: %j", i); \ No newline at end of file +console.log('大家好, 我叫 %s, 今年 %d 岁, 身高 %d 米', i.name, i.age, i.height); +console.log('实际上我是一个对象啦, 长这样子: %j', i); diff --git a/app/src/main/assets-app/sample/控制台/终端模拟器.js b/app/src/main/assets-app/sample/控制台/终端模拟器.js index d8ada623..50a8c2b7 100644 --- a/app/src/main/assets-app/sample/控制台/终端模拟器.js +++ b/app/src/main/assets-app/sample/控制台/终端模拟器.js @@ -1,12 +1,12 @@ var sh = new Shell(); sh.setCallback({ - onOutput: function(str){ + onOutput: function (str) { print(str); - } -}) + }, +}); console.show(); do { var cmd = console.rawInput(); sh.exec(cmd); -}while(cmd !== "exit"); -sh.exit(); \ No newline at end of file +} while (cmd !== 'exit'); +sh.exit(); diff --git a/app/src/main/assets-app/sample/控制台/调整控制台大小位置.js b/app/src/main/assets-app/sample/控制台/调整控制台大小位置.js index 56b1d06d..299ca3fa 100644 --- a/app/src/main/assets-app/sample/控制台/调整控制台大小位置.js +++ b/app/src/main/assets-app/sample/控制台/调整控制台大小位置.js @@ -1,8 +1,8 @@ console.show(); -console.log("调整大小..."); +console.log('调整大小...'); console.setSize(1000, 1000); sleep(2000); -console.log("调整位置..."); +console.log('调整位置...'); console.setPosition(0, 500); sleep(2000); console.hide(); diff --git a/app/src/main/assets-app/sample/文件读写/写入文本文件.js b/app/src/main/assets-app/sample/文件读写/写入文本文件.js index 6a5b7d6c..cd839706 100644 --- a/app/src/main/assets-app/sample/文件读写/写入文本文件.js +++ b/app/src/main/assets-app/sample/文件读写/写入文本文件.js @@ -1,10 +1,10 @@ -//文件路径 -var path = "/sdcard/1.txt"; -//要写入的文件内容 -var text = "Hello, AutoJs"; -//以写入模式打开文件 -var file = open(path, "w"); -//写入文件 +// 文件路径 +var path = '/sdcard/1.txt'; +// 要写入的文件内容 +var text = 'Hello, AutoJs'; +// 以写入模式打开文件 +var file = open(path, 'w'); +// 写入文件 file.write(text); -//关闭文件 -file.close(); \ No newline at end of file +// 关闭文件 +file.close(); diff --git a/app/src/main/assets-app/sample/文件读写/删除所有空文件夹.js b/app/src/main/assets-app/sample/文件读写/删除所有空文件夹.js index 8b92da13..15240be9 100644 --- a/app/src/main/assets-app/sample/文件读写/删除所有空文件夹.js +++ b/app/src/main/assets-app/sample/文件读写/删除所有空文件夹.js @@ -1,20 +1,20 @@ -if(confirm("该操作会删除SD卡目录及其子目录下所有空文件夹,是否继续?")){ - toast("请点击右上角打开日志"); +if (confirm('该操作会删除 SD 卡目录及其子目录下所有空文件夹, 是否继续?')) { + toast('请点击右上角打开日志'); deleteAllEmptyDirs(files.getSdcardPath()); - toast("全部完成!"); + toast('全部完成!'); } -function deleteAllEmptyDirs(dir){ +function deleteAllEmptyDirs(dir) { var list = files.listDir(dir); var len = list.length; - if(len === 0){ - log("删除目录 " + dir + " " + (files.remove(dir) ? "成功" : "失败")); + if (len === 0) { + log('删除目录 ' + dir + ' ' + (files.remove(dir) ? '成功' : '失败')); return; } - for(let i = 0; i < len; i++){ + for (let i = 0; i < len; i++) { var child = files.join(dir, list[i]); - if(files.isDir(child)){ + if (files.isDir(child)) { deleteAllEmptyDirs(child); } } -} \ No newline at end of file +} diff --git a/app/src/main/assets-app/sample/文件读写/文件编码转换 (高级).js b/app/src/main/assets-app/sample/文件读写/文件编码转换 (高级).js index be609c0c..e0bc736f 100644 --- a/app/src/main/assets-app/sample/文件读写/文件编码转换 (高级).js +++ b/app/src/main/assets-app/sample/文件读写/文件编码转换 (高级).js @@ -1,6 +1,4 @@ - - -convert("/sdcard/1.txt", "utf-8", "/sdcard/2.txt", "gbk"); +convert('/sdcard/1.txt', 'utf-8', '/sdcard/2.txt', 'gbk'); /** * fromFile: 源文件路径 @@ -8,13 +6,13 @@ convert("/sdcard/1.txt", "utf-8", "/sdcard/2.txt", "gbk"); * toFile: 输出文件路径 * toEncoding: 输出文件编码 */ -function convert(fromFile, fromEncoding, toFile, toEncoding){ - fromFile = open(fromFile, "r", fromEncoding); - toFile = open(toFile, "w", toEncoding); - while(true){ +function convert(fromFile, fromEncoding, toFile, toEncoding) { + fromFile = open(fromFile, 'r', fromEncoding); + toFile = open(toFile, 'w', toEncoding); + while (true) { var line = fromFile.readline(); - if(!line) + if (!line) break; toFile.writeline(line); } -} \ No newline at end of file +} diff --git a/app/src/main/assets-app/sample/文件读写/文件编码转换.js b/app/src/main/assets-app/sample/文件读写/文件编码转换.js index 7027f79d..01896a4c 100644 --- a/app/src/main/assets-app/sample/文件读写/文件编码转换.js +++ b/app/src/main/assets-app/sample/文件读写/文件编码转换.js @@ -1,14 +1,14 @@ (/* @IIFE */ () => { - //以UTF-8编码打开SD卡上的1.txt文件 + // 以 UTF-8 编码打开 SD 卡上的 1.txt 文件 var f = open('/sdcard/1.txt', 'r', 'utf-8'); - //读取文件所有内容 + // 读取文件所有内容 var text = f.read(); - //关闭文件 + // 关闭文件 f.close(); - //以gbk编码打开SD卡上的2.txt文件 + // 以 gbk 编码打开 SD 卡上的 2.txt 文件 var out = open('/sdcard/2.txt', 'w', 'gbk'); - //写入内容 + // 写入内容 out.write(text); - //关闭文件 + // 关闭文件 out.close(); })(); diff --git a/app/src/main/assets-app/sample/文件读写/读写文本文件.js b/app/src/main/assets-app/sample/文件读写/读写文本文件.js index b9b0df30..883dff5d 100644 --- a/app/src/main/assets-app/sample/文件读写/读写文本文件.js +++ b/app/src/main/assets-app/sample/文件读写/读写文本文件.js @@ -1,37 +1,37 @@ -//以写入模式打开SD卡根目录文件1.txt +// 以写入模式打开 SD 卡根目录文件 1.txt var file = open('/sdcard/1.txt', 'w'); -//写入aaaa +// 写入 aaaa file.write('aaaa'); -//写入bbbbb后换行 +// 写入 bbbbb 后换行 file.writeline('bbbbb'); -//写入ccc与ddd两行 -file.writelines(['ccc', 'ddd']); -//关闭文件 +// 写入 ccc 与 ddd 两行 +file.writelines([ 'ccc', 'ddd' ]); +// 关闭文件 file.close(); -//以附加模式打开文件 +// 以附加模式打开文件 file = open('/sdcard/1.txt', 'a'); -//附加一行"啦啦啦啦" +// 附加一行 "啦啦啦啦" file.writeline('啦啦啦啦'); -//附加一行"哈哈哈哈" +// 附加一行 "哈哈哈哈" file.writeline('哈哈哈哈'); -//附加两行ccc, ddd -file.writelines(['ccc', 'ddd']); -//输出缓冲区 +// 附加两行 ccc, ddd +file.writelines([ 'ccc', 'ddd' ]); +// 输出缓冲区 file.flush(); -//关闭文件 +// 关闭文件 file.close(); -//以读取模式打开文件 +// 以读取模式打开文件 file = open('/sdcard/test.txt', 'r'); -//读取一行并打印 +// 读取一行并打印 print(file.readline()); -//读取剩余所有行并打印 +// 读取剩余所有行并打印 for (let line in file.readlines()) { print(line); } file.close(); -//显示控制台 -console.show(); \ No newline at end of file +// 显示控制台 +console.show(); diff --git a/app/src/main/assets-app/sample/文件读写/读取文本文件.js b/app/src/main/assets-app/sample/文件读写/读取文本文件.js index 2f8e988e..e32febba 100644 --- a/app/src/main/assets-app/sample/文件读写/读取文本文件.js +++ b/app/src/main/assets-app/sample/文件读写/读取文本文件.js @@ -1,11 +1,11 @@ -//文件路径 -var path = "/sdcard/1.txt"; -//打开文件 +// 文件路径 +var path = '/sdcard/1.txt'; +// 打开文件 var file = open(path); -//读取文件的所有内容 +// 读取文件的所有内容 var text = file.read(); -//打印到控制台 +// 打印到控制台 print(text); -//关闭文件 +// 关闭文件 file.close(); -console.show(); \ No newline at end of file +console.show(); diff --git a/app/src/main/assets-app/sample/无障碍服务/三指下滑.js b/app/src/main/assets-app/sample/无障碍服务/三指下滑.js index a51651d9..49b505e8 100644 --- a/app/src/main/assets-app/sample/无障碍服务/三指下滑.js +++ b/app/src/main/assets-app/sample/无障碍服务/三指下滑.js @@ -1,14 +1,14 @@ -"auto"; +'auto'; /** - * 同时模拟三个手势: - * 从(300, 400)到(300, 1400) - * 从(600, 400)到(600, 1400) - * 从(900, 400)到(900, 1400) - * 每一个的时长都为350毫秒 + * 同时模拟三个手势: + * 从 (300, 400) 到 (300, 1400) + * 从 (600, 400) 到 (600, 1400) + * 从 (900, 400) 到 (900, 1400) + * 每一个的时长都为 350 毫秒 */ -gestures([0, 350, [300, 400], [300, 1400]], - [350, [600, 400], [600, 1400]], - [350, [900, 400], [900, 1400]] +gestures([ 0, 350, [ 300, 400 ], [ 300, 1400 ] ], + [ 350, [ 600, 400 ], [ 600, 1400 ] ], + [ 350, [ 900, 400 ], [ 900, 1400 ] ], ); diff --git a/app/src/main/assets-app/sample/无障碍服务/三指捏合.js b/app/src/main/assets-app/sample/无障碍服务/三指捏合.js index 4a4b9f56..4d0ef337 100644 --- a/app/src/main/assets-app/sample/无障碍服务/三指捏合.js +++ b/app/src/main/assets-app/sample/无障碍服务/三指捏合.js @@ -1,10 +1,10 @@ -"auto"; +'auto'; setScreenMetrics(1080, 1920); -//如果你使用的是MIUI,此脚本运行后会出现桌面多屏幕编辑 +// 如果你使用的是 MIUI, 此脚本运行后会出现桌面多屏幕编辑 home(); sleep(1500); -gestures([350, [800, 300], [500, 1000]], - [350, [300, 1500], [500, 1000]], - [350, [300, 300], [500, 1000]]); \ No newline at end of file +gestures([ 350, [ 800, 300 ], [ 500, 1000 ] ], + [ 350, [ 300, 1500 ], [ 500, 1000 ] ], + [ 350, [ 300, 300 ], [ 500, 1000 ] ]); diff --git a/app/src/main/assets-app/sample/无障碍服务/双指捏合.js b/app/src/main/assets-app/sample/无障碍服务/双指捏合.js index 74d7fa72..1feb24d6 100644 --- a/app/src/main/assets-app/sample/无障碍服务/双指捏合.js +++ b/app/src/main/assets-app/sample/无障碍服务/双指捏合.js @@ -1,9 +1,9 @@ -"auto"; +'auto'; setScreenMetrics(1080, 1920); -//如果你使用的是MIUI,此脚本运行后会出现桌面编辑 +// 如果你使用的是 MIUI, 此脚本运行后会出现桌面编辑 home(); sleep(1500); -gestures([500, [800, 300], [500, 1000]], - [500, [300, 1500], [500, 1000]]); \ No newline at end of file +gestures([ 500, [ 800, 300 ], [ 500, 1000 ] ], + [ 500, [ 300, 1500 ], [ 500, 1000 ] ]); diff --git a/app/src/main/assets-app/sample/无障碍服务/安卓 11 (R) 新增 [v6.1.0+].js b/app/src/main/assets-app/sample/无障碍服务/安卓 11 (R) 新增 [v6.1.0+].js index bf8dc0e8..95809407 100644 --- a/app/src/main/assets-app/sample/无障碍服务/安卓 11 (R) 新增 [v6.1.0+].js +++ b/app/src/main/assets-app/sample/无障碍服务/安卓 11 (R) 新增 [v6.1.0+].js @@ -35,4 +35,4 @@ config.methodNames.forEach((methodName) => { view['btn'].setTransformationMethod(null); view['btn'].on('click', () => toastLog(`${methodName}(): ${automator[methodName]()}`, 'short', 'forcible')); ui['methods'].addView(view); -}); \ No newline at end of file +}); diff --git a/app/src/main/assets-app/sample/无障碍服务/安卓 9 (Pie) 新增 [v6.1.0+].js b/app/src/main/assets-app/sample/无障碍服务/安卓 9 (Pie) 新增 [v6.1.0+].js index 61b3ab56..9995d16e 100644 --- a/app/src/main/assets-app/sample/无障碍服务/安卓 9 (Pie) 新增 [v6.1.0+].js +++ b/app/src/main/assets-app/sample/无障碍服务/安卓 9 (Pie) 新增 [v6.1.0+].js @@ -6,13 +6,13 @@ let config = { textSize: 15, textMargin: 8, requiredApi: 28, - methodNames: ['lockScreen', 'takeScreenshot'], + methodNames: [ 'lockScreen', 'takeScreenshot' ], }; ui.layout( - - - + + + ); ui['requiredApi'].setText(`Required API Level: ${config.requiredApi}`); @@ -22,10 +22,10 @@ ui['currentApi'].setText(`Current API Level: ${device.sdkInt}`); ui['currentApi'].setTextSize(config.textSize); config.methodNames.forEach((methodName) => { - let view = ui.inflate(