Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Baseline profiles aren't supported on this device version

I configured a benchmark module and created a baseline profile for the project and saved it in the app according to the instructions here https://developer.android.com/studio/profile/baselineprofiles.

I've also added the benchmark:

@RunWith(AndroidJUnit4::class)
class BaselineProfileBenchmark {
    @get:Rule
    val benchmarkRule = MacrobenchmarkRule()

    @Test
    fun startupNoCompilation() {
        startup(CompilationMode.None())
    }

    @Test
    fun startupBaselineProfile() {
        startup(
            CompilationMode.Partial(
                baselineProfileMode = BaselineProfileMode.Require
            )
        )
    }

    private fun startup(compilationMode: CompilationMode) {
        benchmarkRule.measureRepeated(
            packageName = "com.example.app",
            metrics = listOf(StartupTimingMetric()),
            iterations = 10,
            startupMode = StartupMode.COLD,
            compilationMode = compilationMode
        ) {
            pressHome()
            startActivityAndWait()
        }
    }
}

startupBaselineProfile() test fails with an exception "Baseline profiles aren't supported on this device version". I tried to run it on different Pixel and Samsung devices with the latest Android version, but the same exception is thrown everywhere.

Do these baseline profiles wok at all?

like image 289
Paul Chernenko Avatar asked Feb 11 '26 00:02

Paul Chernenko


2 Answers

Update October 2022

Use androidx.profileinstaller version 1.3.0-alpha01 or later that fixes the problem (or 1.2.1 when released).

Original Answer

Currently baseline profiles has some known issues:

  • can't benchmark them on Android 12L (Api 32) - b/228222110
  • you need latest alpha version of profileinstaller, which is 1.2.0-alpha02

Note, that the profileinstaller may be added with a library (e.g. jetpack compose) so make sure you add it to your dependencies to override the version.

like image 110
mlykotom Avatar answered Feb 12 '26 14:02

mlykotom


Make sure to add the profileinstaller dependency to the target module (usually it's you app module)

implementation "androidx.profileinstaller:profileinstaller:1.2.0-beta01"
like image 43
Georgy Avatar answered Feb 12 '26 14:02

Georgy