1#!/bin/bash
2
3if [[ -z $ANDROID_BUILD_TOP ]]; then
4  echo "Please run source build/envsetup.sh first" >&2
5  exit 1
6fi
7
8source $ANDROID_BUILD_TOP/build/envsetup.sh
9
10verbose_print() {
11  if [[ "$verbose" == "y" ]]; then
12    echo "$@" >&2
13  fi
14}
15
16remote_pidof() {
17  local procname="$1"
18  adb shell ps | grep "$procname" | awk '{print $2;}'
19}
20
21remote_pkill() {
22  local procname="$1"
23  shift
24
25  local the_pids=$(remote_pidof "$procname")
26  local pid
27
28  for pid in $the_pids; do
29    verbose_print adb shell kill "$@" "$pid"
30    adb shell kill "$@" "$pid"
31  done
32}
33
34get_activity_name() {
35  local package="$1"
36  local action_key="android.intent.action.MAIN:"
37
38  # Example query-activities output being parsed:
39  #
40  #  Activity #14:
41  #    priority=0 preferredOrder=0 match=0x108000 specificIndex=-1 isDefault=true
42  #    com.google.android.videos/com.google.android.youtube.videos.EntryPoint
43  #  Activity #15:
44  #    priority=0 preferredOrder=0 match=0x108000 specificIndex=-1 isDefault=true
45  #    com.google.android.youtube/.app.honeycomb.Shell$HomeActivity
46
47  # Given package 'com.google.android.youtube' return '.app.honeycomb.Shell$HomeActivity'
48
49  local activity_line="$(adb shell cmd package query-activities --brief -a android.intent.action.MAIN -c android.intent.category.LAUNCHER | grep "$package/")"
50  IFS="/" read -a array <<< "$activity_line"
51  local activity_name="${array[1]}"
52  echo "$activity_name"
53}
54