Direct answer
The runtime owns model loading and native execution. The application owns lifecycle, concurrency, validation, user-visible state, and the release promise.
This page does not publish benchmark or compatibility results. It shows the evidence required to answer llama.cpp JNI threading Android without turning an assumption into a product claim.
Evidence to collect
The claim becomes reviewable only when the following evidence is attached to the same artifact and test run:
- JNI ownership tests
- Concurrent request fixture
- Close-during-inference result
A runtime comparison is publishable only when artifact identity, build configuration, selected backend, task fixture, and failures are recorded.
Implementation workflow
- Freeze the product task and minimum device tier.
- Choose the runtime and supported artifact format.
- Pin artifact and runtime revisions.
- Wrap native state behind an application-owned interface.
- Test load, representative work, cancellation, close, and fallback.
- Publish only the behavior reproduced by the recorded configuration.
Keep each transition observable. A failure should identify the stage, artifact, runtime, and recovery action without logging private user content.
Failure patterns to prevent
- Sharing mutable native state freely
- Closing from UI disposal without coordination
Also prevent silent fallback, unpinned artifacts, missing cancellation, and conclusions that combine unlike configurations. Store unsuccessful runs alongside successful ones.
Minimum reproducibility record
| Layer | Record |
|---|---|
| Device | Manufacturer, model, chipset, RAM class, operating-system build |
| Software | Application version and git commit |
| Model | Family, variant, revision, format, file length, hash, quantization |
| Runtime | Name, revision, requested backend, observed backend evidence |
| Workload | Fixture revision, input hash, prompt hash, output policy |
| Outcome | Completed, failed, cancelled, fallback, and privacy-safe diagnostics |
Release checklist
- ☐ The primary query is answered without an unsupported number.
- ☐ Every artifact and runtime is pinned.
- ☐ The representative task and failure policy are explicit.
- ☐ Lifecycle, cancellation, cleanup, and fallback are tested.
- ☐ User-content and network boundaries are documented.
- ☐ Result wording applies only to the recorded configuration.
- ☐ The page links to raw method or evidence when results are added.
Sources and related evidence
Chinese deployment and troubleshooting content is organized in the 奇连 AI 端侧专题.