Files
metin2-client/docs/ANDROID-TESTING.md

51 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Android 原生客户端测试
当前 APK 由 `android/build.sh` 构建,使用 SDL3 + Vulkan;应用包名 `org.metin2port.client`,ABI 为 `arm64-v8a`,最低 API 24。
## 安装和资源
```sh
./android/build.sh [Debug|Release] [--launch]
```
构建完成后,如果有一台已授权的设备(多台时用 `ANDROID_SERIAL` 指定),脚本会:
1. `adb install -r` 安装 APK;签名不一致(别的机器的 debug key)时卸载重装,应用数据随之清空。
2. 运行 `android/push-client.sh --locale zh`,把资源同步到应用私有目录 `files/Client`。中文资源 `build/zh-locale/Client` 的输入(`data/zh_40250`、`scripts/build_zh_locale.py`、`Client/pack/Index`)有变化时先重新生成。
3. 带 `--launch` 时唤醒手机并启动应用;锁屏状态下只提示解锁(锁屏启动会因 Vulkan surface 错误退出)。
没有设备时只构建 APK。其他选项:`--no-deploy` 只构建,`--no-push` 只安装,`--locale XX` 用 `Client/locale_XX.cfg`,`--full-push` 删除设备上的资源后全量重传。
资源同步是增量的:设备上的 `files/Client/.mt_sync` 记录上次写入的文件(大小、修改时间),之后只传新增和改动的文件,并删除本地已不存在的文件;第一次同步传完整的约 1.4 GB。只同步游戏资源(`pack/`、`sound/`、`BGM/`、`channel.inf`、`locale*.cfg`),应用自己写的设置和性能日志不会被覆盖或删除。单独同步资源:`./android/push-client.sh [--locale zh] [--full] [--dry-run] [CLIENT_DIR]`。
APK 本身包含 `libmain.so`、`libSDL3.so`、着色器和 Python 2.7 标准库,不包含 40250 客户端资源。
## 连服务器
```sh
adb shell am start -n org.metin2port.client/.MainActivity \
--es args "--live-server HOST:AUTH_PORT:GAME_PORT --login-screen"
```
从桌面图标启动(不传参数)时连接 `MainActivity.DEFAULT_ARGS` 里的真服登录界面;显式传入不含 `--live-server` 的参数时运行进程内假服。测试真服前确认模拟器/设备能访问相应主机与端口。用 `adb logcat` 查看崩溃和启动错误。`adb devices -l` 没有设备时,先连接模拟器或开启真机 USB 调试。
更详细的构建依赖与命令见 [src/host/README.md](../src/host/README.md)。
## Mi 8 Lite / Adreno 512
2026-09-30 真机适配:绘制状态使用动态 uniform buffer,片元着色器按纹理混合和透明测试状态编译专用管线,
减少 Adreno 512 每个像素的存储读取和动态分支。Android 的默认场景分辨率仍为 75%、MSAA 2×,UI 保持屏幕分辨率。
此 GPU 首次启动默认使用省电模式(30 FPS);已保存的帧率设置和显式命令行参数优先,其他 GPU 不改变默认模式。
`--generic-shaders`(或 `MT_GENERIC_SHADERS=1`)保留 uniform buffer、关闭片元专用化,供诊断对比。
完整测量和画面对比见 [Mi 8 Lite 适配记录](XIAOMI8LITE-ADAPTATION-20260930.md)。
可重复的分段性能测试(需已安装 APK 并同步资源):
```sh
ANDROID_SERIAL=<serial> python3 tools/perf/run_render_isolation.py build/qa/device-test \
--sections baseline,terrain,baseline_repeat --render-scale 0.75 --msaa 2 --fps-cap 30
```
每段排除首个加载后的采样窗口,记录 6 个 2 秒窗口;输出 CSV、截图、内存快照和汇总 JSON,结束后恢复正常登录启动。