xref: /aosp_15_r20/frameworks/base/apct-tests/perftests/inputmethod/README.md (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1*d57664e9SAndroid Build Coastguard Worker## IMF performance tests
2*d57664e9SAndroid Build Coastguard Worker
3*d57664e9SAndroid Build Coastguard WorkerThese tests are adaptation of Window Manager perf tests (apct-tests/perftests/windowmanager).
4*d57664e9SAndroid Build Coastguard Worker
5*d57664e9SAndroid Build Coastguard Worker### Precondition
6*d57664e9SAndroid Build Coastguard WorkerTo reduce the variance of the test, if `perf-setup` (platform_testing/scripts/perf-setup)
7*d57664e9SAndroid Build Coastguard Workeris available, it is better to use the following instructions to lock CPU and GPU frequencies.
8*d57664e9SAndroid Build Coastguard Worker```
9*d57664e9SAndroid Build Coastguard Workerm perf-setup
10*d57664e9SAndroid Build Coastguard WorkerPERF_SETUP_PATH=/data/local/tmp/perf-setup.sh
11*d57664e9SAndroid Build Coastguard Workeradb push $OUT/$PERF_SETUP_PATH $PERF_SETUP_PATH
12*d57664e9SAndroid Build Coastguard Workeradb shell chmod +x $PERF_SETUP_PATH
13*d57664e9SAndroid Build Coastguard Workeradb shell $PERF_SETUP_PATH
14*d57664e9SAndroid Build Coastguard Worker```
15*d57664e9SAndroid Build Coastguard Worker
16*d57664e9SAndroid Build Coastguard Worker### Example to run
17*d57664e9SAndroid Build Coastguard WorkerUse `atest`
18*d57664e9SAndroid Build Coastguard Worker```
19*d57664e9SAndroid Build Coastguard Workeratest ImePerfTests:ImePerfTest -- \
20*d57664e9SAndroid Build Coastguard Worker      --module-arg ImePerfTests:instrumentation-arg:profiling-iterations:=20
21*d57664e9SAndroid Build Coastguard Worker
22*d57664e9SAndroid Build Coastguard Worker```
23*d57664e9SAndroid Build Coastguard WorkerNote: `instrumentation-arg:kill-bg:=true` is already defined in the AndroidText.xml
24*d57664e9SAndroid Build Coastguard Worker
25*d57664e9SAndroid Build Coastguard WorkerUse `am instrument`
26*d57664e9SAndroid Build Coastguard Worker```
27*d57664e9SAndroid Build Coastguard Workeradb shell am instrument -w -r -e class android.inputmethod.ImePerfTest \
28*d57664e9SAndroid Build Coastguard Worker          -e listener android.inputmethod.ImePerfRunPrecondition \
29*d57664e9SAndroid Build Coastguard Worker          -e kill-bg true \
30*d57664e9SAndroid Build Coastguard Worker          com.android.perftests.inputmethod/androidx.test.runner.AndroidJUnitRunner
31*d57664e9SAndroid Build Coastguard Worker```
32*d57664e9SAndroid Build Coastguard Worker* `kill-bg` is optional.
33*d57664e9SAndroid Build Coastguard Worker
34*d57664e9SAndroid Build Coastguard WorkerTest arguments
35*d57664e9SAndroid Build Coastguard Worker - kill-bg
36*d57664e9SAndroid Build Coastguard Worker   * boolean: Kill background process before running test.
37*d57664e9SAndroid Build Coastguard Worker - profiling-iterations
38*d57664e9SAndroid Build Coastguard Worker   * int: Run the extra iterations with enabling method profiling.
39*d57664e9SAndroid Build Coastguard Worker - profiling-sampling
40*d57664e9SAndroid Build Coastguard Worker   * int: The interval (0=trace each method, default is 10) of sample profiling in microseconds.
41