mihon 中文文档 下载 App

Mihon 扩展系统架构解析 — 为什么装个仓库就能用所有源

三层架构

Mihon 的扩展系统由三层组成,从下到上依次是:

┌─────────────────────────────────────────┐
│          漫画源(实际数据)                │
│   MangaDex / Batoto / Mangapark / ...    │
├─────────────────────────────────────────┤
│          扩展 APK(桥接层)                │
│   解析源站结构 → 返回章节列表/图片 URL     │
├─────────────────────────────────────────┤
│          扩展仓库(索引层)                │
│   JSON 列表:有哪些扩展、版本号、下载地址  │
├─────────────────────────────────────────┤
│          Mihon 主 App                     │
│   统一的阅读界面、书架、追踪、备份          │
└─────────────────────────────────────────┘

扩展仓库

扩展仓库是一个可公开访问的 JSON 文件(通常托管在 GitHub),内容是所有可用扩展的索引:

Mihon 从仓库拉取这个索引,然后展示给用户"可安装的扩展列表"。

扩展 APK

扩展是一个独立的 Android APK 文件,安装过程完全在 Mihon 内部完成(不通过系统包管理器)。每个扩展:

漫画源

漫画源本身是独立运营的网站,Mihon 通过扩展抓取其内容。扩展"适配"源站的页面结构和 API,把抓取到的数据转成统一格式交给 Mihon 主 App 处理。

扩展生命周期

  1. 添加仓库 → Mihon 拉取 JSON 索引,展示可用扩展列表
  2. 安装扩展 → 下载 APK,安装到 Mihon 的私有空间
  3. 信任扩展 → 用户手动点盾牌图标授权(安全机制)
  4. 正常使用 → 扩展在漫画源 Tab 里可用,浏览、搜索、阅读
  5. 更新扩展 → 仓库里有新版本时,Mihon 提示更新
  6. 删除/禁用 → 不需要时可以卸载或临时禁用

扩展为什么会失效?

扩展失效("装了但加载不出章节")最常见的原因:

原因解释
漫画源改了页面结构扩展的解析逻辑不匹配了
漫画源停服网站没了
仓库有更新扩展有新版本修复了 bug,但你没更新
网络问题你的网络访问不了源站(需要代理/镜像)
被标记为弃用(Deprecated)维护者宣布不再更新,迟早坏掉

安全模型

Mihon 对扩展做了两层安全防护:

  1. 非 Play Store 分发:扩展不通过 Google Play,避免 Play 的审核限制
  2. 信任机制:安装后不会自动激活,必须用户手动点盾牌图标信任——用户知道自己在用什么扩展

注意:Mihon 主 App 本身是开源的,可以审计。但第三方扩展各自独立,质量参差不齐。建议只安装社区推荐的热门扩展,避免不明来源的仓库。

扩展 vs 本地源

扩展是连接在线漫画源的;如果你有自己的漫画文件(CBZ/ZIP 压缩包、散图文件夹),应该用 Mihon 的本地源(Local source)功能,不需要任何扩展。具体见 本地漫画源。

本章小结

扩展系统的三层架构(仓库索引 → 扩展 APK → 漫画源)是理解 Mihon 的关键。主 App 负责统一界面,扩展负责适配各种漫画源,仓库负责索引和分发。扩展失效 90% 是源站结构变了或扩展没更新——先看仓库里有没有新版本,没有就只能等社区修复或找替代源。