|  | #!/bin/bash | 
|  |  | 
|  | # The intents to launch | 
|  | INTENTS="\ | 
|  | com.google.android.googlequicksearchbox/.SearchActivity \ | 
|  | com.android.settings/.Settings \ | 
|  | com.google.android.apps.messaging/.ui.ConversationListActivity \ | 
|  | com.google.android.calculator/com.android.calculator2.Calculator \ | 
|  | com.google.android.deskclock/com.android.deskclock.DeskClock \ | 
|  | com.google.android.contacts/com.android.contacts.activities.PeopleActivity \ | 
|  | com.google.android.talk/.SigningInActivity \ | 
|  | com.google.android.vr.home/com.google.android.apps.vr.home.app.MainActivity \ | 
|  | com.android.documentsui/.Launcher \ | 
|  | com.google.android.apps.nexuslauncher/.NexusLauncherActivity \ | 
|  | " | 
|  | #     com.google.android.GoogleCamera/com.android.camera.CameraActivity \ | 
|  |  | 
|  | # The files to save output to. | 
|  | RAWLOGS_FILE=app-switch-rawlogs.txt | 
|  | ANALYSIS_FILE=app-switch-analysis.txt | 
|  |  | 
|  |  | 
|  | # Turn on the screen and unlock the device | 
|  | # TODO: Power on | 
|  | adb shell wm dismiss-keyguard | 
|  | adb logcat -P "" | 
|  |  | 
|  | # Turn on airplane mode (to reduce background noise caught by other tests) | 
|  | airplane_mode_was_on=$(adb shell settings get global airplane_mode_on) | 
|  | if [ $airplane_mode_was_on != 1 ] ; then | 
|  | adb shell settings put global airplane_mode_on 1 > /dev/null | 
|  | adb shell am broadcast -a android.intent.action.AIRPLANE_MODE > /dev/null | 
|  | sleep 15 | 
|  | fi | 
|  |  | 
|  | # Start the analysis process | 
|  | $TOP/development/tools/logblame/analyze_logs.py --duration=10m --clear --rawlogs $RAWLOGS_FILE \ | 
|  | | tee $ANALYSIS_FILE & | 
|  | analyze_pid=$! | 
|  |  | 
|  | # Launch the intents with a 3s gap between them | 
|  | for intent in $INTENTS | 
|  | do | 
|  | echo Starting: $intent | 
|  | adb shell am start -a android.intent.action.MAIN $intent | 
|  | sleep 4 | 
|  | done | 
|  |  | 
|  | # Turn the screen off and on | 
|  | adb shell input keyevent 26 | 
|  | adb shell input keyevent 26 | 
|  | adb shell wm dismiss-keyguard | 
|  |  | 
|  | echo | 
|  | echo | 
|  |  | 
|  | # Kill adb to disconnect logcat | 
|  | adb kill-server | 
|  |  | 
|  | # Wait for the pyton process to exit | 
|  | wait $analyze_pid | 
|  |  | 
|  | # Turn airplane mode back off | 
|  | if [ $airplane_mode_was_on == 0 ] ; then | 
|  | adb shell settings put global airplane_mode_on 0 > /dev/null | 
|  | adb shell am broadcast -a android.intent.action.AIRPLANE_MODE > /dev/null | 
|  | fi | 
|  |  | 
|  | echo "Wrote raw logs to $RAWLOGS_FILE" | 
|  | echo "Wrote analysis to $ANALYSIS_FILE" | 
|  |  | 
|  |  |