FoldRender / 指南 / 在折叠屏上读 Jupyter 笔记本
FoldRender 指南

在折叠屏上读 Jupyter 笔记本

笔记本渲染是在干净设备上验证过的四种格式之一。FoldRender 直接读 .ipynb 文件 —— 没有内核,没有服务器,也没有转换步骤 —— markdown 单元格按正文显示,代码单元格带执行计数,保存在文件里的输出也会显示出来,包括保留原始 ANSI 颜色的 traceback。

在 Google Play 上获取免费 看看 FoldRender 能做什么

分步操作

  1. 从 Google Play 安装

    FoldRender 在 Play 商店上的名字是 FoldRender: Git Repo Reader,包名 dev.foldrender.app,免费,面向全球发行。照常安装即可 —— 不会弹出要你打开「允许来自此来源的应用」的提示,更新也会自动送达。应用声明了 minSdk 30,所以需要 Android 11 或更新的版本;如果设备低于这个版本,Play 会直接告诉你,而不是让你装上一个跑不起来的版本。

  2. 把笔记本放到手机上

    把它所在的仓库克隆下来 —— 分支图标、筛选,或输入 owner/repo、获取代码,公开仓库可以匿名 —— 或者用打开文件通过系统选择器选一个 .ipynb,或者用打开文件夹把一个放笔记本的目录授权为持久保存的工作区。

  3. 打开 .ipynb

    在文件标签页里点这个笔记本。识别靠扩展名和 application/x-ipynb+json MIME 类型,而且笔记本在渲染器注册表里的得分足够高,.ipynb 永远不会被当成普通 JSON。如果文件格式有问题,这一栏会明确说出来 —— 「无法读取此 .ipynb」,后面跟着解析错误 —— 而不是渲染出半个笔记本。

  4. 读单元格

    markdown 单元格和其他文档走同一条 Markdown 管线,按正文渲染 —— 标题、表格、callout、公式全都有。代码单元格带高亮渲染,每个都显示执行计数 [n],从没运行过的单元格显示 [ ]。正是这个计数告诉你,正在读的笔记本是从上到下执行的,还是按别的顺序执行的。

  5. 展开和收起输出

    输出块可以收起。收起的块显示 ▸ output (N hidden)(中文界面为「▸ 输出(已隐藏 N 项)」);展开后显示 ▾ output(中文界面为「▾ 输出」)和输出本身。这一点在手机上比在电脑上更要紧 —— 一个每个单元格都有上百行 stdout 的笔记本,不收起就没法读。

  6. 读保存下来的输出

    stdout 和 stderr 渲染成等宽字体块;错误渲染成 Name: value,后面跟着 traceback,ANSI 颜色真正解码 —— 16 色、256 色和真彩色的转义序列都支持 —— 所以带颜色的 traceback 依然好读,而不会变成一片转义码。Matplotlib 的 PNG 渲染成图片。HTML 输出(包括 dataframe 的显示)渲染成表格。应用显示不了的 MIME 类型的输出会显示 [unreadable <mime> output](中文界面为「[无法读取的 … 输出]」),而不是悄悄消失。

  7. 在笔记本里查找

    放大镜会在笔记本的文字上打开查找栏 —— 占位文字在文档中查找…,实时匹配计数,上下箭头。查找范围包括单元格源代码和文字输出。

  8. 导出

    笔记本是有「导出」面板的两种格式之一。「打印 / 存为 PDF」走 Android 打印框架;「分享为 HTML」生成一个自包含的文件,字体、公式、图表和图片都以 data URI 内嵌;「分享为 PNG」把整页截成一张长图。三者都来自应用渲染用的同一份 HTML,所以导出的结果和你看到的一致。

FoldRender 是怎么做的

一个宽容的解析器

笔记本解析器是按现实中存在的笔记本写的,而不是按 schema 描述的那种 —— nbformat 版本混杂、源代码是字符串或按行的列表、不认识的输出类型,都能扛住。读不了的,它会说读不了,并给出原因。

笔记本放在它所属的上下文里

一个 .ipynb 和它导入的模块、解释它的 README 在同一棵文件树里、同一个栏里打开。这才是在手机上读笔记本的真正理由:周围的仓库就在手边。

真正的 ANSI 解码

traceback 能保留颜色,是因为应用正确解码了 SGR 转义序列,包括 256 色和真彩色的形式。在笔记本里,pytest 或 IPython 的 traceback 是少数几种颜色本身带着信息的东西。

FoldRender 做不到什么?

如实列出的清单 —— 包括已随版本发布但没有验证过的行为 —— 让你在安装前就能判断,这个版本能不能做你要做的那件事。

在 Android 上读仓库还有哪些办法?FoldRender 和它们比怎么样?

大家真正会用的四个应用,以及把它们区分开的那一条:仓库最后在不在手机上,到了手机上有没有东西把它渲染出来。

工具下载价格从哪里获取克隆到设备上渲染 PDF / Jupyter 笔记本 / Markdown编辑器或 shell
FoldRenderUS$0Google Play,全球能 —— HTTPS,公开仓库可匿名能 —— 原生 Compose 渲染器没有,有意为之:它是阅读器,不是 IDE
GitHub MobileUS$0Google Play 和 App Store不能 —— 它读的是托管在 GitHub 上的仓库只有 GitHub 自己渲染的内容,需联网可在 PR 里编辑文件
Termux + gitUS$0F-Droid 或 GitHub能 —— 真正的 git 命令行不能 —— 只有终端文本有,完整的 shell,任何命令行编辑器都能用
MGit 1.7.0 (2023)US$0只在 F-Droid能 —— 克隆、拉取、推送,HTTPS 或 SSH 密钥不能没有 —— 它自己的页面写明不带文本编辑器

价格指的是下载价格。GitHub Mobile 的功能取决于你的 GitHub 套餐;Termux 和 MGit 都是自由软件。MGit 的版本和日期来自它在 F-Droid 上的页面。

FoldRender 的这些数字从哪来?

这里的每个数字都是从正式发布的版本里读出来的,或者来自本页底部列出的一手资料 —— 没有为了好看往上凑整。

常见问题

能在 Galaxy Z Fold 7 上读 Jupyter 笔记本吗?
能。笔记本渲染是在干净设备上验证过的四种格式之一:markdown 单元格按正文显示,代码单元格带高亮和执行计数,保存下来的输出包括图片和带颜色的 traceback。
需要装 Jupyter,或者有一个正在运行的服务器吗?
不需要。.ipynb 文件直接在设备上读。没有内核,没有服务器,也没有转换步骤 —— 这也是单元格不能执行的原因。
能显示图吗?
能,只要输出保存在笔记本里。Matplotlib 的 PNG 渲染成图片,dataframe 显示这类 HTML 输出渲染成表格。交互式的 JavaScript 小部件不会变成可交互的。
为什么有些单元格显示 [ ] 而不是数字?
因为文件里这个单元格没有执行计数 —— 它从没运行过,或者计数被清掉了。应用显示的是笔记本里记录的内容。
能把笔记本变成可以发给别人的东西吗?
能。「导出」面板提供打印 / 存为 PDF、一个所有内容都内嵌的自包含 HTML 文件,以及一张整页的 PNG。Markdown 和笔记本是有这个功能的两种格式。
能编辑或运行单元格吗?
不能。FoldRender 对笔记本来说是阅读器和导出工具。
FoldRender 多少钱?
US$0。在 Google Play 上免费,面向全球发行,版本里没有计费库,没有订阅,也没有付费档。
FoldRender 支持哪些 Android 版本?
Android 11 及以上。应用声明的 minSdk 是 30,也就是 2020 年随 Android 11 发布的 API 级别;编译和目标版本都是 API 36。它在 2025 年发布的 Galaxy Z Fold 7 上开发和测试。
FoldRender 能离线用吗?
能,只要仓库已经在设备上。克隆和拉取需要联网;从克隆下来的仓库或选中的文件夹里阅读、搜索,以及渲染 Markdown、源代码、PDF 和 Jupyter 笔记本都不需要。登录 GitHub 是可选的,只和私有仓库有关。
它和 GitHub Mobile、Termux、MGit 有什么不同?
GitHub Mobile 读的是托管在 GitHub 上的仓库,不会克隆到手机上。Termux 和 MGit 都能克隆,但克隆之后怎么渲染就交给你了 —— Termux 给你一个 shell,MGit 连文本编辑器都没有。FoldRender 通过 HTTPS 克隆,并在内屏上把克隆下来的内容渲染出来。

这些说法去哪里核对?

上面这些数字背后的一手文档,任何一条你都可以自己核对,不必听我们说。

本页最后核对于 2026-08-27。

更多 FoldRender 指南