zoukankan      html  css  js  c++  java
  • 可显示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与驱动开发》提供。

  • 相关阅读:
    UVA 1386 Cellular Automaton
    ZOJ 3331 Process the Tasks
    CodeForces 650B Image Preview
    CodeForces 650A Watchmen
    CodeForces 651B Beautiful Paintings
    CodeForces 651A Joysticks
    HUST 1601 Shepherd
    HUST 1602 Substring
    HUST 1600 Lucky Numbers
    POJ 3991 Seinfeld
  • 原文地址:https://www.cnblogs.com/nokiaguy/p/4470397.html
Copyright © 2011-2022 走看看