#!/bin/bash if [[ -z $ANDROID_BUILD_TOP ]]; then echo "Please run source build/envsetup.sh first" >&2 exit 1 fi source $ANDROID_BUILD_TOP/build/envsetup.sh verbose_print() { if [[ "$verbose" == "y" ]]; then echo "$@" >&2 fi } remote_pidof() { local procname="$1" adb shell ps | grep "$procname" | awk '{print $2;}' } remote_pkill() { local procname="$1" shift local the_pids=$(remote_pidof "$procname") local pid for pid in $the_pids; do verbose_print adb shell kill "$@" "$pid" adb shell kill "$@" "$pid" done } get_activity_name() { local package="$1" local action_key="android.intent.action.MAIN:" # Example query-activities output being parsed: # # Activity #14: # priority=0 preferredOrder=0 match=0x108000 specificIndex=-1 isDefault=true # com.google.android.videos/com.google.android.youtube.videos.EntryPoint # Activity #15: # priority=0 preferredOrder=0 match=0x108000 specificIndex=-1 isDefault=true # com.google.android.youtube/.app.honeycomb.Shell$HomeActivity # Given package 'com.google.android.youtube' return '.app.honeycomb.Shell$HomeActivity' local activity_line="$(adb shell cmd package query-activities --brief -a android.intent.action.MAIN -c android.intent.category.LAUNCHER | grep "$package/")" IFS="/" read -a array <<< "$activity_line" local activity_name="${array[1]}" echo "$activity_name" }