51 lines
3.3 KiB
Markdown
51 lines
3.3 KiB
Markdown
# 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,结束后恢复正常登录启动。
|