端侧 AI · 内存
Android 本地图片 AI 的 Bitmap 复用边界
限制解码图与工作缓冲,同时避免保留过期用户内容。
主查询:本地 AI Bitmap 复用 · 核验:2026-09-16 · 事实卡:MEMORY-01
先给结论
针对本地 AI 场景的 Bitmap 复用,必须严格限制在解码图与工作缓冲两类对象上,避免把任何形式的过期用户内容当作可回收缓存继续持有;这是来自现有事实卡的明确边界,不可以向外推断额外的可复用对象或生命周期假设。
需要先收集的证据
至少把下面三项与同一个 artifact、运行时和任务绑定:
- 原图与工作尺寸
- buffer 所有权
- 连续拍摄内存轨迹
若缺一项,就把它写成未知,不要用模型参数、芯片宣传或网上截图代替。
实施流程
为保证复用行为可追溯,需要在同一会话内系统记录原图尺寸与工作尺寸、每块 buffer 的所有权归属,以及连续拍摄过程中的内存占用轨迹,并在后续流程中按这些记录做对比,避免凭直觉判断复用是否安全。
- 记录真实 artifact
- 测未加载基线
- 测加载后状态
- 跑代表任务
- 跑最大承诺输入
- 连续运行并观察释放
最容易写错的地方
- 保留所有 preview
- 复用 UI 仍持有的 bitmap
历史错误模式已表明,复用失败往往是因为保留了所有 preview 帧,或在复用时 UI 仍持有旧 bitmap 的引用,因此可发布的结论也只能限定在这些已记录的问题之上,不能推及未出现过的其他场景。
最小复现记录
| 层 | 必须记录 |
|---|---|
| 设备 | 型号、芯片、系统、RAM 档位 |
| 软件 | App 版本与 git commit |
| 模型 | 家族、变种、revision、格式、长度、hash、量化 |
| 运行时 | 版本、请求后端、实际后端证据 |
| 任务 | fixture、输入 hash、prompt hash、输出规则 |
| 结果 | 完成、失败、取消、回退与恢复 |
发布检查单
- 目标查询已在开头直接回答。
- 所有数字都能回到事实卡或原始记录。
- artifact、runtime、设备与任务没有混淆。
- 失败、取消、清理与回退都被测试。
- 隐私和网络边界单独说明。
- 结论只适用于记录中的配置。
事实来源与延伸
本页使用奇连 AI 的端侧事实卡镜像,性能结论等待 Cove 原始 benchmark 数据。