From 486842e4aadc7184ce7f7405acfa9c0168439a74 Mon Sep 17 00:00:00 2001 From: iris <2+iris@noreply.localhost> Date: Wed, 2 Sep 2026 05:10:18 -0400 Subject: [PATCH] Make the release build traceable: profileable, with composable names System Tracing on the phone only records an app's own trace sections when the app is debuggable or profileable, and the phone runs a build that is neither once release builds exist. profileable shell="true" admits shell profilers and nothing else. runtime-tracing names composables inside those sections and is inert until a trace is recording. Co-Authored-By: Claude Fable 5.1 --- app/androidApp/build.gradle.kts | 1 + app/androidApp/src/main/AndroidManifest.xml | 6 ++++++ app/gradle/libs.versions.toml | 5 +++++ 3 files changed, 12 insertions(+) diff --git a/app/androidApp/build.gradle.kts b/app/androidApp/build.gradle.kts index 236042d..7081068 100644 --- a/app/androidApp/build.gradle.kts +++ b/app/androidApp/build.gradle.kts @@ -137,6 +137,7 @@ dependencies { coreLibraryDesugaring(libs.desugar.jdk.libs) implementation(libs.compose.runtime) + implementation(libs.compose.runtime.tracing) implementation(libs.compose.foundation) implementation(libs.compose.material3) implementation(libs.compose.ui) diff --git a/app/androidApp/src/main/AndroidManifest.xml b/app/androidApp/src/main/AndroidManifest.xml index 4ce4bd8..603e5fb 100644 --- a/app/androidApp/src/main/AndroidManifest.xml +++ b/app/androidApp/src/main/AndroidManifest.xml @@ -29,6 +29,12 @@ android:allowBackup="true" android:theme="@android:style/Theme.Material.Light.NoActionBar" tools:ignore="MissingApplicationIcon"> + + diff --git a/app/gradle/libs.versions.toml b/app/gradle/libs.versions.toml index cbddc57..9591090 100644 --- a/app/gradle/libs.versions.toml +++ b/app/gradle/libs.versions.toml @@ -68,6 +68,11 @@ androidx-exifinterface = { module = "androidx.exifinterface:exifinterface", vers # Declared directly rather than through the plugin's `compose.*` accessors, # which are deprecated as of CMP 1.11. compose-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "compose-multiplatform" } +# Names composables in a system trace, which is how a per-frame cost on the +# phone gets attributed to a composable rather than to "Compose". Inert until +# a trace is being recorded. Its own release train: 1.12.0 was the newest +# stable on Google Maven on 2026-09-02. +compose-runtime-tracing = { module = "androidx.compose.runtime:runtime-tracing", version = "1.12.0" } compose-foundation = { module = "org.jetbrains.compose.foundation:foundation", version.ref = "compose-multiplatform" } compose-material3 = { module = "org.jetbrains.compose.material3:material3", version.ref = "compose-material3" } compose-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "compose-multiplatform" }