130KB 的微信读书精简客户端,专为低性能安卓电纸书优化,支持本地导入与云端同步。
简介
wereadlite 是一款专为低性能安卓电纸书打造的微信读书精简客户端,安装包仅约 130 KB,默认支持 Android 4.2+(另有 Android 4.0 专用包)。它不依赖 AndroidX、WebView 或 Gradle,界面 100% 代码直绘,把「读」这一件事做到极致顺滑。
快速开始
- 直接安装 Releases 中的 APK(V1 签名,minSdk 17)。
- Android 4.0 设备请使用带
-min14后缀的包。 - 首次打开用微信扫码登录;不登录也能用——在书架页点「导入」即可读本地 TXT / EPUB。
从源码构建
bash
bash build.sh # minSdk 17,产物 dist/wereadlite-0.2.7.apk
MIN_SDK=14 bash build.sh # minSdk 14,产物带 -min14 后缀
bash tools/selftest.sh # JVM 解析回归(当前 177 条断言)
环境要求:Android SDK、JDK 11+、python3。工具链全自动探测,无需 Gradle 或 Android Studio。签名口令从环境变量读取(KS_PASS、KS_ALIAS),不设则用脚本内默认值。
为什么这么小?
- 界面 100% 代码直绘,
res/目录为空:无 XML 布局、无 png 图标、无主题包,图标由 Canvas 现画。 - 依赖仅一个
libs-zxing.jar(二维码),其余全走 Android framework。 - 渲染黑白直绘、无过渡动画,墨水屏更跟手。
- 分页用
StaticLayout手动实现,不引入阅读引擎。
构建流程:javac --release 8 → R8 压缩脱糖 → aapt2 link → zipalign → apksigner,产物 classes.dex 约 267 KB,签名后 APK 约 130 KB。
低版本适配
- 默认 minSdk 17(Android 4.2),
MIN_SDK=14可出 Android 4.0 包。 - 编译期用 android-17 桩 jar,超界 API 直接编译不过;构建最后会逐一比对 dex 中的框架方法引用与 SDK 的
api-versions.xml,高于 minSdk 的调用即失败。 - 签名只走 V1(JAR),避免 Android 4.4 以下 JarVerifier 解析问题。
- 提供「兼容模式(证书容错)」开关,应对老 ROM 证书链残缺导致书架同步失败。
功能亮点
- 书架:微信扫码登录(二维码 + 长轮询),登录后 renewal 续期,一次授权长期有效。书架同步、封面缓存、公开/私密阅读统计。登录过期会明确提示,不会伪装成「书架是空的」。云端同步失败时本地导入的书照常显示。长按进入多选,可批量移出书架。
- 发现(轻量书城):最近阅读、猜你喜欢(可换一批)、热门书目。搜索书名/作者带联想。书籍详情页含评分、点评人数、字数、出版方、简介、是否可读、加入书架、已读时长。有意不做排行榜。
- 阅读:云端书与本地书统一分页器。翻页:左侧 28% 上一页、右侧 28% 下一页、中间唤出工具条;音量键翻页(可关闭);方向键 / Space / PageUp / PageDown 有效。目录、章内进度滑杆、上下章跳转;页码与百分比支持「整本书累计」和「按章」两种口径。显示样式面板:字号 14–34 pt、边距 4–44 dp、行距 1.08–2.00、段落首行缩进 4–8 个半角格(默认 4 格 = 2 汉字)。轻点走一档、按住拖动实时预览、松手记住;拖动预览按重排耗时自适应节流。缩进用
LeadingMarginSpan只加空白,不插字符,进度对得上;续页第一行不会误缩进,原文带前导空格的 TXT 只补足到设定宽度。页脚两行:上排书名/作者居中,下排页码与百分比贴左右;左上角返回按钮收进页眉行内。阅读进度与微信读书双向同步:每次翻页上报/web/book/read,落库才认;打开书时以书架同步的bookProgress[]为准,和本地位置比章…
评论 0
还没有评论,来说两句吧。
登录 后参与评论