Register the optimized baseline profile source explicitly

This commit is contained in:
justinzeus 2026-11-06 15:21:19 +01:00
parent 427b18cdc5
commit 59f4a06815
3 changed files with 7 additions and 1 deletions

View file

@ -209,6 +209,7 @@ configure<ApplicationExtension> {
} }
getByName("optimized") { getByName("optimized") {
kotlin.directories += "src/release/java" kotlin.directories += "src/release/java"
baselineProfiles.directories += "src/optimized/baselineProfiles"
} }
} }

View file

@ -77,7 +77,7 @@ separate package/debug signer.
`androidx.profileinstaller` and library-provided profiles already exist. There `androidx.profileinstaller` and library-provided profiles already exist. There
is no recorded app baseline-profile source or Macrobenchmark module. is no recorded app baseline-profile source or Macrobenchmark module.
`src/optimized/baseline-prof.txt` adds a hand-maintained seed: application and `src/optimized/baselineProfiles/baseline-prof.txt` adds a hand-maintained seed: application and
activity classes plus their `onCreate` methods, `WolfskinAppKt`, activity classes plus their `onCreate` methods, `WolfskinAppKt`,
`WolfskinScreenPreference` and `ConductarrPreference`. AGP merges it with library `WolfskinScreenPreference` and `ConductarrPreference`. AGP merges it with library
profiles, rewrites it through R8 and packages `assets/dexopt/baseline.prof` and profiles, rewrites it through R8 and packages `assets/dexopt/baseline.prof` and
@ -87,6 +87,8 @@ module, record cold launch, Quick Connect/sign-in, person selection, Home,
Libraries, Discover, title pages and playback on a suitable device, then rebuild Libraries, Discover, title pages and playback on a suitable device, then rebuild
and compare startup/frame timings. Device-driven recording and runtime checks and compare startup/frame timings. Device-driven recording and runtime checks
remain separate from an APK build. remain separate from an APK build.
The optimized source set explicitly registers that profile directory; a bare
`src/optimized/baseline-prof.txt` is not consumed by this AGP configuration.
Static verification: use `aapt2 dump badging` for package/label/SDKs and absence Static verification: use `aapt2 dump badging` for package/label/SDKs and absence
of `application-debuggable`; `apksigner verify --print-certs` for the debug of `application-debuggable`; `apksigner verify --print-certs` for the debug
@ -95,6 +97,9 @@ signer; `unzip -l` for both dexopt assets, native ABI contents and absence of
consumer rules rather than adding blanket keeps. JVM tests do not prove consumer rules rather than adding blanket keeps. JVM tests do not prove
minified Hilt/Room/serialization/JNI runtime safety; exercise sign-in, real minified Hilt/Room/serialization/JNI runtime safety; exercise sign-in, real
Conductarr reads, artwork, database reopen and each player on the comparison box. Conductarr reads, artwork, database reopen and each player on the comparison box.
`help --task :app:testDefaultOptimizedUnitTest` confirms that this non-debug
variant has no JVM unit-test task, just like release. Build logic is checked
through actual APK assembly and static artifact inspection, not mock unit tests.
## Upstream v1.1.0 integration ## Upstream v1.1.0 integration