From 5913d09770bbed1e66701db6c35709d429c1baec Mon Sep 17 00:00:00 2001 From: rahulsainani Date: Thu, 16 Feb 2023 16:09:38 +0530 Subject: [PATCH] Bug 1807324 - Add macrobenchmarks for startup metrics --- .buildconfig.yml | 11 +++ app/build.gradle | 10 ++- app/src/main/AndroidManifest.xml | 4 ++ app/src/main/java/org/mozilla/fenix/Config.kt | 2 +- benchmark/build.gradle | 70 +++++++++++++++++++ benchmark/src/main/AndroidManifest.xml | 7 ++ .../fenix/benchmark/StartupBenchmark.kt | 49 +++++++++++++ .../fenix/benchmark/utils/Constants.kt | 8 +++ .../benchmark/utils/MacroBenchmarkRule.kt | 37 ++++++++++ buildSrc/src/main/java/FenixDependencies.kt | 5 +- settings.gradle | 1 + 11 files changed, 200 insertions(+), 4 deletions(-) create mode 100644 benchmark/build.gradle create mode 100644 benchmark/src/main/AndroidManifest.xml create mode 100644 benchmark/src/main/java/org/mozilla/fenix/benchmark/StartupBenchmark.kt create mode 100644 benchmark/src/main/java/org/mozilla/fenix/benchmark/utils/Constants.kt create mode 100644 benchmark/src/main/java/org/mozilla/fenix/benchmark/utils/MacroBenchmarkRule.kt diff --git a/.buildconfig.yml b/.buildconfig.yml index 4cf84b667..62d820f7a 100644 --- a/.buildconfig.yml +++ b/.buildconfig.yml @@ -135,6 +135,17 @@ variants: fileName: app-fenix-x86_64-beta-unsigned.apk build_type: beta name: fenixBeta +- apks: + - abi: arm64-v8a + fileName: app-fenix-arm64-v8a-benchmark-unsigned.apk + - abi: armeabi-v7a + fileName: app-fenix-armeabi-v7a-benchmark-unsigned.apk + - abi: x86 + fileName: app-fenix-x86-benchmark-unsigned.apk + - abi: x86_64 + fileName: app-fenix-x86_64-benchmark-unsigned.apk + build_type: benchmark + name: fenixBenchmark - apks: - abi: noarch fileName: app-debug-androidTest.apk diff --git a/app/build.gradle b/app/build.gradle index 5d3cf8906..6f2ad3b0c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,6 @@ apply plugin: 'kotlin-parcelize' apply plugin: 'jacoco' apply plugin: 'androidx.navigation.safeargs.kotlin' apply plugin: 'com.google.android.gms.oss-licenses-plugin' -apply plugin: 'androidx.benchmark' - import com.android.build.OutputFile import groovy.json.JsonOutput @@ -148,6 +146,11 @@ android { "deepLinkScheme": deepLinkSchemeValue ] } + benchmark releaseTemplate >> { + initWith buildTypes.nightly + applicationIdSuffix ".fenix" + debuggable false + } } buildFeatures { @@ -447,6 +450,7 @@ nimbus { fenixNightly: "nightly", fenixBeta: "beta", fenixRelease: "release", + fenixBenchmark: "developer", ] // This is generated by the FML and should be checked into git. // It will be fetched by Experimenter (the Nimbus experiment website) @@ -620,6 +624,8 @@ dependencies { implementation FenixDependencies.google_play_review implementation FenixDependencies.google_play_review_ktx + implementation FenixDependencies.androidx_profileinstaller + androidTestImplementation FenixDependencies.uiautomator androidTestImplementation "tools.fastlane:screengrab:2.0.0" // This Falcon version is added to maven central now required for Screengrab diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 66928ce86..a1a85adcf 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -48,6 +48,10 @@ android:usesCleartextTraffic="true" tools:ignore="UnusedAttribute"> + +