Files
fileworkbench/docs/ENGINE_INTEGRATION.md
zemion db873063f8
Verify source and build Android / android (push) Canceled after 0s
initial commit v 0.2.0
2026-09-24 22:49:27 +02:00

2.2 KiB

Office engine decision record

Decision in 0.1.0

Ship an Android source implementation with local reading previews and a reusable Kotlin core. Do not claim the LibreOfficeKit engine is bundled. Do not claim a reading preview preserves document layout, all text, formula results or embedded objects.

The earlier high-level discussion made embedding LibreOfficeKit sound closer to adding a small library dependency than it really is. LibreOffice's own Android notes describe bundling a native LibreOffice core, bootstrapping it, a dedicated LOK thread, native callbacks and tiled rendering. This is a substantive integration/build/security/licensing track; SOURCES.md points to the primary upstream documentation. Its existing work remains valuable and is the preferred direction to investigate rather than writing a new compatible Office layout engine.

Required prototype deliverables

  1. A pinned upstream revision, licence inventory and documented build recipe with real Android binaries for the required ABIs. Do not assume a maintained public AAR exists.
  2. A local open/page/tile/render prototype on actual hardware, including startup resources/fonts. Do not redistribute fonts copied from the authoring environment.
  3. Single-thread/queue ownership rules for engine calls and callbacks, a crash-isolated service, and a bounded transport for page metadata, pixels, text and search results.
  4. Explicit macro/external-link/font/network policies enforced inside the chosen engine and verified against hostile documents, not just disabled in the host UI.
  5. Fidelity tests across DOCX/XLSX/PPTX/ODF and only then legacy formats. Account for missing fonts, unsupported layout behaviours, cached vs calculated spreadsheet values, and revision semantics.
  6. Independent assessment of Apple build/distribution integration. The common Kotlin preview model remains reusable; the native engine may need different platform bootstrapping/rendering adapters.

Not done in this repository

There is no liblo-native-code.so, LOK JNI bridge, Collabora build, converted PDF cache, native engine licence bundle or Office layout validation. The FormatHandler interface is an extension seam for reading previews; it is not evidence of a full engine implementation.