通过 Android 悬浮窗框选出游戏背包区域,借助 Shizuku 权限执行触控注入与截屏,用图像识别自动把相同的物品拖动合并到一起,实现一键自动整理背包。
本项目仅用于学习 / 自动化研究,请遵守游戏与服务条款,谨慎使用。
- 悬浮窗理包器:全局悬浮窗面板,所有理包操作都在悬浮窗里完成。
- 框选区域:全屏拖拽框选出游戏背包格子区域,并按行列显示网格预览。
- 自动整理:截图 → 识别格子 → 相似度聚类相同物品 → Shizuku 触控拖动物品合并。
- 图像识别:轻量指纹(归一化灰度缩略图)+ 余弦相似度,无需联网即可识别。
- 开发者工具:
- Shizuku 截图到缓存(退出自动清除)→ 框选物品图标
- 上传本地图片作为识别模板
- 弹命名弹窗导出图标包(区分不同游戏),分享上传
- 把模板 / 说明同步到 GitHub 仓库
- 开发者把导出的图标包预制到
assets/presets/<游戏名>/,随 APK 发布,用户开箱即用
| 能力 | 实现方式 |
|---|---|
| 触控注入(拖动) | Shizuku 执行 input swipe/tap |
| 截屏 | Shizuku 执行 screencap -p 读取 PNG |
| 悬浮窗 | SYSTEM_ALERT_WINDOW(TYPE_APPLICATION_OVERLAY) |
| 识别 | 本机灰度指纹 + 余弦相似度聚类 |
- 安装并启动 Shizuku(非 root 需用无线调试 / ADB 启动)。
- 安装本仓库
release/下的 APK,授予悬浮窗权限,并在 App 内点击“授予 Shizuku 权限”。 - 回到游戏,打开悬浮窗 → 框选区域,框出背包格子区域。
- 在开发者工具里设置背包实际的行列数(如 8 列 x 6 行)。
- 点击 开始整理,悬浮窗会自动截图并拖动物品合并,同屏日志实时显示进度。
# 需要 JDK 17+ 与 Android SDK
# 在 local.properties 中设置 sdk.dir
gradle :app:assembleRelease发行版签名配置在 app/build.gradle.kts 的 signingConfigs.release,正式发布时请替换为你自己的 keystore。
本项目仅供个人学习研究。请勿用于违反游戏规则或相关法律法规的场景。因使用本项目产生的任何后果由使用者自行承担。