平時進行開發時,總有測試人員拿個手機過來反應問題,按之前的方法,先要拔掉原來連接的開發機,再插上測試機,才能使用命令來操作測試機。
經過幾天的思考,我找到一種方法,可以在電腦連接多個手機時指定一個想要操作的手機,然后接下來的所有操作都能在指定的手機里執行。
要完成這樣的工作,需要知道如下幾個問題。
首先,在原來的工具里,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設備了。