Updates PagerBenchmark with new use cases
Before implementing the new prefetching strategies for Pager, this CL introduce new test cases for the Pager macrobenchmark so we can keep track of improvements introduced: go/pager-prefetching
Test: N/A
Change-Id: Id1b5135a5b1d59beace0f8f6f9e0ddf48d688670
diff --git a/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/compose/integration/macrobenchmark/target/PagerActivity.kt b/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/compose/integration/macrobenchmark/target/PagerActivity.kt
index 130f0a0..a32d2e7 100644
--- a/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/compose/integration/macrobenchmark/target/PagerActivity.kt
+++ b/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/compose/integration/macrobenchmark/target/PagerActivity.kt
@@ -17,42 +17,75 @@
package androidx.compose.integration.macrobenchmark.target
import android.os.Bundle
+import android.webkit.WebView
+import android.webkit.WebViewClient
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
+import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.lazy.grid.GridCells
+import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.PageSize
+import androidx.compose.foundation.pager.PagerScope
+import androidx.compose.foundation.pager.PagerState
import androidx.compose.foundation.pager.rememberPagerState
-import androidx.compose.material.Text
+import androidx.compose.material3.Button
+import androidx.compose.material3.Card
+import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.layout.ContentScale
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.unit.dp
+import androidx.compose.ui.viewinterop.AndroidView
+import kotlinx.coroutines.launch
class PagerActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
-
- val itemCount = intent.getIntExtra(ExtraItemCount, 3000)
+ val benchmarkType = intent.getStringExtra(BenchmarkType.Key)
+ val enableTab = intent.getBooleanExtra(BenchmarkType.Tab, false)
setContent {
- val pagerState = rememberPagerState { itemCount }
- Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
- HorizontalPager(
- modifier =
- Modifier.height(400.dp)
- .semantics { contentDescription = "Pager" }
- .background(Color.White),
- state = pagerState,
- pageSize = PageSize.Fill
- ) {
- PagerItem(it)
+ val pagerState = rememberPagerState { ItemCount }
+
+ Column(modifier = Modifier.fillMaxSize()) {
+ if (enableTab) {
+ val scope = rememberCoroutineScope()
+ Button(
+ modifier = Modifier.semantics { contentDescription = "Next" },
+ onClick = {
+ scope.launch {
+ pagerState.animateScrollToPage(pagerState.currentPage + 1)
+ }
+ }
+ ) {
+ Text("Next Page")
+ }
+ }
+ when (benchmarkType) {
+ BenchmarkType.Grid -> BenchmarkPagerOfGrids(pagerState)
+ BenchmarkType.List -> BenchmarkPagerOfLists(pagerState)
+ BenchmarkType.WebView -> BenchmarkPagerOfWebViews(pagerState)
+ BenchmarkType.FullScreenImage -> BenchmarkPagerOfFullScreenImages(pagerState)
+ BenchmarkType.FixedSizeImage -> BenchmarkPagerOfFixedSizeImages(pagerState)
+ BenchmarkType.ListOfPager -> BenchmarkListOfPager()
+ else -> throw IllegalStateException("Benchmark Type not known ")
}
}
}
@@ -60,14 +93,139 @@
launchIdlenessTracking()
}
+ @Composable
+ fun BenchmarkPagerOfGrids(pagerState: PagerState) {
+ FullSizePager(pagerState) {
+ LazyVerticalGrid(GridCells.Fixed(4)) {
+ items(200) {
+ Card(modifier = Modifier.fillMaxWidth().height(64.dp).padding(8.dp)) {
+ Text(it.toString())
+ }
+ }
+ }
+ }
+ }
+
+ @Composable
+ fun BenchmarkPagerOfLists(pagerState: PagerState) {
+ FullSizePager(pagerState) {
+ LazyColumn(modifier = Modifier.fillMaxWidth()) {
+ items(200) {
+ Card(modifier = Modifier.fillMaxWidth().height(64.dp).padding(8.dp)) {
+ Text(it.toString())
+ }
+ }
+ }
+ }
+ }
+
+ @Composable
+ fun BenchmarkPagerOfWebViews(pagerState: PagerState) {
+ FullSizePager(pagerState) {
+ AndroidView(
+ modifier = Modifier.fillMaxSize(),
+ factory = { context ->
+ WebView(context).apply {
+ settings.javaScriptEnabled = true
+ webViewClient = WebViewClient()
+
+ settings.loadWithOverviewMode = true
+ settings.useWideViewPort = true
+ settings.setSupportZoom(true)
+ }
+ },
+ update = { webView -> webView.loadUrl("https://www.google.com/") }
+ )
+ }
+ }
+
+ @Composable
+ fun BenchmarkPagerOfFullScreenImages(pagerState: PagerState) {
+ FullSizePager(pagerState) { page ->
+ val pageImage = Images[(page - ItemCount / 2).floorMod(5)]
+ Image(
+ contentScale = ContentScale.Crop,
+ modifier = Modifier.fillMaxSize(),
+ painter = painterResource(pageImage.second),
+ contentDescription = stringResource(pageImage.third)
+ )
+ }
+ }
+
+ @Composable
+ fun BenchmarkPagerOfFixedSizeImages(pagerState: PagerState) {
+ FixedSizePager(pagerState) { page ->
+ Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
+ val pageImage = Images[(page - ItemCount / 2).floorMod(5)]
+ Image(
+ contentScale = ContentScale.Crop,
+ modifier = Modifier.height(200.dp).fillMaxWidth(),
+ painter = painterResource(pageImage.second),
+ contentDescription = stringResource(pageImage.third)
+ )
+ }
+ }
+ }
+
+ @Composable
+ fun FullSizePager(pagerState: PagerState, content: @Composable PagerScope.(Int) -> Unit) {
+ HorizontalPager(
+ modifier = Modifier.semantics { contentDescription = "Pager" }.background(Color.White),
+ state = pagerState,
+ pageSize = PageSize.Fill,
+ pageContent = content
+ )
+ }
+
+ @Composable
+ fun FixedSizePager(pagerState: PagerState, content: @Composable PagerScope.(Int) -> Unit) {
+ HorizontalPager(
+ modifier = Modifier.semantics { contentDescription = "Pager" }.background(Color.White),
+ state = pagerState,
+ pageSize = PageSize.Fixed(200.dp),
+ pageSpacing = 10.dp,
+ pageContent = content
+ )
+ }
+
+ @Composable
+ fun BenchmarkListOfPager() {
+ LazyColumn(Modifier.semantics { contentDescription = "List" }) {
+ items(ItemCount * ItemCount) {
+ FixedSizePager(rememberPagerState { ItemCount }) {
+ Box(Modifier.size(200.dp)) { Text("Page ${it.toString()}") }
+ }
+ }
+ }
+ }
+
companion object {
- const val ExtraItemCount = "ITEM_COUNT"
+ const val ItemCount = 100
+
+ object BenchmarkType {
+ val Key = "BenchmarkType"
+ val Tab = "EnableTab"
+ val Grid = "Pager of Grids"
+ val List = "Pager of List"
+ val WebView = "Pager of WebViews"
+ val FullScreenImage = "Pager of Full Screen Images"
+ val FixedSizeImage = "Pager of Fixed Size Images"
+ val ListOfPager = "Pager Inside A List"
+ }
+
+ val Images =
+ listOf(
+ Triple(0, R.drawable.carousel_image_1, R.string.carousel_image_1_description),
+ Triple(1, R.drawable.carousel_image_2, R.string.carousel_image_2_description),
+ Triple(2, R.drawable.carousel_image_3, R.string.carousel_image_3_description),
+ Triple(3, R.drawable.carousel_image_4, R.string.carousel_image_4_description),
+ Triple(4, R.drawable.carousel_image_5, R.string.carousel_image_5_description),
+ )
}
}
-@Composable
-private fun PagerItem(index: Int) {
- Box(modifier = Modifier.fillMaxSize().background(Color.Black)) {
- Text(text = index.toString(), color = Color.White)
+private fun Int.floorMod(other: Int): Int =
+ when (other) {
+ 0 -> this
+ else -> this - floorDiv(other) * other
}
-}
diff --git a/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_1.jpg b/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_1.jpg
new file mode 100644
index 0000000..b02612e
--- /dev/null
+++ b/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_1.jpg
Binary files differ
diff --git a/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_2.jpg b/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_2.jpg
new file mode 100644
index 0000000..73162bb
--- /dev/null
+++ b/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_2.jpg
Binary files differ
diff --git a/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_3.jpg b/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_3.jpg
new file mode 100644
index 0000000..d31f632
--- /dev/null
+++ b/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_3.jpg
Binary files differ
diff --git a/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_4.jpg b/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_4.jpg
new file mode 100644
index 0000000..8362062
--- /dev/null
+++ b/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_4.jpg
Binary files differ
diff --git a/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_5.jpg b/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_5.jpg
new file mode 100644
index 0000000..f5eb364
--- /dev/null
+++ b/compose/integration-tests/macrobenchmark-target/src/main/res/drawable-nodpi/carousel_image_5.jpg
Binary files differ
diff --git a/compose/integration-tests/macrobenchmark-target/src/main/res/values/strings.xml b/compose/integration-tests/macrobenchmark-target/src/main/res/values/strings.xml
index 19b2ab5..88f7fac 100644
--- a/compose/integration-tests/macrobenchmark-target/src/main/res/values/strings.xml
+++ b/compose/integration-tests/macrobenchmark-target/src/main/res/values/strings.xml
@@ -26,4 +26,9 @@
<string name="io_settings_tos" translation_description="Open link to terms of service.">Terms of service</string>
<string name="io_settings_privacy_policy" translation_description="Open link to privacy policy.">Privacy policy</string>
<string name="io_settings_oss_licenses" translation_description="Open link to open source licenses.">Open sources licenses</string>
+ <string name="carousel_image_1_description">A racecar</string>
+ <string name="carousel_image_2_description">Dotonburi, Osaka</string>
+ <string name="carousel_image_3_description">The Grand Canyon</string>
+ <string name="carousel_image_4_description">A rock structure with its reflection mirrored over the sea</string>
+ <string name="carousel_image_5_description">A car on a long stretch of desert road</string>
</resources>
diff --git a/compose/integration-tests/macrobenchmark/src/main/java/androidx/compose/integration/macrobenchmark/PagerBenchmark.kt b/compose/integration-tests/macrobenchmark/src/main/java/androidx/compose/integration/macrobenchmark/PagerBenchmark.kt
index 35b7f99..3ca318e 100644
--- a/compose/integration-tests/macrobenchmark/src/main/java/androidx/compose/integration/macrobenchmark/PagerBenchmark.kt
+++ b/compose/integration-tests/macrobenchmark/src/main/java/androidx/compose/integration/macrobenchmark/PagerBenchmark.kt
@@ -14,10 +14,14 @@
* limitations under the License.
*/
+@file:OptIn(ExperimentalMetricApi::class)
+
package androidx.compose.integration.macrobenchmark
import android.content.Intent
import androidx.benchmark.macro.CompilationMode
+import androidx.benchmark.macro.ExperimentalMetricApi
+import androidx.benchmark.macro.FrameTimingGfxInfoMetric
import androidx.benchmark.macro.FrameTimingMetric
import androidx.benchmark.macro.junit4.MacrobenchmarkRule
import androidx.test.filters.LargeTest
@@ -26,7 +30,6 @@
import androidx.test.uiautomator.Direction
import androidx.test.uiautomator.UiDevice
import androidx.test.uiautomator.Until
-import androidx.testutils.createCompilationParams
import org.junit.Before
import org.junit.Rule
import org.junit.Test
@@ -47,22 +50,167 @@
}
@Test
- fun scroll() {
+ fun pager_of_grids_gesture_scroll() {
benchmarkRule.measureRepeated(
packageName = PackageName,
- metrics = listOf(FrameTimingMetric()),
+ metrics = listOf(FrameTimingGfxInfoMetric()),
compilationMode = compilationMode,
- iterations = 10,
+ iterations = 5,
setupBlock = {
val intent = Intent()
intent.action = Action
+ intent.putExtra(BenchmarkType.Key, BenchmarkType.Grid)
+ startActivityAndWait(intent)
+ }
+ ) {
+ val pager = device.findObject(By.desc(ContentDescription))
+ // Setting a gesture margin is important otherwise gesture nav is triggered.
+ pager.setGestureMargin(device.displayWidth / 5)
+ for (i in 1..EventRepeatCount) {
+ // From center we scroll 2/3 of it which is 1/3 of the screen.
+ pager.swipe(Direction.LEFT, 1.0f)
+ device.wait(Until.findObject(By.desc(ComposeIdle)), 3000)
+ }
+ }
+ }
+
+ @Test
+ fun pager_of_grids_animated_scroll() {
+ benchmarkRule.measureRepeated(
+ packageName = PackageName,
+ metrics = listOf(FrameTimingGfxInfoMetric()),
+ compilationMode = compilationMode,
+ iterations = 5,
+ setupBlock = {
+ val intent = Intent()
+ intent.action = Action
+ intent.putExtra(BenchmarkType.Key, BenchmarkType.Grid)
+ intent.putExtra(BenchmarkType.Tab, true)
+ startActivityAndWait(intent)
+ }
+ ) {
+ val nextButton = device.findObject(By.desc(NextDescription))
+ repeat(EventRepeatCount) {
+ nextButton.click()
+ device.wait(Until.findObject(By.desc(ComposeIdle)), 3000)
+ }
+ }
+ }
+
+ @Test
+ fun pager_of_lists_gesture_scroll() {
+ benchmarkRule.measureRepeated(
+ packageName = PackageName,
+ metrics = listOf(FrameTimingGfxInfoMetric()),
+ compilationMode = compilationMode,
+ iterations = 5,
+ setupBlock = {
+ val intent = Intent()
+ intent.action = Action
+ intent.putExtra(BenchmarkType.Key, BenchmarkType.List)
+ startActivityAndWait(intent)
+ }
+ ) {
+ val pager = device.findObject(By.desc(ContentDescription))
+ // Setting a gesture margin is important otherwise gesture nav is triggered.
+ pager.setGestureMargin(device.displayWidth / 5)
+ for (i in 1..EventRepeatCount) {
+ // From center we scroll 2/3 of it which is 1/3 of the screen.
+ pager.swipe(Direction.LEFT, 1.0f)
+ device.wait(Until.findObject(By.desc(ComposeIdle)), 3000)
+ }
+ }
+ }
+
+ @Test
+ fun pager_of_lists_animated_scroll() {
+ benchmarkRule.measureRepeated(
+ packageName = PackageName,
+ metrics = listOf(FrameTimingGfxInfoMetric()),
+ compilationMode = compilationMode,
+ iterations = 5,
+ setupBlock = {
+ val intent = Intent()
+ intent.action = Action
+ intent.putExtra(BenchmarkType.Key, BenchmarkType.List)
+ intent.putExtra(BenchmarkType.Tab, true)
+ startActivityAndWait(intent)
+ }
+ ) {
+ val nextButton = device.findObject(By.desc(NextDescription))
+ repeat(EventRepeatCount) {
+ nextButton.click()
+ device.wait(Until.findObject(By.desc(ComposeIdle)), 3000)
+ }
+ }
+ }
+
+ @Test
+ fun pager_of_webviews_gesture_scroll() {
+ benchmarkRule.measureRepeated(
+ packageName = PackageName,
+ metrics = listOf(FrameTimingGfxInfoMetric()),
+ compilationMode = compilationMode,
+ iterations = 5,
+ setupBlock = {
+ val intent = Intent()
+ intent.action = Action
+ intent.putExtra(BenchmarkType.Key, BenchmarkType.WebView)
+ startActivityAndWait(intent)
+ }
+ ) {
+ val pager = device.findObject(By.desc(ContentDescription))
+ // Setting a gesture margin is important otherwise gesture nav is triggered.
+ pager.setGestureMargin(device.displayWidth / 5)
+ for (i in 1..EventRepeatCount) {
+ // From center we scroll 2/3 of it which is 1/3 of the screen.
+ pager.swipe(Direction.LEFT, 1.0f)
+ device.wait(Until.findObject(By.desc(ComposeIdle)), 3000)
+ }
+ }
+ }
+
+ @Test
+ fun pager_of_webviews_animated_scroll() {
+ benchmarkRule.measureRepeated(
+ packageName = PackageName,
+ metrics = listOf(FrameTimingGfxInfoMetric()),
+ compilationMode = compilationMode,
+ iterations = 5,
+ setupBlock = {
+ val intent = Intent()
+ intent.action = Action
+ intent.putExtra(BenchmarkType.Key, BenchmarkType.WebView)
+ intent.putExtra(BenchmarkType.Tab, true)
+ startActivityAndWait(intent)
+ }
+ ) {
+ val nextButton = device.findObject(By.desc(NextDescription))
+ repeat(EventRepeatCount) {
+ nextButton.click()
+ device.wait(Until.findObject(By.desc(ComposeIdle)), 3000)
+ }
+ }
+ }
+
+ @Test
+ fun pager_of_images_full_page_gesture_scroll() {
+ benchmarkRule.measureRepeated(
+ packageName = PackageName,
+ metrics = listOf(FrameTimingGfxInfoMetric()),
+ compilationMode = compilationMode,
+ iterations = 5,
+ setupBlock = {
+ val intent = Intent()
+ intent.putExtra(BenchmarkType.Key, BenchmarkType.FullScreenImage)
+ intent.action = Action
startActivityAndWait(intent)
}
) {
val pager = device.findObject(By.desc(ContentDescription))
// Setting a gesture margin is important otherwise gesture nav is triggered.
pager.setGestureMargin(device.displayWidth / 5)
- for (i in 1..10) {
+ for (i in 1..EventRepeatCount) {
// From center we scroll 2/3 of it which is 1/3 of the screen.
pager.swipe(Direction.LEFT, 1.0f)
device.wait(Until.findObject(By.desc(ComposeIdle)), 3000)
@@ -70,15 +218,124 @@
}
}
+ @Test
+ fun pager_of_images_full_page_animated_scroll() {
+ benchmarkRule.measureRepeated(
+ packageName = PackageName,
+ metrics = listOf(FrameTimingGfxInfoMetric()),
+ compilationMode = compilationMode,
+ iterations = 5,
+ setupBlock = {
+ val intent = Intent()
+ intent.putExtra(BenchmarkType.Key, BenchmarkType.FullScreenImage)
+ intent.putExtra(BenchmarkType.Tab, true)
+ intent.action = Action
+ startActivityAndWait(intent)
+ }
+ ) {
+ val nextButton = device.findObject(By.desc(NextDescription))
+ repeat(EventRepeatCount) {
+ nextButton.click()
+ device.wait(Until.findObject(By.desc(ComposeIdle)), 3000)
+ }
+ }
+ }
+
+ @Test
+ fun pager_of_images_fixed_size_page_gesture_scroll() {
+ benchmarkRule.measureRepeated(
+ packageName = PackageName,
+ metrics = listOf(FrameTimingMetric(), FrameTimingGfxInfoMetric()),
+ compilationMode = compilationMode,
+ iterations = 5,
+ setupBlock = {
+ val intent = Intent()
+ intent.action = Action
+ intent.putExtra(BenchmarkType.Key, BenchmarkType.FixedSizeImage)
+ startActivityAndWait(intent)
+ }
+ ) {
+ val pager = device.findObject(By.desc(ContentDescription))
+ // Setting a gesture margin is important otherwise gesture nav is triggered.
+ pager.setGestureMargin(device.displayWidth / 5)
+ for (i in 1..EventRepeatCount) {
+ // From center we scroll 2/3 of it which is 1/3 of the screen.
+ pager.swipe(Direction.LEFT, 1.0f)
+ device.wait(Until.findObject(By.desc(ComposeIdle)), 3000)
+ }
+ }
+ }
+
+ @Test
+ fun pager_of_images_fixed_size_page_animated_scroll() {
+ benchmarkRule.measureRepeated(
+ packageName = PackageName,
+ metrics = listOf(FrameTimingGfxInfoMetric()),
+ compilationMode = compilationMode,
+ iterations = 5,
+ setupBlock = {
+ val intent = Intent()
+ intent.action = Action
+ intent.putExtra(BenchmarkType.Key, BenchmarkType.FixedSizeImage)
+ intent.putExtra(BenchmarkType.Tab, true)
+ startActivityAndWait(intent)
+ }
+ ) {
+ val nextButton = device.findObject(By.desc(NextDescription))
+ repeat(EventRepeatCount) {
+ nextButton.click()
+ device.wait(Until.findObject(By.desc(ComposeIdle)), 3000)
+ }
+ }
+ }
+
+ @Test
+ fun list_of_pagers_gesture_scroll() {
+ benchmarkRule.measureRepeated(
+ packageName = PackageName,
+ metrics = listOf(FrameTimingGfxInfoMetric()),
+ compilationMode = compilationMode,
+ iterations = 5,
+ setupBlock = {
+ val intent = Intent()
+ intent.action = Action
+ intent.putExtra(BenchmarkType.Key, BenchmarkType.ListOfPager)
+ startActivityAndWait(intent)
+ }
+ ) {
+ val pager = device.findObject(By.desc("List"))
+ // Setting a gesture margin is important otherwise gesture nav is triggered.
+ pager.setGestureMargin(device.displayHeight / 5)
+ for (i in 1..EventRepeatCount) {
+ // From center we scroll 2/3 of it which is 1/3 of the screen.
+ pager.swipe(Direction.UP, 1.0f)
+ device.wait(Until.findObject(By.desc(ComposeIdle)), 3000)
+ }
+ }
+ }
+
companion object {
private const val PackageName = "androidx.compose.integration.macrobenchmark.target"
private const val Action =
"androidx.compose.integration.macrobenchmark.target.LAZY_PAGER_ACTIVITY"
private const val ContentDescription = "Pager"
+ private const val NextDescription = "Next"
private const val ComposeIdle = "COMPOSE-IDLE"
+ private const val EventRepeatCount = 10
+
+ object BenchmarkType {
+ val Key = "BenchmarkType"
+ val Tab = "EnableTab"
+ val Grid = "Pager of Grids"
+ val List = "Pager of List"
+ val WebView = "Pager of WebViews"
+ val FullScreenImage = "Pager of Full Screen Images"
+ val FixedSizeImage = "Pager of Fixed Size Images"
+ val ListOfPager = "Pager Inside A List"
+ }
@Parameterized.Parameters(name = "compilation={0}")
@JvmStatic
- fun parameters() = createCompilationParams()
+ fun parameters() = listOf(arrayOf(CompilationMode.Full()))
}
}