开发手机辅助, 如何检测区域内容变化?

2021-12-07 13:45:58 +08:00
 FaiChou

使用 auto.js 来开发一个 APP 辅助.

APP 左侧区域是聊天区, 右侧是活动区, 活动区会有轮播图滚动.

目的是识别左侧聊天区的内容, 聊天区能发送一些相关的悬赏任务或者纯聊天, 需要识别相应的悬赏, 而且用户多, 高级悬赏很快会被抢空. 所以需要快速识别.

目前想到的方法是截图, 然后根据相应高级悬赏图片匹配对应的位置. 但这样需要每秒钟截图一次, 然后匹配对比. 这样延迟大, 而且如果聊天区域长时间没有动静, 这样会做很多无用功.

所以有什么方法可以动态判断左侧区域有变化? 变化后再识别对比.

1546 次点击
所在节点    程序员
11 条回复
liuxu
2021-12-07 13:50:20 +08:00
没什么无用功,就是定时获取色块对比
FaiChou
2021-12-07 13:54:58 +08:00
@liuxu 哦这样啊, 是这个逻辑不:

function 对比色块() {
// blabla
if (match) {
截图对比();
}
}

setInterval(对比色块, 100);
lisongeee
2021-12-07 14:02:14 +08:00
不能检测 view tree 的变化吗?
ukyoo
2021-12-07 14:06:45 +08:00
APP 聊天区是原生的不, 安卓的可以用 AccessibilityService 做, 监听 AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED, 类似微信抢红包
FaiChou
2021-12-07 14:08:36 +08:00
@ukyoo 哦哦 我去看看, 是个游戏. 不知道是不是原生的.
ohwind
2021-12-07 14:19:44 +08:00
@FaiChou 游戏一般是引擎绘图的,靠安卓原生提供的辅助功能是做不了的。只能读内存或者靠抓包,当然你非要截图做图像分析也不是不可以
FaiChou
2021-12-07 14:24:02 +08:00
@ohwind 是不是截图做图像分析会很慢.. 读内存或者利用比如 4L 说的 Accessibility 功能来实现的话(假如能够使用) 会不会侵入了游戏里面, 被游戏检测到有封号的风险?
huruwo
2021-12-07 15:35:42 +08:00
游戏可以嵌入 SDK 做 view 层的节点获取
lakehylia
2021-12-07 15:40:42 +08:00
直接过滤聊天的内容 api 不就行了
loveminds
2021-12-07 16:24:05 +08:00
@FaiChou Accessibility 是正当的接口,不过具体也得看游戏公司
SmiteChow
2021-12-08 10:35:43 +08:00
只读操作请使用中间人攻击,需要写操作才上 auto.js

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/820594

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX