Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Adding Glide Typing To Heliboard Without libjni_latinimegoogle.so

Description and use

Implement glide typing in Heliboard without the closed Google JNI library, maintaining API compatibility.

Problem

Implement gesture (glide) typing in Heliboard without relying on the closed‑source Google latinime JNI library, while maintaining API compatibility.

Outcome

Heliboard will gain an open, documented gesture typing implementation that matches the Google JNI interface, enabling community forks to ship a fully open keyboard without the proprietary library.

Workflow

  • 1. Analyze the Google latinime JNI library to list all exported functions and compare them with Heliboard’s current JNI functions using jni_compare.zip scripts.
  • 2. Identify missing functions required for gesture typing and plan to implement them in Heliboard’s native code.
  • 3. Study Heliboard’s gesture data structures (pointer data, dictionary traversal) by reading the codebase and existing JNI bindings.
  • 4. Design and implement the SHARK2 gesture recognition algorithm in C++ to generate gesture templates and compare input gestures.
  • 5. Implement JNI wrappers that expose the required functions, ensuring naming conventions and signatures match the Google library’s API.
  • 6. Write unit tests that call both the Google and Heliboard JNI libraries with identical inputs to verify functional parity.
  • 7. Document the JNI interface, gesture data handling, and the SHARK2 implementation for future contributors.
  • 8. Create a pull request with the new native code, tests, and documentation.
  • 9. Coordinate with MindTheGApps and other GApps maintainers to replace the proprietary library with the new Heliboard JNI library.
  • 10. Monitor integration in downstream forks and address any compatibility issues.

Evidence

The google JNI library's interface is almost a strict superset of Heliboard's JNI library interface.

Source

I have run a comparison of the two libraries, and output the results into compare.csv.

Source

The short version of what that csv says is, the google JNI library's interface is almost a strict superset of Heliboard's JNI library interface.

Source

  • Record date: 2026-09-05T14:14:46.919Z