Releases: donglua/JZOfficeAndroid
Release list
v0.3.0
升级说明
Maven groupId 从 io.github.donglua 改为 io.github.donglua.office。artifactId 和 Java 包名不变,升级时需同时更新 groupId 和版本号。
// 本地文档预览
implementation("io.github.donglua.office:viewer:0.3.0")
// 在线预览,包含同版本 viewer 的传递依赖
implementation("io.github.donglua.office:viewer-online:0.3.0")直接引用 AAR 时,在线预览需同时引入两个附件。本地预览只需 viewer-0.3.0.aar。使用完整版本的 AAR,避免混用不同版本的 Java 类和原生库。
主要变化
- PPTX 按可见页及相邻页准备排版,释放远处页面的绘制布局,保持页码、跳页和缩放行为。
- 在原有 800 万像素预算内保留最近使用的图片,回看时复用缓存,减少重复解码;优先保证可见图片清晰度。
- 保留 PPTX 小数字号,修复章节标题意外换行及显示不完整的问题。
- 将 Office 容器校验和 PPTX 纯几何计算集中到 Rust,提取平台无关的 XLSX 行列布局。
- 改善 Demo PPTX 文字对比度,补充设备回归与升级文档。
验证与已知问题
- 本地双模块发布包、Debug/Release 构建、Release lint、Rust 检查、47 项下载器检查和缓存检查通过。
- 新坐标的 Gradle 元数据和纯 POM 传递依赖验证通过。
- 真机专项通过:容器限制、图片缓存与清晰度、PPTX、XLSX、排版、Demo 三种样例及在线模块生命周期;内置 PPTX 覆盖全部 16 页。
- 完整设备套件仍有未通过项:曾出现输入分发 ANR;诊断发现约 26 万字符的 XLSX 单元格在主线程断行时持续阻塞。PPTX 屏幕背景色断言也有失败,截图中已绘出内容。两项均作为本版本已知问题保留。
- 本库仍提供有限内容预览,不保证 Office 完整版式一致性;性能测试仅说明排版或图片请求阶段的收益。
Maven Central 签名发布及两个 AAR 附件由本次 Release 的 Actions 工作流生成。附件上传完成与 Maven Central 可解析是两个独立状态,实际可用性以对应仓库为准。
完整变更:CHANGELOG。
v0.2.0
在线预览与缓存清理
- 新增可选
viewer-online模块:文件直链、签名 URL、自定义请求头、下载进度、取消及可替换下载器。 - 新增
OfficeCache缓存管理与清理接口,保留正在使用的文件,返回删除、跳过和失败统计。 - Demo 增加在线打开、取消、重试、关闭文档及清理缓存入口。
- 两个模块统一发布 AAR、sources、Javadoc、POM 和 Gradle Module Metadata。
接入
仅预览本地文档:
implementation("io.github.donglua:viewer:0.2.0")需要在线预览:
implementation("io.github.donglua:viewer-online:0.2.0")viewer-online 会传递依赖同版本 viewer。直接引用 Release AAR 时,在线预览需要同时引入两个附件。本地预览只需 viewer。
最低 Android 6.0(API 23),原生库支持 arm64-v8a 和 armeabi-v7a。
验证与限制
- 本地构建、lint、Rust 检查、47 项网络检查、缓存检查及双模块依赖解析已通过;发布 CI 负责正式签名和上传。
- Android Instrumentation APK 已编译,尚未完成设备验收。
- 在线文档完整下载后才能预览,不支持边下载边看、断点续传或持久离线缓存。
- 缓存使用状态仅在同一应用进程内共享;阻塞网络读取取消可能需要等待超时。
- 仍为 DOCX、PPTX、XLSX 的有限内容预览,不保证 Microsoft Office 版式一致。
v0.1.0
JZOfficeAndroid 首次公开发布:通过 Android Uri 离线、只读预览 DOCX、PPTX 和 XLSX,不依赖服务器、WebView 或 Office 应用。
主要能力
- DOCX:基础文字样式、图片、表格、行距和缩进,采用连续滚动展示。
- PPTX:幻灯片导航、组合变换、基础图形与自定义路径、缓存折线图,以及主题文字、渐变背景、表格填色和换行设置。
- XLSX:多工作表、双向滚动、合并单元格、基础样式、常见数字格式和公式缓存结果。
- 支持拖动、缩放、按可见区域加载图片;输入文件上限为 128 MiB,仍受文档结构和图片资源预算限制。
- Demo 内置三个综合样例,各案例标明条件与预期效果。
接入
最低 Android 6.0(API 23),默认包含 ARM64 和 ARM32。已发布到 Maven Central,可使用:
implementation("io.github.donglua:viewer:0.1.0")接口用法和完整支持范围见 README。
限制与验证
本版本提供有限内容子集预览,不保证与 Microsoft Office 的版式一致。旧版 .doc/.ppt/.xls、加密文档、编辑和公式计算不在支持范围内。
231 项 Rust 测试通过,Rust 格式与 Clippy 检查通过,Demo Debug/Release 和标准测试 APK 构建通过。GitHub 自动构建、签名和 Maven Central 发布成功,已下载公开 AAR 核对校验和、ARM64/ARM32 原生库及入口类。最终样例的部分 PPTX/XLSX 真机画面与交互复核因设备离线尚未完成,不代表所有兼容场景均已验证。