Skip to content

Investigate converting rsdroid[-testing] to a java-library #674

@david-allison

Description

@david-allison
  • Speeds up tests
    • This is more useful now we're considering re-architecting the module structure of the app. If we can remove 'Robolectric' from a test suite for a module, we get huge savings. There are many tests which only use Robolectric due to the rsdroid/libanki, but we can't feasibly
  • Fixes local builds: Direct local .aar file dependencies are not supported when building an AAR.
  • I was asked in the past about this for a university project. It seemed feasible at the time, but I didn't have capacity.

Initial thoughts

  1. What are the blockers? (database; Looper etc...)
    • I do not believe these will cause significant problems.
  2. How will packaging the .so files work?
    • We currently have two artifacts: rsdroid with .so files for each of the 4 mainstream Android targets.
    • rsdroid-testing with rsdroid.dll, librsdroid.dylib and librsdroid.so for Robolectric
      • Loaded via RustBackendLoader
  3. Document build/generated/anki_artifacts
  • Used via AssetManager - mmap onto the apk

Constraints

  • Bloating the apk size (fat JAR) is unacceptable
  • Local aar -> aar references are unacceptable
    • apk -> local aar
  • anki_artifacts are heavily latency sensitive: Pages and web content used by the study screen

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions