平时进行开发时,总有测试人员拿个手机过来反应问题,按之前的方法,先要拔掉原来连接的开发机,再插上测试机,才能使用命令来操作测试机。
经过几天的思考,我找到一种方法,可以在电脑连接多个手机时指定一个想要操作的手机,然后接下来的所有操作都能在指定的手机里执行。
要完成这样的工作,需要知道如下几个问题。
首先,在原来的工具里,adb是有一个参数指定设备号码的。
其次,在build/envsetup.sh里有很多常用的工具命令,但这些命令所执行的adb是不指定参数的,即是说在连接多个设备时是不具备指定设备运行的能力。而我们需要的很多命令恰好是在这个脚本里的。
再者,在执行命令时会优先执行主目录下bin的命令。执行echo $PATH命令, 看到在执行命令时会优先搜索主目录的bin目录。
echo $PATH
/home/justin/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sb。。。。
有上面三点,就可以作指定设备执行命令的功能。
主要就是改写adb命令。创建一个adb文件,将下面的代码加入。
if [ -z $DEVICE ]
then
# echo "" > /tmp/adb_error
/usr/bin/adb "$@" 2>/tmp/adb_error
var=$(cat /tmp/adb_error | grep error )
if [ "$var" != "" ]
then
echo
echo "error: more than one device and emulator"
echo
adb devices
echo
echo "you need to run 'export DEVICE=xxxxx'"
echo
fi
else
/usr/bin/adb -s $DEVICE "$@"
fi
在连接多个设备时,在运行adb命令时,就会显示错误信息,并指导你指定设备运行的设定,设定完成后,就可以像只连接一台设备一样操作android设备了。