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 摘要。