import com.android.build.api.dsl.ManagedVirtualDevice plugins { id 'com.android.test' id 'org.jetbrains.kotlin.android' } android { namespace 'at.techbee.benchmark' compileSdk 34 compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } defaultConfig { minSdk 23 targetSdk 34 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "LOW-BATTERY" missingDimensionStrategy("version", "ose") } testOptions { managedDevices { devices { pixel2Api31(ManagedVirtualDevice) { device = "Pixel 2" apiLevel = 31 systemImageSource = "aosp" } } } } buildTypes { // This benchmark buildType is used for benchmarking, and should function like your // release build (for example, with minification on). It's signed with a debug key // for easy local/CI testing. benchmark { debuggable = true signingConfig = debug.signingConfig matchingFallbacks = ["release"] proguardFiles("proguard-benchmark-rules.pro") } } targetProjectPath = ":app" experimentalProperties["android.experimental.self-instrumenting"] = true } dependencies { implementation 'androidx.test.ext:junit:1.1.5' implementation 'androidx.test.espresso:espresso-core:3.5.1' implementation 'androidx.test.uiautomator:uiautomator:2.3.0' implementation 'androidx.benchmark:benchmark-macro-junit4:1.2.3' } androidComponents { beforeVariants(selector().all()) { enabled = buildType == "benchmark" } }