Kotlin 层三个文件(刻意零第三方依赖,纯 View 布局——阶段 1 只验证链路): - RustBridge.kt:android-ffi 的 JNI 声明 + 帧头拆解(25 字节定长头 + Annex-B 载荷) - H264Decoder.kt:MediaCodec 同步模式 + Surface 直出;内置两条实测教训—— 只用 getInputBuffer(i)(Exynos Quirk)、awaitingIdr 状态机(R-3 跳帧断参考链) - MainActivity.kt:连接/解码循环/触摸绝对坐标映射;断开顺序遵守 「先停解码线程 join 后 destroy」的 FFI 纪律 构建链(build-android.ps1,一条命令:cargo ndk -> .so -> gradle assembleDebug -> 安装启动): - 路径自适应( 定位仓库根),local.properties 自动生成 - gradle.properties 固定 JDK 17,不动全局 JAVA_HOME 真机验收(vivo S6 / 192.168.1.163 -> PC / 192.168.1.180:47800): - agent 日志:peer connected + auth ok, desktop 2560x1440 - 手机截图:Windows 桌面(WPS 文件列表)已渲染在 SurfaceView 上 证据:evidence/screen-connected.png(本地,不入库) 已知环境限制(记录在个人层 baseline):本机 Windows 防火墙的 agent.exe 程序级放行规则对 UDP 入站不生效(临时关防火墙即通),QQPC 驱动级防护 静默拦 TCP 入站(管理员无法停止/杀死)。阶段 2 前需落定长期方案: 端口级防火墙规则或换开发机。 |
||
|---|---|---|
| .. | ||
| android-viewer | ||