diff options
author | Eric Holk <eholk@google.com> | 2019-11-13 14:06:01 -0800 |
---|---|---|
committer | Eric Holk <eholk@google.com> | 2019-11-15 17:09:02 +0000 |
commit | 12daf359e7b64a096057bdc8a809c55ebdf92e5b (patch) | |
tree | fb0c5b62bb981fe02dd10c00f1a861c78839d90a /startop/apps/test | |
parent | 7c93dc5e45ba7420c877b4e80fd517360068ab1f (diff) |
Add Layout Inflater Interactive Microbenchmark
This allows us to quickly test small changes in layout inflation performance.
TEST: mma &&
adb install $OUT/system/app/startop_test_app/startop_test_app.apk;
Run the app
Change-Id: I396157686d1e16ae2a7083a070fe1f622c05b15f
Diffstat (limited to 'startop/apps/test')
-rw-r--r-- | startop/apps/test/Android.bp | 1 | ||||
-rw-r--r-- | startop/apps/test/src/ApplicationBenchmarks.java | 39 | ||||
-rw-r--r-- | startop/apps/test/src/InteractiveMicrobenchmarkActivity.java | 2 |
3 files changed, 42 insertions, 0 deletions
diff --git a/startop/apps/test/Android.bp b/startop/apps/test/Android.bp index c7c70db60a72..f42c755e3efd 100644 --- a/startop/apps/test/Android.bp +++ b/startop/apps/test/Android.bp @@ -17,6 +17,7 @@ android_app { name: "startop_test_app", srcs: [ + "src/ApplicationBenchmarks.java", "src/ComplexLayoutInflationActivity.java", "src/CPUIntensiveBenchmarkActivity.java", "src/CPUIntensiveBenchmarks.java", diff --git a/startop/apps/test/src/ApplicationBenchmarks.java b/startop/apps/test/src/ApplicationBenchmarks.java new file mode 100644 index 000000000000..7d71916e6d8d --- /dev/null +++ b/startop/apps/test/src/ApplicationBenchmarks.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2019 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 + * + * http://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.android.startop.test; + +import android.app.Activity; +import android.view.LayoutInflater; + +final class ApplicationBenchmarks { + + public static final void initializeBenchmarks(Activity parent, BenchmarkRunner benchmarks) { + LayoutInflater inflater = LayoutInflater.from(parent); + + benchmarks.addBenchmark("Complex Layout", () -> { + inflater.inflate(R.layout.activity_main, null); + }); + + benchmarks.addBenchmark("TextView List Layout", () -> { + inflater.inflate(R.layout.textview_list, null); + }); + + benchmarks.addBenchmark("FrameLayout List Layout", () -> { + inflater.inflate(R.layout.framelayout_list, null); + }); + } +} diff --git a/startop/apps/test/src/InteractiveMicrobenchmarkActivity.java b/startop/apps/test/src/InteractiveMicrobenchmarkActivity.java index 8ed7f6ae2109..c3839c17e4d8 100644 --- a/startop/apps/test/src/InteractiveMicrobenchmarkActivity.java +++ b/startop/apps/test/src/InteractiveMicrobenchmarkActivity.java @@ -36,6 +36,8 @@ public class InteractiveMicrobenchmarkActivity extends Activity implements Bench addBenchmark("Empty", () -> { }); addHeader("Application Benchmarks"); + ApplicationBenchmarks.initializeBenchmarks(this, this); + addHeader("CPU Intensive Benchmarks"); CPUIntensiveBenchmarks.initializeBenchmarks(this, this); addHeader("Init Check Overhead Benchmarks"); InitCheckOverheadBenchmarks.initializeBenchmarks(this, this); |