mirror of
https://github.com/apache/cordova-android.git
synced 2025-02-01 02:12:58 +08:00
86 lines
2.4 KiB
Bash
Executable File
86 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
PROJECT_PATH=$( cd "$( dirname "$0" )/.." && pwd )
|
|
|
|
function check_devices {
|
|
local devices=`adb devices | awk '/List of devices attached/ { while(getline > 0) { print }}'`
|
|
if [ -z "$devices" ] ; then
|
|
echo "1"
|
|
else
|
|
echo "0"
|
|
fi
|
|
}
|
|
|
|
function emulate {
|
|
declare -a avd_list=($(android list avd | grep "Name:" | cut -f 2 -d ":" | xargs))
|
|
# we need to start adb-server
|
|
adb start-server 1>/dev/null
|
|
|
|
# Do not launch an emulator if there is already one running or if a device is attached
|
|
if [ $(check_devices) == 0 ] ; then
|
|
echo "Device attached or emulator already running"
|
|
return
|
|
fi
|
|
|
|
local avd_id="1000" #FIXME: hopefully user does not have 1000 AVDs
|
|
# User has no AVDs
|
|
if [ ${#avd_list[@]} == 0 ]
|
|
then
|
|
echo "You don't have any Android Virtual Devices. Please create at least one AVD."
|
|
echo "android"
|
|
fi
|
|
# User has only one AVD
|
|
if [ ${#avd_list[@]} == 1 ]
|
|
then
|
|
emulator -cpu-delay 0 -no-boot-anim -cache /tmp/cache -avd ${avd_list[0]} 1> /dev/null 2>&1 &
|
|
# User has more than 1 AVD
|
|
elif [ ${#avd_list[@]} -gt 1 ]
|
|
then
|
|
while [ -z ${avd_list[$avd_id]} ]
|
|
do
|
|
echo "Choose from one of the following Android Virtual Devices [0 to $((${#avd_list[@]}-1))]:"
|
|
for(( i = 0 ; i < ${#avd_list[@]} ; i++ ))
|
|
do
|
|
echo "$i) ${avd_list[$i]}"
|
|
done
|
|
echo -n "> "
|
|
read avd_id
|
|
done
|
|
emulator -cpu-delay 0 -no-boot-anim -cache /tmp/cache -avd ${avd_list[$avd_id]} 1> /dev/null 2>&1 &
|
|
fi
|
|
|
|
}
|
|
|
|
function clean {
|
|
ant clean
|
|
}
|
|
# has to be used independently and not in conjuction with other commands
|
|
function log {
|
|
adb logcat
|
|
}
|
|
|
|
function debug {
|
|
if [ $(check_devices) == 0 ] ; then
|
|
ant debug install
|
|
else
|
|
ant debug
|
|
echo "##################################################################"
|
|
echo "# Plug in your device or launch an emulator with cordova/emulate #"
|
|
echo "##################################################################"
|
|
fi
|
|
}
|
|
|
|
function launch {
|
|
local launch_str=$(java -jar $PROJECT_PATH/cordova/appinfo.jar $PROJECT_PATH/AndroidManifest.xml)
|
|
adb shell am start -n $launch_str
|
|
}
|
|
|
|
function BOOM {
|
|
clean && debug && launch
|
|
}
|
|
|
|
# TODO parse arguments
|
|
(cd $PROJECT_PATH && $1)
|