android: 实时画面卡顿根因是软件画布(6.5→15.1fps),标注统一 + 7x7 细节增强
卡顿: 热像走 SurfaceView.lockCanvas 的软件画布, 每帧在 CPU 上做 320x240 -> ~810x1080 双线性放大 + 清整屏, 实测只有 6.5 帧/秒、单帧 134ms。dumpsys gfxinfo 看不到这条路径(只统计 Compose), 故给渲染线程加自测量日志才定位到。改用 lockHardwareCanvas(API29+, 旧系统回退) 后 15.1 帧/秒、单帧 6.4ms。 同时消除每帧垃圾: 复用翻转缓冲/标记列表, 色条改预渲染位图; 温度扫描从主线程 移到 Dispatchers.Default。 标注统一: 新增 AnnotSpec(唯一几何定义) + MarkerPainter(唯一绘制例程), 实时/ 分析/照片/视频共用, 极端值标签改用 max/min; 照片按传感器朝向 3x 分辨率保存。 修 placeLabel 不判重叠(min 与 max 印成一团), 现支持让位。 分析对齐: 极端值漏了 sensorToPhoto 映射(落在左上角几十像素内), annotateJpeg 忽略照片镜像(另存时标记镜像到另一侧), 两处已修。 新增 BLOCK_EXTREMES(0x5BB5B562) 存拍摄时的极值位置/温度: 分析页重扫 NUC 不可能 逐位复现 live 结果, 真机出现过两个相距几像素的 min。 分析面板被导航栏遮挡: UiInsets.navPx 改可观察状态并加 padding。 7x7 局部细节增强(官方 FilterDetailEnhancement_Simple 逐行移植), 强度换算 level shl 3 经 MAG_SetDetailEnhancement(钳 0..32)核对一致; 设置页新增 "图像增强" 0-4 级, 默认关闭(无官方参考输出), 不影响逐位基线。 真机验证(小米 22041211AC/Android12/MIUI): 15.1fps、拍照含 2 探针+2 极值、 照片与分析页标记位置/风格一致且各只有一个 min/max、分析数值与照片吻合、 增强 2 级细节明显且不掉帧。测试 96 项全绿。
This commit is contained in:
Binary file not shown.
Reference in New Issue
Block a user