可显示Android设备选择列表,并进入指定Android设备Console的Shell脚本-阿里云开发者社区

开发者社区> geekori> 正文

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

简介:       如果PC上连接多部Android设备(包括Android模拟器),在进入Console时还需要使用adb -s deviceid 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    # 根据用户选择的设备进入Console
fi


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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
图片设置level-list,根据不同状态显示不同图片
前言:工作需求,wifi图标根据不同的强度,显示不同的状态.于是想到用图层的方法 bg.xml note:android:maxLevel 必须从0递增,顺序错误后只会显示第一张图片 布局文件 代码中使用 Le...
630 0
下载Google官方/CM Android源代码自动重新开始的Shell脚本
        国内由于某种原因,下载CM或Google官方的Android源代码总容易中断。总看着机器,一中断就重新执行repo sync还太麻烦,所以我特意编写了一段shell脚本(download.sh)。
650 0
Android图形显示系统——概述
序 Android的图形显示系统,虽然感觉自己基本了解了,有问题基本都能解决,但要写时,一是觉得千头万绪无从下笔,一是发现还有很多并没有真正搞懂。开工写这套体系,也顺便查漏补缺下。 Android图形显示系统的剖分 图形显示系统就像一个报社,它派出记者去采访,记者写成文稿后,将记者们交上来的文稿审核、排版、印刷,最终形成一期又一期报纸。 如上是Android图形
2618 0
理解C语言——从小菜到大神的晋级之路(2)——开发环境的选择和HelloWorld程序
视频观看:点击这里 一、常用系统及IDE简介        常言道,工欲善其事必先利其器。除了少数奇葩之外,大部分人应不会去使用记事本或者Word文档去编程吧?几乎所有编程语言都需要一个高效易用的开发环境,C语言也不例外。
1440 0
C#使用系统的“显示桌面”功能(Shell.Application)
原文 C#使用系统的“显示桌面”功能(Shell.Application) 在 Windows 系统的 任务栏 上的 快速启动栏 里,通常有一个图标  ,点击这个图标,就会切换到桌面。这个图标实际是一个 “Windows Explorer Command” ,用记事本打开这个文件,我们看到如下的内容: [Shell] Command=2 IconFile=explorer.
846 0
Droid@screen:在PC屏幕上显示Android手机屏幕
这里介绍一款工具——Droid@screen,用来获取手机屏幕,显示在PC屏幕上。它集截图、录像等多种功能于一体。 安装   1.    下载地址:http://droid-at-screen.org/download.html,下载后是一个jar包,放到某个目录就可以。
772 0
性能测试脚本的编写和调试
性能测试是一个入门简单,但是精通难,很依赖实践经验的技术活。如何编写压测脚本只是小术,而如何快速找到问题的原因,压出瓶颈却是大有学问。这次,云享团的专家从“术”入手,对一个自己临时写的的一个网站进行压测,希望能帮大家更好理解性能测试产品,特别是脚本编写的部分。
7327 0
Xshell 登录 AWS CentOS 出现“所选择的用户秘钥未在远程主机上注册“,最终解决办法!
其实就是 登录用户名错了,是 root,不是centos 也不是 ec2-user !  Xshell 连接配置界面如下   最重要是 登录授权配置  最后,登录成功! 就这么简单
1985 0
+关注
geekori
欧瑞科技创始人&CEO,东北大学计算机专业硕士,拥有超过20年软件开分经验。欧瑞学院金牌讲师、51CTO学院金牌讲师、CSDN学院特约讲师、畅销书作者,企业内训讲师。曾出版过超过30本IT畅销书,涉猎移动开发、跨平台开发、机器学习、区块链、大数据、编译器等领域。
419
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载