import com.android.build.api.dsl.ManagedVirtualDevice plugins { id 'com.android.test' id 'org.jetbrains.kotlin.android' } android { namespace 'com.example.benchmark' compileSdk 33 compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } defaultConfig { minSdk 23 targetSdk 33 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } 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"] } } 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.2.0' implementation 'androidx.benchmark:benchmark-macro-junit4:1.1.1' } androidComponents { beforeVariants(selector().all()) { enabled = buildType == "benchmark" } }