Repository navigation
Releases: ice-wocker/ModelScopeBrowser
Release list
v2.4.1
Full Changelog: v2.4.0...v2.4.1
v2.4.0
v2.3.1
v2.3.0
v2.3.0:arm64 多档指令集 + FlashAttention + KV 量化
1. 多档指令集:让新芯片跑更快的量化内核
以前是单一构建,固定 armv8.2-a+dotprod+fp16,所有 arm64 机型只能跑同一档,且缺 dotprod 的老机被直接拒绝。
现在改用 GGML_CPU_ALL_VARIANTS,为 Android arm64 编出多份 CPU 后端,运行时由 ggml_backend_score() 按 HWCAP 打分,只加载分数最高的那一档:
| 后端 | 指令集 | 典型芯片 |
|---|---|---|
| android_armv8.0_1 | 基线 armv8-a | 所有 arm64(兜底) |
| android_armv8.2_1/2 | dotprod / +fp16 | 2018 年后的处理器 |
| android_armv8.6_1 | +i8mm | 骁龙 8 Gen 1+ / 天玑 9000+ 等 |
| android_armv9.0_1 | +SVE2 | 天玑 9200+ 等 |
| android_armv9.2_1/2 | +SVE/+SME | 最新旗舰 |
产物反汇编核对:armv8.0 档 0 条 sdot/smmla,armv8.2 档 747 条 sdot,armv8.6 档额外 174 条 smmla(i8mm),armv9.0 档 308 条 smmla。
兼容性反而更好:基线改回 armv8-a 后,移除了原先 dotprod+fp16 的硬门槛,老 arm64 也能跑了。
2. FlashAttention + KV 缓存量化
- 上下文开启
flash_attn_type = AUTO(模型支持时减少注意力读写) - KV 缓存量化为 q8_0:注意力读写量减半,KV 内存约为原来的 1/2
3. 输出上限进一步放开
- 单次最长输出默认 1024 → 4096(可调至 8192)
- 默认上下文 4096 → 8192(可调至 32768)
- 输出必须挤在上下文里(上下文 = 提示词/历史 + 本次输出),设置时会自动收敛到 3/4 以内
- 新增「继续生成」:长按回复即可接着往下写
说明
- 本次为纯 CPU 推理:Vulkan/OpenCL 卸载所需工具链(glslc / Vulkan SDK)在构建环境不具备,未启用
- 因此提速幅度与芯片强相关:支持 i8mm/SVE 的新机型收益最大(量化矩阵乘走
smmla),老机型与之前持平 - 由于多了几份后端
.so,安装包由 12 MB 增至约 17 MB - 安装包为 CI 正式签名(与仓库
dist/同一签名),可直接覆盖安装
Full Changelog: v2.2.0...v2.3.0
v2.2.0
v2.2.0:对话页升级为智能体界面
输出上限放开
- 单次生成长度默认 256 → 1024 tokens(可调上限 8192)
- 默认上下文窗口 2048 → 4096(可调上限 16384)
联网搜索(开关式)
- 对话页「联网」打开后,每次提问先检索网页再作答,并在末尾列出参考来源
- 无需 API Key(DuckDuckGo,失败退回 Bing);也可
/search 关键词
工作区文件 + HTML 预览
- 模型输出带文件名的代码块(如
html filename=index.html)或 html 代码块自动保存到应用私有工作区 - 新增工作区页(浏览 / 新建 / 查看 / 分享 / 删除)与 HTML 预览页(WebView,支持 JS/CSS/相对资源)
本机终端
- 受限命令直接读写手机上的工作区:
ls / cd / cat / head / wc / write / append / mkdir / rm / mv / cp / find / tree / echo / date / uname / df / clear - 对话内斜杠命令直通:
/ls、/cat f、/write f 内容、/run tree…
界面
- AI 回复改用 Markdown 渲染(标题 / 列表 / 引用 / 表格 / 代码块),流式过程先用纯文本
- 新增工具卡片、能力栏、快捷示例与输入框工具菜单
安装包为正式签名(与
dist/完全一致)。修图:v2.1 的包不可用(JNI 回调被混淆),v2.1.1 起已修复。
v2.1.1 — 修复 R8 混淆导致模型无法加载
修复
- 修复 release 包(R8 混淆后)加载任意模型都失败的问题:
no non-static method "Lxxx;.onToken(Ljava/lang/String;)V"- 原因:native 层用字面方法名回调
onToken,v2.1 的 proguard 规则只保住了 native 方法与LlamaBridge本身,方法名被 R8 重命名 - 修复:保留
LlamaBridge$TokenCallback接口及所有实现类的onToken方法名,并复核了产物 dex 中的 JNI 符号
- 原因:native 层用字面方法名回调
- 同时把本地模型索引改为原子写、修复 JNI 释放竞态等稳定性问题(详见 v2.1 说明)
⚠️ v2.1 的包不可用(同样报该错误),请使用本版本。v2.1.1 与该 tag 之前的 v2.1 功能一致,仅修复混淆回归。
安装
正式签名(与仓库 dist/ 内容一致),可直接覆盖安装 v1.0 / v1.1 / v2.0 / v2.1,无需卸载。
要求:Android 7.0 (API 24) 及以上。
v2.1 — 对话历史 / 下载可靠性 / 工程化
主要变化
对话体验
- 对话历史持久化:每个模型可保存多个会话(自动落盘,退出不丢),支持「历史会话」切换与「新对话」
- 长按气泡:复制 / 重新生成 / 编辑并重发 / 删除本条;新增「导出对话」(系统分享)
- 状态条实时显示上下文用量;点停止后立即提示「正在停止…」
下载可靠性
- 断点续传(带
Range请求,服务端不支持时自动从头下) - 完整性校验:字节数 + GGUF 魔数,挡掉错误页/半截文件
- 前台服务 + 进度通知;任务落盘,进程被杀后再进入应用自动接着下
- 取消即时生效(主动断开连接)
稳定性
- 修复 JNI
nativeCancel/nativeFree的 use-after-free 隐患(存活会话表 + 统一加锁) - 模型索引改为「临时文件 + 原子改名」,避免半截索引导致本地模型全部消失
- 各页面补齐 Handler 清理与生命周期守卫;本地模型库磁盘 IO 移出主线程
- 模型列表改用 DiffUtil;详情页失败可「点按重试」
工程化
- 17 个单元测试、Lint 改为严格模式、CI 增加测试与 Lint
- 依赖改用 Version Catalog(core 1.15 / material 1.13 / recyclerview 1.4)
- release 开启 R8 混淆 + 资源压缩:安装包 20.6 MB → 11.6 MB
- 引入 Gradle Wrapper 8.14.5
安装
本包为正式签名(与仓库 dist/ 内容一致),可直接覆盖安装 v1.0 / v1.1 / v2.0,无需卸载。
要求:Android 7.0 (API 24) 及以上,建议 arm64 机型 + 至少 4 GB 内存。
v2.0
v1.2 — 修复列表 404(PUT + Criterion)
修复「404 page not found」
v1.0/v1.1 的模型列表一直加载失败(404 page not found),根因是请求方式与参数用错了。
抓取魔搭网页自身请求后确认的正确用法:
| 项 | v1.1(错误) | v1.2(正确) |
|---|---|---|
| HTTP 方法 | POST / GET | PUT |
| 筛选参数名 | SingleCriterion |
Criterion |
| 筛选维度 | 任务类型 | 许可证 / 框架库 / 标签 / 语言 / 模型结构 / 领域 |
实测:同路径 POST/GET → 404,PUT → 200;Name=qwen → 总数 26291;
SortBy=StarsCount 排序生效;Criterion 按 apache-2.0 筛选 → 48472,与接口聚合计数一致。
其他
- 「任务筛选」替换为真实生效的维度筛选,二级弹窗展示可选值与模型数量
- 模型总数校正为约 25.9 万
- 移除已确认无效的任务筛选代码
安装
下载下方 APK,Android 7.0+ 直接安装。已升级过 v1.0/v1.1 的可直接覆盖安装(同一签名)。
Full Changelog: v1.1...v1.2
v1.1 — 工具链升级 + 6 个 bug 修复
升级
- 工具链:AGP 8.7.3 → 8.13.2,Gradle 8.14.5,JDK 17
- 系统版本:compileSdk/targetSdk 34 → 36(Android 16)
- 依赖:引入 AndroidX + Material 3 + Markwon(ListView → RecyclerView + SwipeRefreshLayout)
- 主题:Material 3 DayNight,自动适配暗色模式
- 新能力:排序(最多下载/最多收藏/最近更新)、按任务类型筛选、模型文件列表与单文件下载、Markdown 简介渲染
- 发布:正式 release keystore 签名 + GitHub Actions 自动构建与 Tag 自动发布
修复
- 双重标题栏(系统 ActionBar 与自定义标题栏重复)
- 首页聚合兜底导致无限分页并必然报错
- 搜索竞态:旧请求响应覆盖新结果
- 翻页跳页:滚动回调先自增页码导致漏页
- targetSdk 35+ 强制 edge-to-edge 导致内容被状态栏遮挡
- 排序/筛选不被服务端接受时静默无效;错误态缺少重试入口
安装
下载下方 APK,Android 7.0+ 直接安装(需允许未知来源)。