一、项目技术架构
1.1 系统分层设计
┌───────────────────────────┐
│ 表现层 │
│ (Jetpack Compose + MVI) │
├───────────────────────────┤
│ 应用层 │
│ (Use Cases + Repositories)│
├───────────────────────────┤
│ 数据层 │
│ (Network + Local Storage)│
└───────────────────────────┘
1.2 核心技术栈
语言:Kotlin 1.9 with Coroutines
网络:Ktor 2.4.1 (HTTP/2 + WebSocket)
图片:Coil 2.5.0 (支持 AVIF/WebP)
状态管理:MVI + Accompanist
依赖注入:Hilt 2.46.1
安装
https://github.com/huangyu001258/ehviewer
二、环境配置与构建
2.1 开发环境要求
Android Studio Giraffe (2022.3.1)
JDK 17 (Temurin distribution)
Gradle 8.1.1 (Kotlin DSL)
2.2 构建指令
# 克隆仓库
git clone https://github.com/EhViewerTeam/EhViewer.git
# 生成调试包
./gradlew assembleDebug
# 生成Release包(需配置签名)
./gradlew assembleRelease -PstoreFile=your.keystore
三、安装与初始化
3.1 安卓安装流程
从GitHub Release下载 APK
开启设备 "未知来源应用安装" 权限
安装后首次启动需授予:
存储权限(读写下载内容)
网络权限(访问 API)
通知权限(更新提醒)
3.2 初始化配置
四、核心功能操作
4.1 高级搜索语法
精确匹配:"Naruto Uzumaki"
排除标签:-tag:"ecchi"
组合条件:rating:g +language:chinese
正则匹配:artist:^[A-Z].*
4.2 阅读优化设置
选项
推荐值
说明
分页线宽度
1.2px
透明背景下更清晰
预加载数量
4 张
平衡流量与流畅度
夜间模式
自动跟随系统
减少眼部疲劳
图片质量
智能 (WebP 优先)
节省 30% 流量
五、离线管理方案
5.1 下载策略
// 示例下载配置代码
DownloadManager {
maxConcurrentDownloads = 3
wifiOnly = true
autoCompress = true
downloadPath = Environment.getExternalStorageDirectory()
.resolve("EhViewer/Downloads")
}
5.2 存储结构
EhViewer/
├── downloads/ # 漫画文件
│ ├── 12345.zip # 压缩包
│ └── 67890/ # 解压目录
├── cache/ # 缓存图片
├── history/ # 浏览记录
└── favorites.json # 收藏索引