leetomlee123/book
笔趣阁源基于flutter的小说阅读app
- Stars
- 463
- Forks
- 99
- Last push (UTC)
- Aug 31, 2026
- Project status
- Active
LanguagesDartRustBatchfileKotlin
Dependencies used
Dependency list 38 items
- flutter
{"sdk":"flutter"} - cupertino_icons
^1.0.8 - flutter_riverpod
^2.6.1 - dio
^5.8.0+1 - fluro
^2.0.5 - bot_toast
^4.1.3 - event_bus
^2.0.1 - get_it
^8.0.3 - sqflite
^2.4.2 - path_provider
^2.1.6 - shared_preferences
^2.5.3 - permission_handler
^12.0.0+1 - flutter_cache_manager
^3.4.1 - scrollable_positioned_list
^0.3.8 - flex_color_scheme
^8.2.0 - html
^0.15.6 - json_annotation
^4.9.0 - convert
^3.1.2 - url_launcher
^6.3.1 - readmore
^3.0.0 - intl
^0.20.2 - ffi
^2.1.4 - path
^1.9.1 - fast_gbk
^1.0.0 - flutter_js
{"path":"third_party/flutter_js"} - flutter_plugin_android_lifecycle
^2.0.28 - extended_image
^10.1.0 - file_picker
^11.0.2 - vector_math
any - package_info_plus
^9.0.1 - ota_update
^7.1.0 - firebase_core
^4.12.1 - firebase_analytics
^12.4.5 - firebase_crashlytics
^5.2.6 - flutter_testDevelopment
{"sdk":"flutter"} - flutter_lintsDevelopment
^6.0.0 - build_runnerDevelopment
^2.4.15 - json_serializableDevelopment
^6.9.5
Rankings
Original README
English project snapshot. Visit GitHub for the latest content.
Expand / collapse project README
爱看书
English · 中文
一款开源的 Flutter 网络小说阅读器。支持本地书源、书架管理、多种翻页方式与微信读书风格纸张主题。
| 包名 | Application ID | 许可 |
|---|---|---|
book |
com.opensource.ikanshu |
Apache-2.0 |
功能特性
- 书架 / 发现 / 我的 三栏主页
- 本地书源引擎(Legado 规则子集:HTTP + CSS/JSON/JS 规则)
- 阅读器
- 仿真 / 覆盖 / 无动画 / 纵向滚动
- 微信风格纸张主题(白 / 米 / 绿 / 夜)
- 自定义字体导入
- 章节缓存与分页缓存(
reader.db) - 阅读进度自动保存
- 换源与目录同步
- Firebase Analytics + Crashlytics(可选,需
google-services.json) - Android 优先;无维护 iOS 工程树
技术栈
| 类别 | 选型 |
|---|---|
| 语言 / SDK | Dart 3.12+ / Flutter 3.44+ |
| 状态管理 | Riverpod(ChangeNotifierProvider) |
| 网络 | Dio 5 |
| 路由 | Fluro |
| 本地存储 | sqflite(reader.db)+ shared_preferences |
| 书源 JS | flutter_js(本地补丁,见 third_party/flutter_js) |
| 分页 | Rust book_pager(可选)+ Dart TextPainter 回退 |
| 统计 / 崩溃 | Firebase Analytics / Crashlytics |
架构与模块划分详见 CLAUDE.md。
环境要求
- Flutter 3.44 稳定版(Dart 3.12)
- Android SDK(
ANDROID_HOME/local.properties中sdk.dir) - Windows 上构建可选:MinGW(host 版
libbook_pager)、Android NDK(arm64 / x86_64)
flutter doctor
快速开始
# 依赖
flutter pub get
# 运行(已连接设备 / 模拟器)
flutter run
# 静态分析
flutter analyze
# 测试
flutter test
构建 APK
# Debug
flutter build apk --debug
# Release(全 ABI)
flutter build apk
# arm64 专用脚本(混淆 / split / SKSL 等,见脚本注释)
build_arm64.bat
# 或
build.bat
GitHub Actions 打包
| Workflow | 文件 | 触发 |
|---|---|---|
| CI | .github/workflows/ci.yml |
push / PR:flutter analyze + flutter test |
| Build APK | .github/workflows/build.yml |
master/main push、标签 v*、手动 workflow_dispatch、repository_dispatch: starred |
发布示例:
# 打标签并推送 → 自动构建并创建 GitHub Release
git tag v1.0.0+10
git push origin v1.0.0+10
可选签名 Secrets(仓库 → Settings → Secrets and variables → Actions):
| Secret | 说明 |
|---|---|
ANDROID_KEYSTORE_BASE64 |
keystore 文件 base64(base64 -w0 key.jks) |
ANDROID_KEYSTORE_PASSWORD |
store 密码 |
ANDROID_KEY_ALIAS |
key 别名 |
ANDROID_KEY_PASSWORD |
key 密码 |
未配置时与本地一致:release 回退 debug 签名。产物上传为 Artifact;v* 标签额外挂到 Release。
原生分页库(可选)
build_book_pager.bat # Windows host DLL
build_book_pager.bat --android # arm64-v8a + x86_64 → jniLibs
未打包对应 ABI 的 libbook_pager.so 时,自动回退到 Dart 分页。
Firebase(可选)
- 将
google-services.json放到android/app/ - Firebase 控制台启用 Analytics 与 Crashlytics
- 启动时由
FirebaseBootstrap初始化;失败不阻塞 App
项目结构(摘要)
lib/
view/book/ # 书架、搜索、详情、阅读器
view/page_turn/ # 画布翻页
model/ # ChangeNotifier 业务模型
model/reader/ # 阅读器协作类(分页、缓存、换源…)
data/ # reader.db + repositories
source/ # 书源引擎
common/ # Dio、SpUtil、布局等
service/ # Firebase、缓存等
android/ # 声明式 Gradle(Kotlin DSL)
截图
| 书架 | 搜索 | 历史 |
|---|---|---|
| 书架 | 搜索 | 历史 |
| 阅读 | 设置 | 发现 |
|---|---|---|
| 阅读 | 设置 | 发现 |
相关项目
- 听书楼 — 听书客户端
Star 历史
致谢
感谢 JetBrains 为开源项目提供的 IDE 支持。