E5: package app/shellApp without Gradle (cargo xtask apk)
New xtask/ crate (no deps) runs cargo ndk -> javac -> d8 -> aapt2 -> zipalign -> apksigner directly, signed with the same key build-apk.sh uses. Both pass conditions proved on the ai-app-2 emulator: the xtask APK installs over the Gradle-built shellApp, and the notification service starts and posts a real notification while backgrounded. Adds one printRuntimeClasspathJars task to shellApp/build.gradle.kts (and a matching signingConfig) -- the one disclosed Gradle call the xtask still makes, to resolve the AndroidX/:link dependency graph. That call's Kotlin compilation of :link as a side effect also answers E3's open kotlinc question, so no Java port of ServerStore was needed. Wires a second Apk component into .dev-updater.ron beside the existing one. Full writeup in RUST.md's E5 box. Co-Authored-By: Claude Sonnet <noreply@anthropic.com>
This commit is contained in:
1 parent
32a5256a0d
commit
ceabd00805
11 files changed
+1289
-25
No files matched your search
@@ -0,0 +1,16 @@
|
||||
[package]
|
||||
name = "xtask"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
# E5 (RUST.md): packages app/shellApp into a signed, installable APK without
|
||||
# Gradle driving the assembly (cargo ndk -> javac -> d8 -> aapt2 -> zipalign
|
||||
# -> apksigner). No dependencies beyond the standard library: every step
|
||||
# below is "run this SDK tool with these arguments and check its exit
|
||||
# status," which needs nothing a crate would help with, and every tool
|
||||
# invoked is one this project already requires (the NDK, the SDK
|
||||
# build-tools, the JDK, `cargo ndk`) -- see AGENTS.md's "new dependencies
|
||||
# need a reason."
|
||||
[[bin]]
|
||||
name = "xtask"
|
||||
path = "src/main.rs"
|
||||
Reference in new issue
Block a user