V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
FaiChou
V2EX  ›  程序员

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

  •  
  •   FaiChou ·
    FaiChou · 2021-12-07 13:45:58 +08:00 · 1698 次点击
    这是一个创建于 1090 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    11 条回复    2021-12-08 10:35:43 +08:00
    liuxu
        1
    liuxu  
       2021-12-07 13:50:20 +08:00 via Android
    没什么无用功,就是定时获取色块对比
    FaiChou
        2
    FaiChou  
    OP
       2021-12-07 13:54:58 +08:00
    @liuxu 哦这样啊, 是这个逻辑不:

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

    setInterval(对比色块, 100);
    lisongeee
        3
    lisongeee  
       2021-12-07 14:02:14 +08:00
    不能检测 view tree 的变化吗?
    ukyoo
        4
    ukyoo  
       2021-12-07 14:06:45 +08:00
    APP 聊天区是原生的不, 安卓的可以用 AccessibilityService 做, 监听 AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED, 类似微信抢红包
    FaiChou
        5
    FaiChou  
    OP
       2021-12-07 14:08:36 +08:00
    @ukyoo 哦哦 我去看看, 是个游戏. 不知道是不是原生的.
    ohwind
        6
    ohwind  
       2021-12-07 14:19:44 +08:00
    @FaiChou 游戏一般是引擎绘图的,靠安卓原生提供的辅助功能是做不了的。只能读内存或者靠抓包,当然你非要截图做图像分析也不是不可以
    FaiChou
        7
    FaiChou  
    OP
       2021-12-07 14:24:02 +08:00
    @ohwind 是不是截图做图像分析会很慢.. 读内存或者利用比如 4L 说的 Accessibility 功能来实现的话(假如能够使用) 会不会侵入了游戏里面, 被游戏检测到有封号的风险?
    huruwo
        8
    huruwo  
       2021-12-07 15:35:42 +08:00
    游戏可以嵌入 SDK 做 view 层的节点获取
    lakehylia
        9
    lakehylia  
       2021-12-07 15:40:42 +08:00
    直接过滤聊天的内容 api 不就行了
    loveminds
        10
    loveminds  
       2021-12-07 16:24:05 +08:00
    @FaiChou Accessibility 是正当的接口,不过具体也得看游戏公司
    SmiteChow
        11
    SmiteChow  
       2021-12-08 10:35:43 +08:00
    只读操作请使用中间人攻击,需要写操作才上 auto.js
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1016 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 177ms · UTC 19:03 · PVG 03:03 · LAX 11:03 · JFK 14:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.