/* * Copyright 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import com.google.samples.apps.nowinandroid.configureFlavors plugins { alias(libs.plugins.baselineprofile) alias(libs.plugins.nowinandroid.android.test) } android { namespace = "com.google.samples.apps.nowinandroid.benchmarks" defaultConfig { minSdk = 28 testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" buildConfigField("String", "APP_BUILD_TYPE_SUFFIX", "\"\"") } buildFeatures { buildConfig = true } // Use the same flavor dimensions as the application to allow generating Baseline Profiles on prod, // which is more close to what will be shipped to users (no fake data), but has ability to run the // benchmarks on demo, so we benchmark on stable data. configureFlavors(this) { flavor -> buildConfigField( "String", "APP_FLAVOR_SUFFIX", "\"${flavor.applicationIdSuffix ?: ""}\"" ) } testOptions.managedDevices.devices { create("pixel6Api33") { device = "Pixel 6" apiLevel = 33 systemImageSource = "aosp" } } targetProjectPath = ":app" experimentalProperties["android.experimental.self-instrumenting"] = true } baselineProfile { // This specifies the managed devices to use that you run the tests on. managedDevices.clear() managedDevices += "pixel6Api33" // Don't use a connected device but rely on a GMD for consistency between local and CI builds. useConnectedDevices = false } dependencies { implementation(libs.androidx.benchmark.macro) implementation(libs.androidx.test.core) implementation(libs.androidx.test.espresso.core) implementation(libs.androidx.test.ext) implementation(libs.androidx.test.rules) implementation(libs.androidx.test.runner) implementation(libs.androidx.test.uiautomator) }