Autoxjs658魔改

Change Log

6.5.8.14

修复(一半): 打包后无法安装


偶尔可能出现无法直接安装,自己用MT管理器签名即可

修复: 申请截图权限失败

添加: 授予管理所有文件权限

升级: 将 targetSdk 改为 35(安卓 15)


有可能会出现一些未知的 bug

修改(658): app打包签名报毒

修复(魔改): looper 初始化之前创建 AdbIME 对象导致报错闪退

修复(658): 多选对话框无法使用

6.5.8.13

修改(658): 无障碍服务类名

添加: 一些编辑器提示栏符号

添加: 编辑器编辑菜单粘贴

修复(魔改): 两个内存泄露

修改: app 文档服务和 v1 本地文档改为新版 v1 文档

添加: 悬浮窗保持屏幕常亮


floaty.keepScreenOn();

// 之后创建的<第一个>悬浮窗将会使屏幕保持常亮

添加: 设置布局分析捕获完成提示

6.5.8.12

(L.)添加(vscode插件): goScoper

https://github.com/ozobiozobi/Auto.js-VSCode-Extension/releases

修复(尽力局): app 无法停止脚本


这应该是最后一次修这个bug了,如果还是不行的话,只能靠你们自己的代码解决了

(脚本是一个线程,只能通过 thread.interrupt() 优雅地结束)

修复(658): 悬浮窗点击输入无法弹出输入法

添加: App 开机自启 (需要后台弹出界面 自启动 权限)

添加: 打包后开机自启 (需要后台弹出界面 自启动 权限)

更新: v1 文档 ui 控件使用方法 (BMX)

6.5.8.11

添加: 时间转时间戳


// dateStr: 时间字符串 (如: 2025-01-20)

// pattern: 时间字符串对应的模式 (如: yyyy-MM-dd)

let ts = dateToTimestamp(dateStr, pattern)

添加: v1 在线文档、社区 (由 BMX 提供)

修复(6.5.8.11): App 停止脚本后打开日志页面返回闪退

添加: 魔改充电

修复(6.5.8.10): App 无法停止脚本 (这回应该没问题了)

添加: Shizuku - 开关 (哈哈)

6.5.8.10

优化: 布局层次分析页面


修复 compose 无法触发重组

调整按钮大小和位置

将标记箭头改为方框,并在拖动时跟随

在隐显按钮和当前选中节点边界之间添加连接线

移除(6.5.8): 新版编辑器

修复(6.5.8): App 无法停止脚本 ( 好像可以秒停 @.@ )

添加: networkUtils


networkUtils.isWifiAvailable()

networkUtils.getWifiIPv4()

networkUtils.getIPList()

添加: 文档服务


vscode, 启动!

什么, 文档404了?

没事, 还有后背隐藏能源

6.5.8.9

优化(6.5.8): 还是布局层次分析页面


就, 好看了一点吧 (也可能是我谦虚了

修复(6.5.8): 布局层次分析页面


显示选中不唯一

返回无法关闭页面

添加: 布局层次分析页面:


(标记/施法)按钮

   数数?为什么不用法术(@-@)

   选择第一个节点之后点击标记

   再选择第二个节点然后点击施法

   生成从第一个节点到第二个节点的路径

   例如:.parent().child(1)



显示描述和文本



显示当前选中节点的所有直系长辈 ( 大概就这个意思 -.- )



显示当前选中节点的孩子



标记当前选中节点的兄弟



给当前选中节点周围添加标记

   没有火眼金睛? 不要紧, 我来助你



切换是否可以折叠 ( 化 bug 为功能:D )



布局分析, 为所欲为 QwQ

6.5.8.8

优化: 夜间模式

优化: 布局层次分析页面:


修复展开后不可收起

隐藏按钮可拖动

修复(6.5.8.7): 布局分析相关 bug

更改(6.5.8): App 抽屉页面使用随机彩色图标

修复(6.5.8.7): App 布局分析刷新显示不全


一般用不到刷新, 除非画面发生变动之后捕获结果没有改变

(刷新会比等待捕获多花 2-3 倍的时间)

添加: App 布局分析等待捕获、延迟捕获开关


布局分析, 随心所欲(~.-

添加: 截图是否返回新的对象


// 即使一直使用同一张缓存图像(屏幕没有发生变化), img1 和 img2 都不会是一个对象

// 反之如果不加参数 true, img1 === img2

let img1 = images.captureScreen(true)

let img2 = images.captureScreen(true)

6.5.8.7

添加: 获取屏幕实时宽高


let curW = device.getCurWidth()

let curH = device.getCurHeight()

let size = device.getCurScreenSize()

// size.x == curW

// size.y == curH

添加: 获取当前屏幕方向


//竖屏: 1  横屏: 2

let ori = getCurOrientation()

添加: 布局分析刷新开关


有些情况刷新会出问题(比如某音极速版啥的),

可以关掉刷新,点开悬浮窗后,自己看情况等上一段时间再点分析

添加: 通过 setClip 复制的文本会发送到 vscode 的输出


例如: 布局分析复制控件属性/生成代码后点击复制

脚本使用 setClip

(长按手动复制不会触发)

优化(6.5.8): 减少 App 悬浮窗点击响应时长(慢不了一点

更改: App 抽屉页面

添加: 将 adbConnect、termux、adbIMEShellCommand、sendTermuxIntent 添加到全局

添加: viewUtils


let v1 = viewUtils.findParentById(view,id)

let sp = viewUtils.pxToSp(px)

let px = viewUtils.dpToPx(dp)

let dp = viewUtils.pxToDp(px)

let px = viewUtils.spToPx(sp)

添加: 获取 raw 悬浮窗 contentView


let fw = floaty.window(<frame id="content"></frame>)

let contentView = fw.getContentView()

// contentView === fw.content

6.5.8.6

优化: 启动 App 自动连接不显示 toast

升级: SDK35、gradle-8.7、AGP-8.6.0

添加: 获取状态栏高度(px)


let h = getStatusBarHeight()

添加: 获取当前存在的本地存储 名称[路径] 数组


let arr = storages.getExisting([returnPath])

添加: 布局分析截图开关

6.5.8.5

修复(6.5.8.2): 布局分析影响脚本截图服务

添加: 跟踪堆栈行号打印


// 让 bug 无处可藏 >_>

traceLog("嘿嘿"[,path(输出到文件)])

添加: 时间戳格式化


// ts: 时间戳, 默认为当前时间戳

// format: 时间格式, 默认为 "yyyy-MM-dd HH:mm:ss.SSS"

let fm = dateFormat([ts,format]);

添加: 设置 http 代理(options)


// 设置代理: 

http.get(url, {proxyHost:"192.168.1.10", proxyPort:7890})

// 身份认证: 

{userName:"ozobi", password:1014521824}

添加: 设置 http 尝试次数、单次尝试超时时间(options)


// 一共尝试 3 次 ( 默认 3 ), 每次 5s ( 默认 10s ) 超时

http.get(url, {maxTry:3, timeout: 5000})

修改(6.5.8): 将布局层次分析页面的彩色线条数量改为与 depth 相等

优化(6.5.8.2): 布局分析不显示异常截图(宽高异常/全黑截图)

6.5.8.4

修复(6.5.8): 某些设备 RootAutomator 不生效

修复(6.5.8.3): 找不到方法 runtime.adbConnect(string, number)

修复(6.5.8.3): 布局分析时反复申请投影权限

添加: Adb 输入法


let adbIMESC = runtime.adbIMEShellCommand;

let command = adbIMESC.inputText("嘿嘿");

// 执行命令: adb shell + command;

// 将输出文本 嘿嘿 到当前光标所在位置(需要先启用然后设置为当前输入法)



// 以下命令皆是 adbIMESC.xxx

enableAdbIME() // 启用adb输入法

setAdbIME() // 设置adb输入法为当前输入法

resetIME() // 重置输入法

clearAllText() // 清除所有文本

inputTextB64(text) // 如果inputText没用试试这个

inputKey(keyCode) // 输入按键

inputCombKey(metaKey, keyCode) // 组合键

inputCombKey(metaKey[], keyCode) // 多meta组合键



// meta 键对照:

// SHIFT == 1

// SHIFT_LEFT == 64

// SHIFT_RIGHT == 128

// CTRL == 4096

// CTRL_LEFT == 8192

// CTRL_RIGHT == 16384

// ALT == 2

// ALT_LEFT == 16

// ALT_RIGHT == 32



// 输入组合键: ctrl + shift + v:

adb shell + runtime.adbIMEShellCommand.inputCombKey([4096,1], 50);

增强: 调用 termux


安装 termux (版本需 0.95 以上)

编辑 ~/.termux/termux.properties 文件, 将 allow-external-apps=true 面的注释#去掉, 保存退出

安装 adb 工具

pkg update

pkg install android-tools

adb 连接手机后授权 autoxjs (打包后的应用也需要授权)

(如果有)手机需要开启 USB 调试 (安全设置)

adb shell pm grant 包名 com.termux.permission.RUN_COMMAND

调用: runtime.termux("adb shell input keyevent 3") 返回桌面

这里默认后台执行, 若想使用自己构建的 intent 可以使用 runtimesendTermuxIntent(intent)

......................

最后由 ozobi 编辑 1天之前