xref: /aosp_15_r20/development/tools/logblame/app_switch_test (revision 90c8c64db3049935a07c6143d7fd006e26f8ecca)
1*90c8c64dSAndroid Build Coastguard Worker#!/bin/bash
2*90c8c64dSAndroid Build Coastguard Worker
3*90c8c64dSAndroid Build Coastguard Worker# The intents to launch
4*90c8c64dSAndroid Build Coastguard WorkerINTENTS="\
5*90c8c64dSAndroid Build Coastguard Worker     com.google.android.googlequicksearchbox/.SearchActivity \
6*90c8c64dSAndroid Build Coastguard Worker     com.android.settings/.Settings \
7*90c8c64dSAndroid Build Coastguard Worker     com.google.android.apps.messaging/.ui.ConversationListActivity \
8*90c8c64dSAndroid Build Coastguard Worker     com.google.android.calculator/com.android.calculator2.Calculator \
9*90c8c64dSAndroid Build Coastguard Worker     com.google.android.deskclock/com.android.deskclock.DeskClock \
10*90c8c64dSAndroid Build Coastguard Worker     com.google.android.contacts/com.android.contacts.activities.PeopleActivity \
11*90c8c64dSAndroid Build Coastguard Worker     com.google.android.talk/.SigningInActivity \
12*90c8c64dSAndroid Build Coastguard Worker     com.google.android.vr.home/com.google.android.apps.vr.home.app.MainActivity \
13*90c8c64dSAndroid Build Coastguard Worker     com.android.documentsui/.Launcher \
14*90c8c64dSAndroid Build Coastguard Worker     com.google.android.apps.nexuslauncher/.NexusLauncherActivity \
15*90c8c64dSAndroid Build Coastguard Worker  "
16*90c8c64dSAndroid Build Coastguard Worker#     com.google.android.GoogleCamera/com.android.camera.CameraActivity \
17*90c8c64dSAndroid Build Coastguard Worker
18*90c8c64dSAndroid Build Coastguard Worker# The files to save output to.
19*90c8c64dSAndroid Build Coastguard WorkerRAWLOGS_FILE=app-switch-rawlogs.txt
20*90c8c64dSAndroid Build Coastguard WorkerANALYSIS_FILE=app-switch-analysis.txt
21*90c8c64dSAndroid Build Coastguard Worker
22*90c8c64dSAndroid Build Coastguard Worker
23*90c8c64dSAndroid Build Coastguard Worker# Turn on the screen and unlock the device
24*90c8c64dSAndroid Build Coastguard Worker# TODO: Power on
25*90c8c64dSAndroid Build Coastguard Workeradb shell wm dismiss-keyguard
26*90c8c64dSAndroid Build Coastguard Workeradb logcat -P ""
27*90c8c64dSAndroid Build Coastguard Worker
28*90c8c64dSAndroid Build Coastguard Worker# Turn on airplane mode (to reduce background noise caught by other tests)
29*90c8c64dSAndroid Build Coastguard Workerairplane_mode_was_on=$(adb shell settings get global airplane_mode_on)
30*90c8c64dSAndroid Build Coastguard Workerif [ $airplane_mode_was_on != 1 ] ; then
31*90c8c64dSAndroid Build Coastguard Worker    adb shell settings put global airplane_mode_on 1 > /dev/null
32*90c8c64dSAndroid Build Coastguard Worker    adb shell am broadcast -a android.intent.action.AIRPLANE_MODE > /dev/null
33*90c8c64dSAndroid Build Coastguard Worker    sleep 15
34*90c8c64dSAndroid Build Coastguard Workerfi
35*90c8c64dSAndroid Build Coastguard Worker
36*90c8c64dSAndroid Build Coastguard Worker# Start the analysis process
37*90c8c64dSAndroid Build Coastguard Worker$TOP/development/tools/logblame/analyze_logs.py --duration=10m --clear --rawlogs $RAWLOGS_FILE \
38*90c8c64dSAndroid Build Coastguard Worker    | tee $ANALYSIS_FILE &
39*90c8c64dSAndroid Build Coastguard Workeranalyze_pid=$!
40*90c8c64dSAndroid Build Coastguard Worker
41*90c8c64dSAndroid Build Coastguard Worker# Launch the intents with a 3s gap between them
42*90c8c64dSAndroid Build Coastguard Workerfor intent in $INTENTS
43*90c8c64dSAndroid Build Coastguard Workerdo
44*90c8c64dSAndroid Build Coastguard Worker    echo Starting: $intent
45*90c8c64dSAndroid Build Coastguard Worker    adb shell am start -a android.intent.action.MAIN $intent
46*90c8c64dSAndroid Build Coastguard Worker    sleep 4
47*90c8c64dSAndroid Build Coastguard Workerdone
48*90c8c64dSAndroid Build Coastguard Worker
49*90c8c64dSAndroid Build Coastguard Worker# Turn the screen off and on
50*90c8c64dSAndroid Build Coastguard Workeradb shell input keyevent 26
51*90c8c64dSAndroid Build Coastguard Workeradb shell input keyevent 26
52*90c8c64dSAndroid Build Coastguard Workeradb shell wm dismiss-keyguard
53*90c8c64dSAndroid Build Coastguard Worker
54*90c8c64dSAndroid Build Coastguard Workerecho
55*90c8c64dSAndroid Build Coastguard Workerecho
56*90c8c64dSAndroid Build Coastguard Worker
57*90c8c64dSAndroid Build Coastguard Worker# Kill adb to disconnect logcat
58*90c8c64dSAndroid Build Coastguard Workeradb kill-server
59*90c8c64dSAndroid Build Coastguard Worker
60*90c8c64dSAndroid Build Coastguard Worker# Wait for the pyton process to exit
61*90c8c64dSAndroid Build Coastguard Workerwait $analyze_pid
62*90c8c64dSAndroid Build Coastguard Worker
63*90c8c64dSAndroid Build Coastguard Worker# Turn airplane mode back off
64*90c8c64dSAndroid Build Coastguard Workerif [ $airplane_mode_was_on == 0 ] ; then
65*90c8c64dSAndroid Build Coastguard Worker    adb shell settings put global airplane_mode_on 0 > /dev/null
66*90c8c64dSAndroid Build Coastguard Worker    adb shell am broadcast -a android.intent.action.AIRPLANE_MODE > /dev/null
67*90c8c64dSAndroid Build Coastguard Workerfi
68*90c8c64dSAndroid Build Coastguard Worker
69*90c8c64dSAndroid Build Coastguard Workerecho "Wrote raw logs to $RAWLOGS_FILE"
70*90c8c64dSAndroid Build Coastguard Workerecho "Wrote analysis to $ANALYSIS_FILE"
71*90c8c64dSAndroid Build Coastguard Worker
72*90c8c64dSAndroid Build Coastguard Worker
73