SuperMonster003
SuperMonster003
System.gc() 只是一个信号, 并非立即执行. 它相当于告诉 JVM, "建议尽快进行垃圾回收". 垃圾回收本身是一个消耗资源的过程, 若可立即执行, 频繁 gc 会导致应用性能受到严重影响. 不能依赖 System.gc() 做内存释放. 另外当前 issue 的标题是关于如何获取 AutoJs6 剩余运存的, 我还没有提供这方面的帮助. 鉴于 issue 的内容与之不具备足够的关联性, 如果你确实需要, 我再另外提供上述内容的示例代码. 如有其他需求或见解, 欢迎继续讨论.
感谢反馈. 目前 AutoJs6 还没有与 `app.isInstalled` 等价的 "分身是否已安装" 的检测 API (例如 `app.isDualInstalled`). 在正式提供 API 之前, 可以用下面的临时方案进行 "无启动" 的判断: ```js function detectDualUserId() { const cmd = 'cmd user list'; let r; if...
经过测试, 应该是 contentBackgroundAlpha 与 titleBackgroundAlpha 两个属性在 build 选项参数中没有生效. 这是 console.build 方法的 bug. 我会抽空检查一下源码以排查问题. 并不是多次设置透明度会叠加, 一个简单的验证方法: ```js console.build({ size: [0.96, 0.3], position: [0.02, 0.02], title: '会装逼的控制台', titleTextSize: 18, titleTextColor: 'green', titleIconsTint:...
```text setXxxBackgroundAlpha setXxxBackgroundTint setXxxBackgroundColor ``` 以上三种设置背景透明度/着色/基色的方法, 在 console 模块中有两组: ```text setTitleBackgroundAlpha setTitleBackgroundTint setTitleBackgroundColor setContentBackgroundAlpha setContentBackgroundTint setContentBackgroundColor ``` 为方便起见, 仅以 `setTitleBackgroundXxx` 为例讨论后续内容. 通常情况下, 对于 ARGB 颜色, AARRGGBB 中的 AA 由 setTitleBackgroundAlpha...
上述疑问: > 假如已经设置并且执行 show() , 然后动态修改透明度, 还需要 show() 应用吗? 理论上是不需要重新 show() 的. console.setXxx 应该是立即生效的. 但目前 AutoJs6 对于 console 相关的 Setter API 的实现和处理缺乏足够的合理性. 同时我们之前讨论的 "color/alpha/tint" (即 "基色/透明度/色调") 的设计也是不合理的. 未来我打算将上述 Setter 方法仔细检查其内部功能实现的合理性,...
未来 AutoJs6 会支持 `autojs.restart` / `autojs.exit` 方法用于重启或退出应用: ```js autojs.restart(); // 重启应用 autojs.restart('test-123'); // 重启应用并在启动时自动执行工作目录下的 test-123.js 脚本 autojs.restart(['a', 'b', 'c']); // 重启应用并在启动时自动依次执行工作目录下的 a.js, b.js, c.js 脚本. 但注意 b.js 并不会等待 a.js 执行完毕后才会执行,...
```js function restartAndRunScript(scriptPath) { try { let packageName = "org.autojs.autojs6"; let activityManager = context.getSystemService(context.ACTIVITY_SERVICE); console.log("准备重启 Auto.js 并执行脚本:", scriptPath); // 1. 先强制停止应用 activityManager.killBackgroundProcesses(packageName); console.log("已强制停止 Auto.js"); sleep(2000); // 2. 通过 PackageManager 获取启动...
> 我想要内部实现,JS版的,可以吗? 可以的. 以下提供两个脚本, 一个包含 restart/exit 核心功能 (你可以作为模块导出相关函数), 另一个暂时将其命名为 'run-after-restart-if-needed.js', 它作为检测 restart 方法写入 storages 中需要自启的脚本名称列表, 你可以将它设置为一个定时任务 (AutoJs6 启动时). ```js const AlarmManager = android.app.AlarmManager; const SystemClock = android.os.SystemClock; const ActivityManager =...
将第二段代码保存到任意文件中, 例如 run-after-restart-if-needed.js, 文件管理器找到这个文件, 选择 "定时任务", "广播触发任务", "AutoJs6 启动时". 这样, 它将每次随 AutoJs6 启动而启动, 作为 restart 方法传入参数的监测文件. 基本原理是 restart 方法将参数写入 storages 模块创建的 SharedPreferences, 然后 run-after-restart-if-needed.js 文件读取其存入的数据执行对应的脚本.
因为微信有一套自己的无障碍服务白名单, 但仅仅是无障碍服务 ID 完整名称的后半部分. 前半部分的包名没有做验证. 因此网上出现了不少将自身应用的无障碍服务名称 (完整 ID 的后半部分) 设置为白名单内 (典型的是 com.google.android.accessibility.selecttospeak.SelectToSpeakService), 于是可以识别微信控件. 但我总觉得这不是个长久之计, 微信未来很可能会改变白名单的验证 (加上包名验证等), 这样这些方法都失效了. 而且我不希望一个项目为了某个特定应用做这样特定的适配, 尤其是将一个软件服务修改为与其功能并不相符的名称. 所以目前 AutoJs6 并不支持也不会在近期打算支持微信控件识别的特殊适配. 参阅 #432, #382