mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-06-13 16:35:47 -04:00
:baselineprofile
Generates a Baseline Profile
for :androidApp — AOT-compiling the cold-start and first-frame code paths so ART doesn't pay the
JIT cost on first launch. Targets the google flavor (the variant most users run).
Generate the profile (run on a device/emulator)
./gradlew :androidApp:generateGoogleReleaseBaselineProfile
Output is merged into androidApp/src/google/generated/baselineProfiles/baseline-prof.txt.
Commit that file — release builds package it via androidx.profileinstaller.
Quantify the win
./gradlew :androidApp:benchmarkGoogleReleaseBaselineProfile
Compare startupCompilationNone vs startupCompilationBaselineProfiles in the output.
Scope / TODO
- The journey (
BaselineProfileGenerator) is cold-start only, since CI has no paired radio. Extend it with post-connection screens (node list, map, message thread) once a fake transport or connected device is wired into the harness — a more representative journey yields a better profile. - For hermetic CI generation, swap
useConnectedDevices = trueinbuild.gradle.ktsfor a Gradle Managed Device. - f-droid currently inherits no profile (only
googleis produced). Add a second flavor here if the f-droid startup path ever diverges enough to matter.