Update baseline profile and generation logic (#61)

pull/124/head
Ben Weiss 3 years ago committed by GitHub
parent d1e92ef6c9
commit da79a98876
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -44,18 +44,21 @@ android {
isMinifyEnabled = true isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
} }
val benchmark by creating {
initWith(release)
signingConfig = signingConfigs.getByName("debug")
matchingFallbacks.add("release")
proguardFiles("benchmark-rules.pro")
}
val staging by creating { val staging by creating {
initWith(debug) initWith(debug)
signingConfig = signingConfigs.getByName("debug") signingConfig = signingConfigs.getByName("debug")
matchingFallbacks.add("debug") matchingFallbacks.add("debug")
applicationIdSuffix = ".staging" applicationIdSuffix = ".staging"
} }
val benchmark by creating {
initWith(staging) // Usually should be `initWith(release)`. Connecting to demo backend.
matchingFallbacks.add("debug") // Making some settings below to align closer to release.
signingConfig = signingConfigs.getByName("debug")
proguardFiles("benchmark-rules.pro") // Only use benchmark proguard rules
isMinifyEnabled = false // FIXME enabling minification breaks access to demo backend.
isDebuggable = true
applicationIdSuffix = ".benchmark"
}
} }
packagingOptions { packagingOptions {
resources { resources {

File diff suppressed because it is too large Load Diff

@ -32,9 +32,9 @@ android {
// release build (for example, with minification on). It's signed with a debug key // release build (for example, with minification on). It's signed with a debug key
// for easy local/CI testing. // for easy local/CI testing.
val benchmark by creating { val benchmark by creating {
isDebuggable = true isDebuggable = false
signingConfig = signingConfigs.getByName("debug") signingConfig = signingConfigs.getByName("debug")
matchingFallbacks.add("release") matchingFallbacks.add("debug")
} }
} }

@ -19,6 +19,7 @@ package com.google.samples.apps.nowinandroid.baselineprofile
import androidx.benchmark.macro.ExperimentalBaselineProfilesApi import androidx.benchmark.macro.ExperimentalBaselineProfilesApi
import androidx.benchmark.macro.junit4.BaselineProfileRule import androidx.benchmark.macro.junit4.BaselineProfileRule
import androidx.test.uiautomator.By import androidx.test.uiautomator.By
import androidx.test.uiautomator.Direction
import org.junit.Rule import org.junit.Rule
import org.junit.Test import org.junit.Test
@ -45,6 +46,12 @@ class BaselineProfileGenerator {
findObject(By.text("Interests")) findObject(By.text("Interests"))
.click() .click()
waitForIdle() waitForIdle()
findObject(By.text("Accessibility")).scroll(Direction.DOWN, 2000f)
waitForIdle()
findObject(By.text("People")).click()
waitForIdle()
findObject(By.textStartsWith("Android")).scroll(Direction.DOWN, 2000f)
waitForIdle()
} }
} }
} }

@ -0,0 +1,45 @@
/*
* 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.
*/
package com.google.samples.apps.nowinandroid.core.network.di
import com.google.samples.apps.nowinandroid.core.network.NiANetwork
import com.google.samples.apps.nowinandroid.core.network.fake.FakeNiANetwork
import dagger.Binds
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton
import kotlinx.serialization.json.Json
@Module
@InstallIn(SingletonComponent::class)
interface NetworkModule {
@Binds
fun bindsNiANetwork(
niANetwork: FakeNiANetwork
): NiANetwork
companion object {
@Provides
@Singleton
fun providesNetworkJson(): Json = Json {
ignoreUnknownKeys = true
}
}
}
Loading…
Cancel
Save