PDF 是渲染在干净设备上验证过的四种格式之一:页数、翻页和缩略图都符合预期。本页讲怎么把一个 PDF 显示到屏幕上 —— 无论它来自「文件」应用、分享菜单,还是你克隆的仓库 —— 以及打开之后查看器能给你什么、不能给你什么。
FoldRender 在 Play 商店上的名字是 FoldRender: Git Repo Reader,包名 dev.foldrender.app,免费,面向全球发行。照常安装即可 —— 不会弹出要你打开「允许来自此来源的应用」的提示,更新也会自动送达。应用声明了 minSdk 30,所以需要 Android 11 或更新的版本;如果设备低于这个版本,Play 会直接告诉你,而不是让你装上一个跑不起来的版本。
两条路。在 FoldRender 里:点顶栏的文件夹图标(或者空白界面上的打开文件),通过系统文档选择器选这个 PDF。从外面打开:在「文件」应用或 Drive 里点这个 PDF,在「打开方式」列表里选渲染 —— FoldRender 按 MIME 类型注册了 application/pdf,按扩展名注册了 .pdf,所以那些发送文件时内容类型写得含糊的应用也会列出它。
点分支图标打开 Git 面板,把 HTTPS 地址粘贴到 筛选,或输入 owner/repo,点 获取代码。公开仓库可以匿名克隆。克隆会作为工作区打开;在几千个文件的仓库上,第一次列出文件树要在一个光秃秃的转圈后面等很久,没有进度显示,所以给它一点时间。
在文件标签页里,每一行都有类型标记;PDF 用红色的 PDF 标记,在一个全是源文件的文件夹里很容易挑出来。点这一行打开它。展开时,文件树留在左边,文档在右边渲染;合上时,文档占满整个屏幕,按返回键就回到文件树。
页面条上方那一行显示 N pages · page M(中文界面为「共 N 页 · 第 M 页」),M 会随着你滚动而更新 —— 这就是页码指示,而且是实时的。页面在一把互斥锁后面一次渲染一页,因为系统的 PDF 渲染器按约定是单线程的;渲染好的位图存在一个按页码和渲染宽度作键的 LRU 缓存里。还没滚到的页面会用占位块预留真实的宽高比,所以页面陆续出现时滚动条不会乱跳。
文档旁边是一条横向的页面缩略图条;点一张缩略图,主列表就跳到那一页。缩略图条和主栏共用一个文档句柄和一个位图缓存,所以来回拖缩略图不会重新打开或重新解码文件。
字号图标会打开阅读面板 —— 主题(跟随系统 / 浅色 / 深色)、字号和行宽滑块,以及一个衬线字体开关。主题作用于文档周围的应用外壳。位图按页并且按宽度缓存,所以旋转或展开时,会按新的宽度重新渲染页面,而不是把旧位图放大。
PDF 交给 Android 自带的 PdfRenderer 处理。这意味着 APK 里没有原生库,也不用为一种大多数人一周只打开几次的格式付出体积代价;也意味着页面的样子和系统其他地方渲染出来的一样。
PDF 和它周围的 Markdown、源代码、笔记本在同一棵树里、同一个栏里打开。提交进仓库的规范 PDF、导出的报告和厂商的数据手册,不再是非得离开应用才能读的文件。
渲染器注册表同时根据文件名、MIME 类型和魔数(文件开头的特征字节)给每个候选打分。一个扩展名缺失或写错的文件,只要开头几个字节是 %PDF,照样会交给 PDF 渲染器。
如实列出的清单 —— 包括已随版本发布但没有验证过的行为 —— 让你在安装前就能判断,这个版本能不能做你要做的那件事。
大家真正会用的四个应用,以及把它们区分开的那一条:仓库最后在不在手机上,到了手机上有没有东西把它渲染出来。
| 工具 | 下载价格 | 从哪里获取 | 克隆到设备上 | 渲染 PDF / Jupyter 笔记本 / Markdown | 编辑器或 shell |
|---|---|---|---|---|---|
| FoldRender | US$0 | Google Play,全球 | 能 —— HTTPS,公开仓库可匿名 | 能 —— 原生 Compose 渲染器 | 没有,有意为之:它是阅读器,不是 IDE |
| GitHub Mobile | US$0 | Google Play 和 App Store | 不能 —— 它读的是托管在 GitHub 上的仓库 | 只有 GitHub 自己渲染的内容,需联网 | 可在 PR 里编辑文件 |
| Termux + git | US$0 | F-Droid 或 GitHub | 能 —— 真正的 git 命令行 | 不能 —— 只有终端文本 | 有,完整的 shell,任何命令行编辑器都能用 |
| MGit 1.7.0 (2023) | US$0 | 只在 F-Droid | 能 —— 克隆、拉取、推送,HTTPS 或 SSH 密钥 | 不能 | 没有 —— 它自己的页面写明不带文本编辑器 |
价格指的是下载价格。GitHub Mobile 的功能取决于你的 GitHub 套餐;Termux 和 MGit 都是自由软件。MGit 的版本和日期来自它在 F-Droid 上的页面。
这里的每个数字都是从正式发布的版本里读出来的,或者来自本页底部列出的一手资料 —— 没有为了好看往上凑整。
minSdk 30,也就是 2020 年随 Android 11 发布的 API 级别;编译和目标版本都是 API 36。上面这些数字背后的一手文档,任何一条你都可以自己核对,不必听我们说。
git-clone 参考文档 —— 获取代码执行的操作,由定义它的项目自己来说明minSdk 定为最低要求的那个版本本页最后核对于 2026-08-27。