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

简介:

如果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
fi

需要将common.sh和shell.sh文件放到同一个目录,然后执行shell.sh即可(需要使用chmod命令设置其可执行权限)

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

本文转自银河使者博客园博客,原文链接http://www.cnblogs.com/nokiaguy/p/4470397.html如需转载请自行联系原作者


银河使者



相关文章
|
3天前
|
Android开发
如何用Airtest脚本无线连接Android设备?
如何用Airtest脚本无线连接Android设备?
|
2月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
31 0
|
3月前
|
XML Java Android开发
Android Studio App开发中改造已有的控件实战(包括自定义支付宝月份选择器、给翻页栏添加新属性、不滚动的列表视图 附源码)
Android Studio App开发中改造已有的控件实战(包括自定义支付宝月份选择器、给翻页栏添加新属性、不滚动的列表视图 附源码)
29 1
|
3月前
|
XML Java Android开发
Android Studio App开发之捕获屏幕的变更事件实战(包括竖屏与横屏切换,回到桌面与切换到任务列表)
Android Studio App开发之捕获屏幕的变更事件实战(包括竖屏与横屏切换,回到桌面与切换到任务列表)
26 0
|
5月前
|
生物认证 开发工具 Android开发
安卓设备签到,还是用视觉智能平台人脸搜索1:N
安卓设备签到,还是用视觉智能平台人脸搜索1:N
153 2
|
3月前
|
XML Java Android开发
Android Studio App入门之列表视图ListView的讲解及实战(附源码 超详细必看)
Android Studio App入门之列表视图ListView的讲解及实战(附源码 超详细必看)
38 0
|
2月前
|
开发工具 Android开发
Android平台RTMP推送|轻量级RTSP服务|GB28181设备接入模块之实时快照保存JPG还是PNG?
Android平台RTMP推送|轻量级RTSP服务|GB28181设备接入模块之实时快照保存JPG还是PNG?
|
3月前
|
物联网 Android开发
【Android App】低功耗蓝牙中扫描BLE设备的讲解及实战(附源码和演示 超详细)
【Android App】低功耗蓝牙中扫描BLE设备的讲解及实战(附源码和演示 超详细)
65 0
|
3月前
|
Android开发
【Android App】蓝牙的设备配对、音频传输、点对点通信的讲解及实战(附源码和演示 超详细)
【Android App】蓝牙的设备配对、音频传输、点对点通信的讲解及实战(附源码和演示 超详细)
32 0
|
3月前
|
XML Java Android开发
Android Studio App开发之列表类视图中基本适配器BaseAdapter的使用及实战(附源码 超详细)
Android Studio App开发之列表类视图中基本适配器BaseAdapter的使用及实战(附源码 超详细)
27 0

相关产品

  • 云迁移中心