blob: 243885363e480c6f04cd8534998c53c6bff27f60 [file] [log] [blame]
#!/bin/bash
# Copyright (C) 2020 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
readme() {
echo '
This gets the time to initial display for an app for a few times.
e.g.
PKG_NAME="com.android.car.dialer" \
ACT_NAME=".ui.TelecomActivity" \
LOOPS=3 \
SLEEP_SEC=3 \
./time_to_init_disp.sh
Notes:
- This will not work on User builds.
'
exit
}
stop_pkg() {
echo "Force-stop $PKG_NAME"
adb shell am force-stop "$PKG_NAME"
sleep $SLEEP_SEC
}
if [[ -z $PKG_NAME ]]; then
PKG_NAME="com.android.car.media"
fi
if [[ -z $ACT_NAME ]]; then
ACT_NAME=".MediaActivity"
fi
ACTIVITY="$PKG_NAME/$ACT_NAME"
if [[ -z $LOOPS ]]; then
LOOPS=3
fi
if [[ -z $SLEEP_SEC ]]; then
SLEEP_SEC=3
fi
echo "Time $ACTIVITY to Initial Display for $LOOPS times."
adb shell getprop ro.build.fingerprint
stop_pkg
START=1
adb root
adb logcat -c
for (( l=$START; l<=$LOOPS; l++ )); do
echo "Dropping caches"
adb shell "echo 3 > /proc/sys/vm/drop_caches"
echo "Loop: $l"
# -S: Force stop the target app before starting the activity.
# -W: Wait for launch to complete.
adb shell am start -S -W -n "$ACTIVITY"
sleep $SLEEP_SEC
stop_pkg
done
echo
adb logcat -d | grep Displayed