程序员人生 网站导航

可显示Android设备选择列表,并进入指定Android设备Console的Shell脚本

栏目:综合技术时间:2015-08-14 09:16:49

      如果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与驱动开发》提供。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐