ankidroid / ankidroid/Anki-Android-Backend

Convert `rsdroid[-testing]` to a `java-library`

未关闭
#674 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Kotlin
星标
91
派生
54
平均合并
1 天 36 分钟
30 天内合并 PR
12

描述

* 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.`
* https://github.com/ankidroid/Anki-Android-Backend/issues/671
* This does not impact `androidTest`
* 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

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。