Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

支持 adb #44

Closed
NateScarlet opened this issue Jun 12, 2021 · 24 comments
Closed

支持 adb #44

NateScarlet opened this issue Jun 12, 2021 · 24 comments
Labels
enhancement New feature or request

Comments

@NateScarlet
Copy link
Owner

from #42

adb和模拟器没法指定分辨率 模版匹配难度会提升

@NateScarlet NateScarlet added the enhancement New feature or request label Jun 12, 2021
@fatinghenji
Copy link

不是很有道理(但是很容易)的解决方案:
电脑的模拟器和安卓虚拟机都可以手动设定分辨率和dpi,直接让用户按规定的分辨率和dpi使用。
隔壁方舟的托管就是这样解决的

@NateScarlet
Copy link
Owner Author

NateScarlet commented Jun 13, 2021

现在的截图用的不是标准大小 而是 466 x 828 需要把所有数据都改成适配 540 x 960 的

这个分辨率是从它默认的窗口大小提取出来的,然后我发现它默认大小好像每次都不一样

@NateScarlet
Copy link
Owner Author

然后我自己不能用 540 x 960 因为我副屏放三行的任务栏 剩余空间没有 960 那么高

@fatinghenji
Copy link

现在的截图用的不是标准大小 而是 466 x 828 需要把所有数据都改成适配 540 x 960 的

好家伙,那工作量确实好大

这个分辨率是从它默认的窗口大小提取出来的,然后我发现它默认大小好像每次都不一样

?还有这种奇怪的事情?

@NateScarlet
Copy link
Owner Author

不过增大分辨率也有好处就是OCR更难出错 如果能实现后台挂机那我也不需要放副屏了

@fatinghenji
Copy link

fatinghenji commented Jun 13, 2021

现在的截图用的不是标准大小 而是 466 x 828

vmos那个安卓手机端的虚拟机支持非标准大小,下面这张图就是466X828的分辨率
image
不过我真没想到会这么糊

@NateScarlet
Copy link
Owner Author

NateScarlet commented Jun 14, 2021

我在把坐标都改成相对窗口宽度的 0b53044

然后后面再加上识图的时候统一缩放成 540x960 的 看精确度咋样

@fatinghenji
Copy link

好诶!可以放出一个测试版吗?一会到家了可以试试

@NateScarlet
Copy link
Owner Author

还没加呢 现在重构就是方便新写的功能不需要后面重新适配

@fatinghenji
Copy link

辛苦作者了!我是个只会提需求的笨比

@Splendent
Copy link

如果能支援模擬器ADB那真是幫了大忙了,畢竟在WINDWOS上用VPN有太多不便,DMM GAMES本身程式又擋vm,我身邊兩三個同事也是有相同需求;
更新這麼勤奮必須給個star⭐! 👍

NateScarlet added a commit that referenced this issue Jun 14, 2021
prepare for #44

all old event choices will
not match any event in new clinet size
@NateScarlet
Copy link
Owner Author

开发分支已经改成用 540x960 了 改了之后所有育成事件都要重新选

模版我是全部整体放大的 跑了一次育成发现非文本模版大多都能直接用

等所有功能都用过一遍再放到 master

NateScarlet added a commit that referenced this issue Jun 15, 2021
prepare for #44

all old event choices will
not match any event in new clinet size
@NateScarlet
Copy link
Owner Author

我在模拟器上装了测试了 发现模拟器窗口也不能后台点击 估计游戏不处理 windows 的点击消息

只能模拟器也通过 adb 来操作

@NateScarlet NateScarlet changed the title 支持 adb/模拟器 支持 adb Jun 19, 2021
@fatinghenji
Copy link

fatinghenji commented Jun 19, 2021

对哇,模拟器也需要通过adb

device:
  # ADB server 的端口。部分模拟器为避免冲突可能会将 ADB server 开在其他端口,
  # 此时可以更改此设置以利用模拟器自带的 ADB server。
  # adb_server: 127.0.0.1:5037

  # 需要启动 adb server 时,使用的 adb 命令
  # 为空时则尝试: 1. PATH 中的 adb;
  #               2. ADB/{sys.platform}/adb;
  #               3. 查找 Android SDK(ANDROID_SDK_ROOT 和默认安装目录)
  adb_binary:
  # 以下为部分模拟器提供的 adb 程序,不一定正确,仅供参考
  # adb_binary: D:\leidian\LDPlayer\adb.exe             # 雷电模拟器
  # adb_binary: C:\Program Files\BlueStacks\HD-Adb.exe  # BlueStacks
  # adb_binary: C:\Program Files (x86)\MuMu\emulator\nemu\vmonitor\bin\adb_server.exe  # MuMu模拟器

  # 始终选择指定设备进行操作(指定 adb devices 中列出的名称)
  # adb_always_use_device:

  # 无设备连接时进行的操作
  # 如果某个操作报告成功,则不再执行后续定义的操作
  adb_no_device_fixups:
  - run: probe_bluestacks_hyperv  # 自动探测并连接 BlueStacks Hyper-V 的 ADB 端口
  - run: adb_connect  # 连接 ADB TCP/IP 端口
    target:
    - 127.0.0.1:5555    # 大部分模拟器
    - 127.0.0.1:7555    # MuMu模拟器
    try_all: false  # 某个端口连接成功后,是否继续尝试后续定义的端口

  # 使用兼容性较好(但较慢)的截图方式
  compat_screenshot: false

  # 通过 adb 传输模拟器截图数据较慢时,尝试绕过 adbd 传输截图数据
  # 模拟器判断逻辑:1. 设备名称以 "emulator-" 或 "127.0.0.1:" 开头
  #                 2. ro.product.board 包含 goldfish(SDK emulator)或存在 vboxguest 模块
  # 可用选项:never, auto, always
  workaround_slow_emulator_adb: auto

  # 截图缓存:如果两次截图间隔小于上次截图耗时,则直接返回上次的截图
  cache_screenshot: true

隔壁明日方舟护肝助手的config文件,可以参考下
他们家的图形界面也用户友好,所以能安排下图形界面吗?

@NateScarlet
Copy link
Owner Author

NateScarlet commented Jun 19, 2021

他们家的图形界面也用户友好,所以能安排下图形界面吗?

没空 这项目主要目的是我自己省时间 如果我花大量时间维护就本末倒置了
或者你要他们去开个赛马娘的项目

@NateScarlet
Copy link
Owner Author

NateScarlet commented Jun 19, 2021

图片
发现 adb 其实是可以设置分辨率的 不过如果是实机感觉改分辨率不太好 实机根本改不了

@NateScarlet
Copy link
Owner Author

NateScarlet commented Jun 19, 2021

虽然后台操作实现了 但是不知为啥模拟器分辨率540x960好糊

EDIT: 我改成 1920x1080 320 DPI 清晰度和桌面差不多 可能DMM版实际上渲染的像素量和窗口大小无关

@NateScarlet
Copy link
Owner Author

支持高分辨率途中发现一个bug 现在的育成事件截图区域其实都歪了 还是用的 466 宽时候的坐标

@Splendent
Copy link

問下,現在推薦ANDROID解析度/DPI?
在想要不要重設我的JSON來適應ANDROID

目前使用NOX PLAYER設定540x960, 120dpi,有的字需要重新辨認

@NateScarlet
Copy link
Owner Author

@Splendent

我开发测试发现 1080x1920 的清晰度和电脑差不多 dpi应该只影响模拟器显示默认窗口的大小 脚本用像素作为基本单位所以无所谓

@Splendent
Copy link

Splendent commented Jun 20, 2021

做了個測試,有事先清空過orc_images.local

120dpi 320dpi 480dpi
540x960 ラ需辨認 X ラ需辨認
1080x1920 正常運作 正常運作 "級"需辨認

540x960 120dpi
c5e4b7fa93d2bf7b1e5eabdedf3ea541
540x960 480dpi
79bdaaeae5a2bd0af59b2d8defaaf210
1080x1920 120dpi
12533dba703c46f44a440692c6616726
1080x1920 320dpi
12533dba703c46f44a440692c6616726
1080x1920 480dpi
00c47ad07608578e2bbd5e43bfda1e36

目前應該會採用120dpi繼續跑 🐎

@NateScarlet
Copy link
Owner Author

日期的背景有可能导致误差 用白色背景的文字测试比较好

@Splendent
Copy link

Splendent commented Jun 20, 2021

@Splendent

我开发测试发现 1080x1920 的清晰度和电脑差不多 dpi应该只影响模拟器显示默认窗口的大小 脚本用像素作为基本单位所以无所谓

看起來是這樣沒錯 👍
以下兩份LOG為在1080x1920底下跑的辨認測試,相似度毫無差異....但無法理解上面的RA圖為什麼到了480dpi就有差異
120dpi
auto_derby_120dpi.log
320dpi
auto_derby_320dpi.log

其他解析度的就更慘了
900x1600
120dpi
auto_derby_1600x900_120dpi.log
320dpi
auto_derby_1600x900_320dpi.log

1440x2560
auto_derby_1440x2560_320dpi.log

日期的背景有可能导致误差 用白色背景的文字测试比较好

我不會弄! 😆

@NateScarlet
Copy link
Owner Author

adb 养成了个 10000 分的好歌剧 合并到主分支了

但是我自己主要还是需要用前台来挂:

  • adb 各种操作等待生效时间都比较长
  • 机器配置不行 模拟器帧数很低
  • 模拟器用UU加速器我手机就没法用加速

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants