V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yoooxin
V2EX  ›  程序员

请教:像起点 / 番茄小说这类 App 的阅读器一般是怎么实现的?

  •  
  •   yoooxin · 14 小时 34 分钟前 · 848 次点击

    大家好,最近在做一个阅读类产品(目前关注 epub 格式),在研究阅读器实现方案时有些疑惑,想请教下有经验的朋友。

    目前我能想到的几种可能方案:

    1. WebView + 深度定制

      • 比如基于类似 foliate.js / epub.js 这种排版引擎
      • 自己接管分页、段落拆分、行高、字体、主题、进度等
      • 优点是跨端快,缺点是需要大量 Hack WebView 行为
    2. 原生实现排版

      • iOS 用 CoreText / TextKit
      • Android 用 StaticLayout / 自绘
      • 完全自己控制分页、缓存、手势、动画
      • 工程量巨大,但体验最好?
    3. 混合方案

      • 数据层按“句 / 段”切好
      • 原生做分页与交互
      • 但排版规则可能还是参考 Web 的模型?

    我比较困惑的是:

    • 番茄小说 / 起点读书 这种体量和体验都很成熟的阅读器 👉 更可能是完全原生自研,还是基于 WebView 深度魔改?
    • 现在主流商业阅读 App 是否还在使用 Web 技术栈?
    • 如果是原生实现,一般是 “按页缓存” 还是 “按段落流式计算”

    目前我自己倾向于认为:

    早期可能 WebView ,成熟后大概率是原生排版引擎

    但没有实锤证据。

    如果有做过阅读器、电子书、小说 App 的朋友,或者踩过相关坑,欢迎分享一下你们的实践经验 🙏 也很欢迎推荐一些值得研究的开源项目或技术方向。

    感谢!

    10 条回复    2026-03-03 00:48:43 +08:00
    chengYT
        1
    chengYT  
       14 小时 29 分钟前   ❤️ 1
    看看开源代码?
    readest: https://github.com/readest/readest
    AoEiuV020JP
        2
    AoEiuV020JP  
       13 小时 3 分钟前   ❤️ 1
    不大可能有 webview 技术,webview 翻页手感和原生差太多,
    值得一提的是我也写过原生的阅读器,其中的仿真翻页动画涉及贝塞尔曲线,直接 copy 网上不知道那里抄的代码, 当年发现这块我 app 有个小 bug (翻页动画拖到特定像素位置有异常闪烁)而起点 app 也有完全一样的 bug ,我一直怀疑是抄的同一段代码,
    https://github.com/AoEiuV020/PaNovel/blob/master/pager/src/main/java/cc/aoeiuv020/pager/animation/SimulationPageAnim.java

    其他分页、缓存啥的不管什么技术栈,都得自己做,直接用第三方的太不可控了,得能根据自己的业务逻辑调整,
    ryougifujino
        3
    ryougifujino  
       13 小时 2 分钟前
    这种大厂的阅读器肯定是自绘自研的
    whileFalse
        4
    whileFalse  
       12 小时 55 分钟前
    人家的原始数据格式凭什么存 epub ?
    它的小说一章就几千字而已。
    ShineyWang
        5
    ShineyWang  
       12 小时 55 分钟前
    安卓有开源的阅读软件
    https://github.com/gedoor/legado

    是很多安卓用户离不开的原因
    ala2008
        6
    ala2008  
       12 小时 52 分钟前
    不是有开源的吗,参考
    SingeeKing
        7
    SingeeKing  
    PRO
       12 小时 49 分钟前
    我倾向原生,因为 Web 实现的几个阅读器体验相比它们差太多了

    不过你其实已经没必要猜了,这几个困惑完全可以让 AI 直接帮你逆向回答你
    SingeeKing
        8
    SingeeKing  
    PRO
       12 小时 48 分钟前
    另外,番茄起点都是小说阅读器,微信读书才是正经的电子书阅读器,两种的实现成本完全不一样
    cairnechen
        9
    cairnechen  
       12 小时 48 分钟前
    @ShineyWang 折腾 TTS 的时候用过这个,说实话感觉有点难用
    zoharSoul
        10
    zoharSoul  
       5 小时 34 分钟前
    原生实现排版
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   953 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:22 · PVG 06:22 · LAX 14:22 · JFK 17:22
    ♥ Do have faith in what you're doing.