可显示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与驱动开发》提供。

时间: 2024-12-17 00:09:26

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

shell脚本编程的选择分支结构

选择执行结构: if语句单分支结构:如果条件为真,则执行then后的命令,否则,不做任何操作: if CONDITION :then STATEMENT fi 或 if CONDITION ; then STATEMENT1 STATEMENT2 ... fi 注意:想要执行then后面的STATEMENTS,前提条件是CONDITION部分为真: if语句的双分支结构:如果条件为真,就执行then后面的命令:否则就执行else后面的命令: if CONDITION ; then STATEME

Android日历视图(CalendarView)讲解-android学习之旅(三十六)

CalendarView简介 CalendarView用于显示和选择日期,如果希望监听事件的改变可以用setOnDateChangeListener()方法. CalendarView属性介绍 代码示例 package peng.liu.test; import android.app.Activity; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.os.Bund

Android 实现用户列表信息滑动删除功能和选择删除功能

在项目开发过程中,常常需要对用户列表的信息进行删除的操作.Android中常用的删除操作方式有两种 ,一种就是类似微信的滑动出现删除按钮方式,还有一种是通过CheckBox进行选择,然后通过按钮进行删除的方式.本来的实例集成上述的两种操作方式来实现用户列表删除的效果. 设计思路:在适配器类MyAdapter一个滑动删除按钮显示或隐藏的Map,一个用于CheckBox是否选中的Map和一个与MainAcitivyt进行数据交互的接口ContentsDeleteListener,同时该接口包含两个方

Android 自学之列表选择框Spinner

列表选择框(Spinner)与Swing编程里面的Spinner不同,这里的Spinner其实就是一个列表选项框. Spinner是ViewGroup的间接子类,因此他也可作为容器使用. Spinner支持的常用XML属性和说明: XML属性 说明 android:prompt 设置该列表框的提示 android:entries 使用数组资源设置该下拉列表框的列表项目 啥都不说了我们看看代码: layout/main.xml 1 <?xml version="1.0" encod

android之ListView和adapter配合显示图片和文字列表

listView页面布局:layout/activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_hei

(android 地图实战开发)2 创建MapActivity,根据设备当前位置,显示地图

(android 地图实战开发)2 创建MapActivity,根据设备当前位置,显示地图 http://www.cnblogs.com/macroxu-1982/archive/2011/09/13/2174657.html 实现效果: 获取手机gps当前的位置,显示位置对于的google地图. 具体的步骤: 1 Step One  创建包含MapView控件的应用界面 <com.google.android.maps.MapView android:layout_width="fill

〖Android〗存在多个Android设备时,使用Shell脚本选择一个Android设备

Shell脚本: #!/bin/bash devices=( $(adb devices|grep device$|awk '{print $1}'|xargs echo) ) case ${#devices[@]} in 0 ) echo "can't found a android device!" ;; 1 ) serial=$devices ;; * ) select serial in ${devices[@]}; do break; done ;; esac if [[ -

android 获取相册列表的实现(三)

该项目实现的功能如下: 获取手机相册,点击每个相册之后进入该相册的图片列表界面,在图片列表界面可以实现图片多选,然后进入所选择的图片界面,在该界面内可以实现所选图片的上传等功能. 该项目最大特色: 1.获取相册列表,目前网络上面介绍获取相册的项目很少,本文专门讲述相册的获取. 2.使用Android-Universal-Image-Loader集成框架-第三方jar包加载本地图片,熟悉这个jar的开发者肯定不陌生,该jar包十分强大,除了可以获取网络图片,本地图片也是可以的.同时,通过引用第三方

android 获取相册列表的实现(二)

该项目实现的功能如下: 获取手机相册,点击每个相册之后进入该相册的图片列表界面,在图片列表界面可以实现图片多选,然后进入所选择的图片界面,在该界面内可以实现所选图片的上传等功能. 该项目最大特色: 1.获取相册列表,目前网络上面介绍获取相册的项目很少,本文专门讲述相册的获取. 2.使用Android-Universal-Image-Loader集成框架-第三方jar包加载本地图片,熟悉这个jar的开发者肯定不陌生,该jar包十分强大,除了可以获取网络图片,本地图片也是可以的.同时,通过引用第三方