v0.9.2 更新内容
🐛 Bug 修复
- 漫画历史记录预览页修复:旋转后 ImageView 上下黑边遮挡(改用 imageMatrix 旋转而非 View.rotation,消除父容器裁切);三态切换(译文/原文/纯原图)崩溃修复(renderOverlay PLAIN 模式子 bitmap 共享原图 buffer 回收后失效 → 复制独立副本,彻底消除
Canvas: trying to use a recycled bitmap崩溃) - bitmap 回收纪律重构:BitmapLruCache 运行期只移除 cache 引用不再主动 recycle,防止相邻页 ViewPager2 holder 持有的 bitmap 被静默回收导致绘制崩溃;异步渲染回调增加过期校验(boundEntryId/boundMode),翻页/切三态过快时丢弃过期结果
- 重新翻译流程简化:去掉「重新框选」对话框,按原有框选区域原地重译(refreshCacheInPlace),完成后实时刷新详情面板
- 下载弹窗去掉更新日志内容行,简化界面
🔧 其他改动
- CLAUDE.md 过时描述同步:renderCache 回收策略、forFullImage 表格、重翻流程、旋转逻辑均已更新
- 删除不再使用的 view_manga_retranslate_recrop.xml 布局文件
- 公告面板底部大片空白修复:showNotificationDialog 用 setLayout(maxW, maxH) 固定 maxH=70% 屏高,短公告时 dialog 占大片屏幕但内容只占顶部一小块。改为 WRAP_CONTENT + 宽度 90% 屏宽限制,多时 ScrollView 滚动、少时自适应
- 进程组内排序方向反转:sortedBy(createdAt) → sortedByDescending(createdAt),最新创建的条目排在顶部
- OCR 参数架构重构:新建 manga/PPOcrParams.kt(PPOcrKey prefs key 常量 + PPOcrDefault 默认值 + PPOcrPrefs 读写封装)作为单一来源,消除之前默认值散落三处(UI 滑块 / PPOcrV5Engine 兜底 / PPOcrV6Engine 兜底 / FAQ 描述)不一致隐患
- 首次添加自定义 API 测试报错修复:OpenAIText.testConnection 在 isNew=true 路径下 providerIndex 越界导致 Index 6 out of bounds 崩溃,改为安全访问 + setupUserMode 显式设置自动追加开关默认勾选
⚠️ 历史记录兼容性提醒:v0.9.0 重构了漫画翻译的缓存存储方式,旧版保存的翻译历史记录可能无法正常显示译文 overlay。请更新前提前对有需要的翻译历史进行截图或下载保存。
v0.9.1 更新内容
✨ 新功能
- 本地 AI 翻译 更名为 本地机器翻译,所有 UI 文案统一更新
🐛 Bug 修复
- NLLB 旧值兼容迁移:修复之前选择 NLLB 翻译的用户升级后翻译配置丢失导致翻译失败的问题
- 彻底清理 ML Kit 离线翻译残留的代码引用、死字符串和文档描述
- 更新弹窗和通知弹窗限制最大高度(屏幕70%)和最大宽度(屏幕90%),内容可滚动,不再占满全屏
- 引导页模型介绍更新:PP-OCRv5 改为 PP-OCR 系列(v5/v6),说明双版本差异
⚡ 性能优化
- 删除 ML Kit 离线翻译引擎(libtranslate_jni.so 16.4MB),APK 从 95MB 缩小至 80MB
- 排除无用的 libsentencepiece_train.so 训练库(1.6MB),APK 进一步降至 78MB
v0.9.0 更新内容
✨ 新功能
- PP-OCRv6 完整集成:新增 PP-OCRv6 引擎,支持 small(内置)和 medium(下载)双档位切换,完整的调试面板和模型管理 UI
- 漫画翻译实时渲染共享层重构:数据库不再存储译文 overlay 图片,所有显示通过 renderOverlay() 即时渲染,支持三态切换(译文/原文/纯原图),减少存储并避免图片过期
- 漫画翻译复制模式:点击气泡可复制原文或译文,支持逐段复制和全部复制
- 繁体中文(zh-TW)源语言支持:新增繁体中文作为翻译源语言选择
- 浮动菜单屏幕自适应:游戏和漫画浮动菜单根据屏幕尺寸自动缩放图标大小和字号,小屏幕不再占满屏幕
- 游戏翻译结果框增强:文字阴影开关、复制原文/译文按钮、⚡ 缓存标识
- 内置聚合 API 支持自定义模型名称
- 历史记录增强:游戏历史支持原文/译文复制、组下载 TXT 文件、漫画详情文字可选
- 调试面板升级:PP-OCRv6 参数面板按 Det/Global/Rec/App 分类分组,新增 7 个参数调节,折叠面板设计
- PP-OCRv5 全部模型改为下载管理(det + rec_zh + 多语言字典),不再内置于 APK
🐛 Bug 修复
- 下载改用 MediaStore.Downloads 写入(Android 11+ Scoped Storage 兼容),修复 SAF 文件选择器在某些版本上写入 ZIP 为 0B 的问题
- 漫画翻译强制刷新时清空 translatedRegions 内存缓存,避免重新翻译命中过期缓存
- groupMangaEntriesByPHash 返回所有变体(之前只返回代表 entry),修复下载/浏览漏图
- renderOverlay Bitmap.createBitmap 子 bitmap 共享底层数据修复:先渲染后 recycle,防止崩溃
- BitmapLruCache 替代 ConcurrentHashMap:真 LRU 淘汰 + 自动回收,修复 ViewPager2 滑动后 bitmap 回收崩溃
- TXT 下载增加 ProgressDialog 进度反馈,DB 兜底查询上限从 500 提升到 10000
- 俄文语言提示全面修正:区分 PP-OCRv5/v6,v6 内置俄语支持不再误报"请下载模型"
- 修复多处滑块整数截断、面板标签与 prefs key 不一致问题
- 修复设置项实时生效:漫画颜色、AI 上下文开关/轮数监听 prefs 变化
⚡ 性能优化
- menuScale 计算提取为公共方法(calculateMenuScale),消除两处重复代码
- 浮动菜单缩放系数根据屏幕宽度动态计算(0.75-1.0),避免硬编码
- PP-OCRv6 medium 模型可选下载,small 模型内置开箱即用
🔧 其他改动
- 模型管理 UI v4 重构:按引擎组合分组,统一 4 段 UI 布局,删除冗余角标
- 删除 CTD 模型和高级模式残留,manga-ocr 单版本化
- 删除 PP-OCRv5/v6 cls 方向分类模型和相关代码
- 清理大量死代码和调试日志
- CLAUDE.md 持续更新:设置项实时生效规范、缓存标识规则、高频踩坑记录
下载说明: