Skip to content

Repository files navigation

NovalPie 2.0 原生 Android 客户端

Platform Language UI Toolkit Architecture Release Tests

NovalPie 2.0 是专为 novalpie.cc 社区量身打造的高性能、现代原生 Android 客户端。

告别旧版 WebView 简单网页套壳体验,NovalPie 2.0 采用 100% 现代 Android 原生架构(Kotlin 2.x + Jetpack Compose + 响应式数据流),将书架、海量搜索、沉浸式阅读器、论坛社区互动、个人装扮以及多线程流式 EPUB 打包下载全面原生化,在保持与源站数据无缝同步的同时,为移动端读者与创作者带来毫秒级响应、真机高刷新率丝滑滑动以及高度可定制的阅读享受。


📑 目录


🌟 整体功能全景

1. 沉浸式原生阅读器

  • 全场景翻页与无限滚动:支持无动画即时切换、平滑覆盖、淡入淡出、仿真翻页,以及丝滑连续无限滚动(Infinite Scroll);内置精准章节哨兵检测,无缝连贯加载后续章节。
  • 真机高刷新率动态调度:进入阅读器时自动匹配并锁定屏幕支持的最高刷新率(90Hz / 120Hz / 144Hz),滑动无卡顿、惯性不掉帧;退出阅读器时平滑恢复低功耗模式,兼顾丝滑与长效续航。
  • 自研按行分页引擎:基于 Compose 文本测量管线实现像素级按行分页与段落断点计算;字号、字体、行距、页边距调整后毫秒级动态重排,支持原生简繁平滑转换。
  • 插图与动图自由缩放手势:支持原生渲染正文插图、动态 WebP 与 GIF;内置防误触算法,静止稳定长按唤起大图预览,支持双指捏合缩放、双击还原与拖拽回弹。
  • 系统级后台 TTS 听书服务:基于 Android 原生 TTS 引擎与前台服务(ReaderPlaybackService)打造,支持锁屏播放、耳机线控与系统通知栏媒体按键,不捆绑任何商业云 TTS。
  • 细粒度段落级断点记忆:阅读进度精确记忆至具体段落与滑动偏移量,无论是切后台、杀进程重开还是目录跳转返回,均能精准恢复到上次阅读位置。

2. 智能下载与 EPUB 归档导出

  • 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.xhtmltoc.ncxspine、标准封面页与层级目录,广泛兼容各大电纸书设备与第三方阅读器。

3. 双轨文本替换与净化引擎

  • 公共规则与个人规则分层治理:支持源站公共词表与个人规则双轨运行。个人规则享有最高优先级;公共规则支持按书籍单独启停,更支持在本机对特定公共词条一键屏蔽,不破坏他人贡献。
  • 导出快照冻结机制:导出 EPUB / TXT 时支持选择“原文导出”或“规则替换导出”。选择替换版时,任务开始即冻结当前规则快照,下载中途修改规则绝不影响正在导出的书籍内容。

4. 书架、检索与发现

  • 灵活多列网格布局:书架与收藏夹支持 2 列、3 列、4 列网格以及详细列表卡片自由切换。
  • 全量状态实时同步:双向同步源站收藏分组、追更标记、已读章节与更新提示,作品字数、标签与最新状态一目了然。
  • 多维高级检索体系:完整支持源站分级过滤、标签组合交并检索、搜索范围限定(书名/作者/简介)、排序模式以及未输入关键字时的默认精选推荐。
  • 搜索页快速滑动与图片解码防掉帧优化:彻底解耦滑动监听与 Composable 重组管线,引入与网页端 Chromium 拟合的轻量物理惯性滑行衰减模型(0.28 摩擦阻尼系数,轻松滑翔 2~3 屏),搭配非中断式后台连续预热与中性占位容器,消除占位文字频闪,实现媲美网页端的丝滑流动感,UI 线程 0 卡死。

5. 论坛交流与社区动态

  • 全板块原生流畅覆盖:深度原生适配公告区、交流区、推书区、书评区与反馈区。
  • 高保真富文本解析:原生解析渲染 Markdown 与 HTML 排版,支持粗体、斜体、引用块、外链、黑幕剧透遮罩(点按独立展开)以及内联图片。
  • 原生书籍卡片就地渲染:智能解析 [bookid:ID] 标签,直接就地渲染为可点击交互的原生书籍信息卡片。
  • 社区多维互动:完整支持树状嵌套回复、楼中楼展示、点赞、点踩、表情包与打赏交互。

6. 个人中心、装扮与作者中心

  • 原生装扮自适应渲染:完美适配源站头像框与动态徽章;针对复杂 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.ncxnav.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

设计原则与边界规范

  1. 源站数据权威性:客户端严格遵循 novalpie.cc 协议规范,用户账号、书籍内容、阅读权限、会员积分均以源站判定为准,App 不会伪造服务器缺失的章节、图片或翻译。
  2. 合规与安全性:客户端坚守安全边界,不提供第三方盗版书源抓取、不提供绕过源站付费或权限机制的功能。
  3. 无侵入升级:客户端采用安全兼容签名,任何升级均保证用户本地书架、阅读记录与登录凭据无损保留。

📦 最新安装包与升级指南

当前最新发布:Beta 7 (v2.0.0-native-beta7)

  • 发布日期: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

安装说明与兼容性

  1. 直接覆盖安装:Beta 7 严格沿用了既有的应用 ID(com.novalpie.app.debug)与开发者签名证书。已安装 Beta 4 / Beta 5 / Beta 6 的用户可直接下载覆盖安装,无需卸载,登录状态、书架追更数据、下载记录与阅读偏好完整保留。
  2. 系统要求:支持 Android 8.0(API Level 26)及以上版本,完美适配 Android 14 与 Android 15。
  3. 安全提示:如遇到系统提示“未知应用来源”,请选择允许安装;首次登录若触发 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 包装脚本)

常用命令(PowerShell / Bash)

# 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 或有改进建议,欢迎通过以下渠道交流:

  1. NovalPie 官方社区:前往 novalpie.cc 交流区 或反馈区发帖互动。
  2. GitHub Issues:在 GitHub Issues 提交工单。
    提交反馈时请尽量提供:设备机型、Android 系统版本、问题复现步骤、截图以及网络/代理环境。

About

No description, website, or topics provided.

Resources

Stars

12 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages