IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    nokiaguy发表于 2015-05-01 09:52:27
    love 0

    如果PC上连接多部Android设备(包括Android模拟器),在进入Console时还需要使用adb -s deviceid shell。比较麻烦,本文为此编写了一个Shell脚本文件(需要在Linux或OS X下才能使用,windows下需要用bat或cmd从新编写)。

    基本思路时先用adb devices命令扫描有多少Android设备连接到PC上,然后从返回值中截取设备名称,并显示一个菜单。最后用户可以选择菜单项前面的序号进入指定的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放到同一个目录,然后执行shell.sh脚本文件即可(不要忘记使用chmod命令设置其可执行权限)

    本脚本由《Android深入探索卷1:HAL与驱动开发》提供。



沪ICP备19023445号-2号
友情链接