android: the handoff — the pending rounds, the pipeline, and what is unverified
Everything written this session that has not been through the device: rounds 43 to 48 (each patch adversarially verified, 43's transient-notice expectation fixed), a partial round 49, the pipeline scripts, the Android Auto design and the icon comparison mock. Also the two harness changes that were never A/B'd — adaptive waits, which may only shorten a declared wait and never lengthen it, and a ship that runs the mock walk and the deploy at the same time. The A/B and its 255-step baseline are in handoff/tools; main stays at what the phone has actually walked.
This commit is contained in:
1 parent
867fd42972
commit
9f0601027c
400 files changed
+26401
-3
No files matched your search
@@ -0,0 +1,35 @@
|
||||
android: the keep rules for a release build nobody has made
|
||||
|
||||
Every APK this port has produced is `assembleArm64Debug`, and the generated
|
||||
project turns R8 on for `release` and only for `release` — while tauri finds a
|
||||
plugin class by string, files every `@Command` under `commands[method.name]`,
|
||||
and lets Jackson fill every `@InvokeArg` field by field. Minification breaks
|
||||
exactly that, and it breaks it without a word: the app compiles, installs,
|
||||
launches, shows Home, and then a tap on Library folder answers "No command
|
||||
pickFolder found for plugin ..." in logcat and nothing on screen. So each
|
||||
plugin module now carries its own `consumer-rules.pro` naming its own
|
||||
reflected surface — the shape tauri-android and tauri-plugin-dialog already
|
||||
use in this build, and one that travels with the plugin into a regenerated
|
||||
`gen/android`, which a rule written into that gitignored tree would not.
|
||||
|
||||
What belongs to no single plugin is in `src-tauri/android/proguard-soulstream.pro`,
|
||||
copied into the generated project by the build script because the app's own
|
||||
Gradle file is regenerated: the runtime annotation attributes, a `-dontwarn`
|
||||
pair for the two `java.beans` classes jackson-databind references and Android
|
||||
does not have (R8 turns a missing class into a build error, so without them
|
||||
there may be no APK at all), and a keep for the four `@Command` methods
|
||||
declared on `app.tauri.plugin.Plugin` itself. Tauri's own rule matches classes
|
||||
annotated `@TauriPlugin` and the members they declare; the base class carries
|
||||
no such annotation, so nothing names `registerListener` — which is what the
|
||||
lock-screen card's buttons and the download notice's Cancel and Open ride on.
|
||||
|
||||
`build.sh` grows `--release`: the release profile, `--features tauri/devtools`
|
||||
so the walk can still attach at all, `assembleArm64Release`, and a zipalign and
|
||||
sign with the same debug key the phone already trusts, so the APK installs over
|
||||
the app rather than forcing an uninstall that would take Kyle's settings with
|
||||
it. With no argument the script is what it has always been, cargo line for
|
||||
cargo line, so deploy.sh and ship.sh keep the path they run every twenty
|
||||
minutes. None of this has been built: Gradle, Kotlin and R8 do not run on this
|
||||
machine, the rules are a precaution against a silent failure rather than a fix
|
||||
for an observed one, and ANDROID.md says so and lists what to test by hand,
|
||||
command by command, on the first release build anyone makes.
|
||||
Reference in new issue
Block a user