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