#!/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