如果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與驅動開發》提供。