如果PC上连接多部Android装备(包括Android摹拟器),在进入Console时还需要使用adb -s deviceid shell。比较麻烦,本文为此编写了1个Shell脚本文件(需要在Linux或OS X下才能使用,windows下需要用bat或cmd重新编写)。
基本思路时先用adb devices命令扫描有多少Android装备连接到PC上,然后从返回值中截取装备名称,并显示1个菜单。最后用户可以选择菜单项前面的序号进入指定的Android装备。无需再输入deviceid。
效果以下图所示。
源代码以下:
common.sh文件
selected_device="" # "":无可用Android装备
function find_devices()
{
device_list=$(adb devices)
if [ "${device_list:0:4}" != "List" ]; then
device_list=$(adb devices) # 获得装备列表
if [ "${device_list:0:4}" != "List" ]; then
exit
fi
fi
value=$(echo $device_list | cut -d' ' -f5)
if [ "$value" == "" ]; then # 没有可用装备
echo "无可用Android装备"
else
selected_device=$value # 假定只有1个装备
value=$(echo $device_list | cut -d' ' -f7)
# 多个装备
if [ "$value" != "" ]; then
i=5
index=1
value="~~~"
echo "可用装备列表"
while [ "" == "" ]
do # 开始显示装备菜单
value=$(echo $device_list | cut -d' ' -f$i)
let "i=$i+2"
if [ "$value" == "" ]; then
break;
fi
echo "$index: $value"
let "index=$index+1"
done
read -p "您想选择哪一个Android装备?请输入序号(1):" number
if [ "$number" == "" ]; then
number=1
fi
let "number=3 + $number * 2"
selected_device=$(echo $device_list | cut -d' ' -f$number) # 根据用户选择的装备需要获得装备标识
fi
fi
}
shell.sh
source common.sh
find_devices
if [ "$selected_device" != "" ]; then
adb -s $selected_device shell $1 # 根据用户选择的装备进入Console
fi
需要将shell.sh和common.sh放到同1个目录,然后履行shell.sh脚本文件便可(不要忘记使用chmod命令设置其可履行权限)
本脚本由《Android深入探索卷1:HAL与驱动开发》提供。