二次开发自定义漫画源完整步骤
开发前的准备
MyComic 的源码托管在 Gitee 和 GitHub,Android 项目使用 Gradle 构建。开发者使用 Android Studio 编译调试。
漫画源的接口定义在 common 模块中,核心父类为 BaseComicSource、BaseNovelSource、BaseVideoSource,分别对应漫画、小说、番剧三种类型。
开发漫画源的基本步骤
第一步:创建源类
在 common/src/main/java/top/luqichuang/mycomic/source/ 目录下新建一个 Java 类,继承 BaseComicSource:
public class MyCustomSource extends BaseComicSource {
// 实现基类要求的所有方法
}
第二步:在枚举中注册
打开 common/src/main/java/top/luqichuang/common/en/CSourceEnum.java,添加新的枚举项。MyComic 启动时通过该枚举扫描并注册所有漫画源。
第三步:实现核心方法
每个漫画源需要实现以下几类方法(具体签名和返回类型参考源码中已有的漫画源实现,如 BaoZi.java):
| 方法组 | 功能 |
|---|---|
| 搜索方法 | 根据关键词返回漫画列表 |
| 详情方法 | 根据漫画 ID 返回章节列表 |
| 阅读方法 | 根据章节 ID 返回漫画图片列表 |
| 其他辅助 | 源名称、搜索提示词、分类列表等 |
第四步:调试与验证
MyComic 在 common 模块中内置了源测试基础设施。common/src/main/java/top/luqichuang/common/tst/BaseSourceTest.java 是测试基类,具体漫画源的测试继承它。解开注释即可运行测试用例验证新源的搜索、详情、阅读三个阶段是否正常。
参考现有实现
开发者提供了 BaoZi.java(包子漫画)等多个完整实现作为参考。新源的结构和方法签名基本与已有源保持一致,区别仅在于:
- HTTP 请求的目标地址
- 页面/JSON 的解析逻辑
- 部分字段的清洗规则
小说源和番剧源
小说源继承 BaseNovelSource,番剧源继承 BaseVideoSource。三者接口设计类似,但解析对象分别是文本和视频流,处理复杂度略有差异。
社区贡献
完成新源后可以提交 Pull Request 到仓库。开发者会审核代码质量并决定是否合并到主分支。