NovalPie 2.0 是专为 novalpie.cc 社区量身打造的高性能、现代原生 Android 客户端。
告别旧版 WebView 简单网页套壳体验,NovalPie 2.0 采用 100% 现代 Android 原生架构(Kotlin 2.x + Jetpack Compose + 响应式数据流),将书架、海量搜索、沉浸式阅读器、论坛社区互动、个人装扮以及多线程流式 EPUB 打包下载全面原生化,在保持与源站数据无缝同步的同时,为移动端读者与创作者带来毫秒级响应、真机高刷新率丝滑滑动以及高度可定制的阅读享受。
- 全场景翻页与无限滚动:支持无动画即时切换、平滑覆盖、淡入淡出、仿真翻页,以及丝滑连续无限滚动(Infinite Scroll);内置精准章节哨兵检测,无缝连贯加载后续章节。
- 真机高刷新率动态调度:进入阅读器时自动匹配并锁定屏幕支持的最高刷新率(90Hz / 120Hz / 144Hz),滑动无卡顿、惯性不掉帧;退出阅读器时平滑恢复低功耗模式,兼顾丝滑与长效续航。
- 自研按行分页引擎:基于 Compose 文本测量管线实现像素级按行分页与段落断点计算;字号、字体、行距、页边距调整后毫秒级动态重排,支持原生简繁平滑转换。
- 插图与动图自由缩放手势:支持原生渲染正文插图、动态 WebP 与 GIF;内置防误触算法,静止稳定长按唤起大图预览,支持双指捏合缩放、双击还原与拖拽回弹。
- 系统级后台 TTS 听书服务:基于 Android 原生 TTS 引擎与前台服务(
ReaderPlaybackService)打造,支持锁屏播放、耳机线控与系统通知栏媒体按键,不捆绑任何商业云 TTS。 - 细粒度段落级断点记忆:阅读进度精确记忆至具体段落与滑动偏移量,无论是切后台、杀进程重开还是目录跳转返回,均能精准恢复到上次阅读位置。
- 1:1 原生沉浸式监控面板:还原大尺寸可视化进度条与百分比动画,同步展现【章节下载(当前/总数)】与【正文插图(当前/总数)】双维度指标。
- 实时等宽控制台滚屏日志(Console):面板底部内置深色终端控制台,采用彩色语法高亮实时输出底层网络流与归档状态:
[DOWNLOAD]:章节文字与图床多媒体拉取[RETRY]:网络抖动指数退避重试触发[PACK]:EPUB 流式打包与元数据封装[SUCCESS]:电子书打包完成并保存至本地[ERROR]:异常排查与诊断
- 5 次指数退避智能重试(Exponential Backoff with Jitter):针对弱网、CDN 丢包或图床偶发波动,内置指数退避带随机抖动算法(单资源最多重试 5 次,间隔 400ms ~ 6s),大幅增强图源获取成功率。
- 智能二选一失败决策(全成功免打扰,死图亦可出书):
- 免打扰自动出包:全量章节与插图顺利下载时,自动秒级流式打包,无需用户手动确认;
- 决策卡片弹窗:重试 5 次后若确有图源 404 失效或网络阻断,任务安全挂起并提供二选一:
- 【换个网络后重试】:切换 Wi-Fi / 移动流量或调整代理后,一键断点继续重试失败资源;
- 【直接打包】:容错跳过失效图片,将已就绪的全部正文章节与完好插图直接流式打包并发布为 EPUB,杜绝单张死图卡死整本导出。
- EPUB 压缩与画质自由配置:
- 插图压缩开关:支持正文插图等比缩放与画质采样控制(1% ~ 95% 自由配置),大幅缩减包含海量彩插的小说文件体积;
- ZIP 归档控制:支持 Deflate 动态压缩等级(0 ~ 9 级)调节与并发度控制,导出速度与空间占用随心掌控。
- EPUB 2 / EPUB 3 双标准规范:导出电子书完整包含
nav.xhtml、toc.ncx、spine、标准封面页与层级目录,广泛兼容各大电纸书设备与第三方阅读器。
- 公共规则与个人规则分层治理:支持源站公共词表与个人规则双轨运行。个人规则享有最高优先级;公共规则支持按书籍单独启停,更支持在本机对特定公共词条一键屏蔽,不破坏他人贡献。
- 导出快照冻结机制:导出 EPUB / TXT 时支持选择“原文导出”或“规则替换导出”。选择替换版时,任务开始即冻结当前规则快照,下载中途修改规则绝不影响正在导出的书籍内容。
- 灵活多列网格布局:书架与收藏夹支持 2 列、3 列、4 列网格以及详细列表卡片自由切换。
- 全量状态实时同步:双向同步源站收藏分组、追更标记、已读章节与更新提示,作品字数、标签与最新状态一目了然。
- 多维高级检索体系:完整支持源站分级过滤、标签组合交并检索、搜索范围限定(书名/作者/简介)、排序模式以及未输入关键字时的默认精选推荐。
- 搜索页快速滑动与图片解码防掉帧优化:彻底解耦滑动监听与 Composable 重组管线,引入与网页端 Chromium 拟合的轻量物理惯性滑行衰减模型(0.28 摩擦阻尼系数,轻松滑翔 2~3 屏),搭配非中断式后台连续预热与中性占位容器,消除占位文字频闪,实现媲美网页端的丝滑流动感,UI 线程 0 卡死。
- 全板块原生流畅覆盖:深度原生适配公告区、交流区、推书区、书评区与反馈区。
- 高保真富文本解析:原生解析渲染 Markdown 与 HTML 排版,支持粗体、斜体、引用块、外链、黑幕剧透遮罩(点按独立展开)以及内联图片。
- 原生书籍卡片就地渲染:智能解析
[bookid:ID]标签,直接就地渲染为可点击交互的原生书籍信息卡片。 - 社区多维互动:完整支持树状嵌套回复、楼中楼展示、点赞、点踩、表情包与打赏交互。
- 原生装扮自适应渲染:完美适配源站头像框与动态徽章;针对复杂 CSS 特效、SVG 矢量图形与荆棘遮罩徽章,实现卡片等比自适应缩放与暗色文字阴影,卡片排版整齐划一。
- 阅读偏好云同步:支持主动将手机端排版偏好(字体、字号、行距、昼夜主题、翻页动画)上传至云端或从云端拉取,支持多模板切换与设置默认。
- 移动端创作工作台:支持移动端章节上传、分卷管理、草稿箱防丢失暂存与正则替换工具。
NovalPie 2.0 经历了持续的高强度迭代与架构重塑,以下为历代核心版本的计划目标与落地成果:
| 版本 | 交付日期 | 核心定位与设计重点 | 关键成果与落地功能 | 测试与质量基线 |
|---|---|---|---|---|
| Beta 1 & 2 | 2026-07 ~ 2026-08 | 原生基建重构,彻底替代 WebView 套壳 | 确定 Kotlin + Jetpack Compose 架构;打通账号会话保持、书架网格、发现多维检索与基础本地 EPUB 生成。 | 274 Tests |
| Beta 3 | 2026-08-23 | 阅读器全交互与多媒体归档 | 落地连续滚动与 5 种翻页动画;引入物理音量键翻页;EPUB 流式并发抓取与临时文件安全机制;公开个人主页三页签同步。 | 598 Tests,0 Failures |
| Beta 4 | 2026-08-24 | 书架密度、论坛富文本与超大文件校验 | 书架支持 2/3/4 列网格;论坛富文本解析与 [bookid:ID] 原生书籍卡片;超大 EPUB 原子发布流程,避免半成品残留。 |
610 Tests,Lint Clean |
| Beta 5 | 2026-08-29 | EPUB 2/3 双标准与阅读排版规范 | EPUB 同时输出 toc.ncx 与 nav.xhtml 双导航;支持 Markdown 混合粗体与排版宽度调节;阅读进度双向云同步;书籍详情原生操作表。 |
753 Tests,0 Failures |
| Beta 6 | 2026-09-01 | 双轨规则替换快照与系统级后台听书 | 落地公共规则单书启停与逐条屏蔽;导出支持原文/替换快照选择;系统级前台服务后台 TTS(支持锁屏与线控);段落级精确断点续读。 | 818 Tests,MuMu 1.5GB 实测 |
| Beta 7 | 2026-09-19 (当前最新) | 下载监控面板、指数退避重试、二选一决策、压缩控制、高刷优化与自动化签到/安全验证增强 | 1:1 沉浸式下载监控大面板 + 控制台滚屏日志;5 次指数退避抖动重试;失败二选一决策卡片(全成功免打扰,死图直接打包);插图等比压缩与纯体积导向 ZIP 压缩等级描述规范;登录验证界面 Turnstile 探测加固与非阻塞快速提取杜绝假死;双轨端点全自动背景签到与本地偏好保障;超长篇小说超时根治;90~144Hz 真机高刷自适应;短章节无限滚动哨兵修复;装扮卡片尺寸对齐。 | 1,259 Tests 全部通过,0 Failures,Lint 0 Error |
| 评估维度 | 原生 Android 客户端 (NovalPie 2.0) | 传统手机网页端 (Mobile Web) |
|---|---|---|
| 渲染性能 | Jetpack Compose 原生流水线,90Hz / 120Hz / 144Hz 硬件高刷,滑动丝滑 | 依赖浏览器 DOM 树与跨层重绘,长文档滑动偶发卡顿 |
| 离线与缓存 | 工业级本地持久化存储,完备的离线章节缓存,断网也能正常读 | 依赖浏览器 Service Worker 缓存,受系统清理机制影响容易丢失 |
| 听书体验 | 系统前台 Service 伴随 MediaSession,支持锁屏常驻播放与蓝牙线控 | 手机锁屏或切换后台极易被 Android 杀进程中断 |
| 排版引擎 | 自研按行精确测量分页,段落完整不断句,支持自定义字体与边距 | 浏览器视口流式排版,受系统字体与滚动条挤压影响较大 |
| 离线打包 | 本地多线程流式拉取、指数退避重试、自定义压缩率、失败二选一容错 | 依赖服务端接口或浏览器内存打包,遇到数千章大书容易内存溢出或超时 |
| 安全沙箱 | 核心业务 100% 原生化,仅 Cloudflare 人机验证与外部装扮进入沙箱 WebView | 全程在浏览器沙箱内运行 |
Important
设计原则与边界规范:
- 源站数据权威性:客户端严格遵循 novalpie.cc 协议规范,用户账号、书籍内容、阅读权限、会员积分均以源站判定为准,App 不会伪造服务器缺失的章节、图片或翻译。
- 合规与安全性:客户端坚守安全边界,不提供第三方盗版书源抓取、不提供绕过源站付费或权限机制的功能。
- 无侵入升级:客户端采用安全兼容签名,任何升级均保证用户本地书架、阅读记录与登录凭据无损保留。
- 发布日期:2026-09-19
- 安装包文件名:
NovalPie-native-2.0.0-beta7-debug.apk - 文件体积:
24,446,509字节 (~23.31 MB) - SHA-256 校验码:
BE9B59478F0C3F3C7213C6BE1A10333A7762A046DDECD11B68FBD934A8DC10CB - 官方发布页:GitHub Releases / v2.0.0-native-beta7
- 直接覆盖安装:Beta 7 严格沿用了既有的应用 ID(
com.novalpie.app.debug)与开发者签名证书。已安装 Beta 4 / Beta 5 / Beta 6 的用户可直接下载覆盖安装,无需卸载,登录状态、书架追更数据、下载记录与阅读偏好完整保留。 - 系统要求:支持 Android 8.0(API Level 26)及以上版本,完美适配 Android 14 与 Android 15。
- 安全提示:如遇到系统提示“未知应用来源”,请选择允许安装;首次登录若触发 Cloudflare 安全验证,在内置安全回退页中完成人机验证后即可返回畅享原生体验。
项目采用现代 Android 架构设计模式(Clean Architecture + 模块化分层),单工程多层级组织:
app/src/main/java/com/novalpie/nativeapp/
├── core/ # 核心容器、依赖注入、会话持久化、代理调度与全局工具
├── data/ # REST API 接口定义、协议字段别名容错、流式 EPUB 归档引擎、本地数据库
├── feature/ # 领域业务解耦特性层
│ ├── books/ # 书籍详情、书架管理、作者中心与术语表
│ ├── download/ # 原生下载服务、1:1 监控面板、指数退避重试、二选一决策
│ ├── editor/ # 移动端章节编辑器、分章与草稿暂存
│ ├── forum/ # 社区论坛 5 大板块、评论树与富文本渲染
│ ├── profile/ # 个人主页、装扮渲染、账户管理与阅读偏好云同步
│ └── reader/ # 原生按行分页引擎、高刷调度、系统级后台 TTS 服务
└── ui/ # 页面路由导航、Material3 设计系统、交互全局组件
- 语言体系:Kotlin 2.0 + Coroutines(协程并发) + StateFlow(响应式状态流)
- UI 框架:Jetpack Compose 1.7+ / Material 3 / Accompanist
- 网络与序列化:OkHttp 4 + Retrofit / 动态容错反序列化 + Gson
- 图片与多媒体加载:Coil 2(支持 WebP / GIF / SVG,双级内存与磁盘缓存)
- 构建体系:Gradle 8.9 + Android Gradle Plugin (AGP) 8.7.3
- 质量保障:JUnit4 + Robolectric + MockWebServer(共计 1,244 项自动化单元测试 100% 覆盖关键契约)
- JDK:OpenJDK 17
- Android SDK:Platform API 35 (Android 15)
- Build-tools:35.0.0
- 构建工具:Gradle 8.9(自带
gradlew包装脚本)
# 1. 克隆代码仓库
git clone https://github.com/never-seek/novalpie.git
cd novalpie/native-android
# 2. 执行全量单元测试(1244 项单测套件)
.\gradlew.bat :app:testDebugUnitTest --no-daemon
# 3. 构建 Debug 开发安装包
.\gradlew.bat :app:assembleDebug --no-daemon
# 4. 构建优化版 Beta 安装包(开启 R8 混淆瘦身与资源压缩)
.\gradlew.bat :app:assembleBeta --no-daemon若在 MuMu 等 Android 模拟器上联调开发,可通过 ADB 将宿主机代理端口反向映射至模拟器环境:
# 将宿主机本地 7890 代理端口映射到模拟器回环
adb reverse tcp:7890 tcp:7890如果您在使用、阅读或开发过程中发现任何 Bug 或有改进建议,欢迎通过以下渠道交流:
- NovalPie 官方社区:前往 novalpie.cc 交流区 或反馈区发帖互动。
- GitHub Issues:在 GitHub Issues 提交工单。
提交反馈时请尽量提供:设备机型、Android 系统版本、问题复现步骤、截图以及网络/代理环境。