Android adb無線調試腳本

image.png

使用adb的無線調試功能十分的方便。
但是實際工作中,總是要手動輸入,十分麻煩。所以就把它寫成腳本文件。

使用步驟

  1. 連接上USB
  2. 運行腳本文件(windows雙擊運行bat文件,mac的話terminal運行)
  3. 拔掉USB
    這樣就可以愉快的開始無線調試了~
  4. 注意手機和電腦需要在一個無線局域網內!!

window的bat腳本

adb_wifi.bat

@echo off
adb disconnect
REM 待處理的字符串
adb shell "ip address | grep inet | grep -v inet6 | grep -v 127" >ip.txt
set /P IP=<ip.txt
del ip.txt
echo %IP%
set str="%IP%"
REM set str="inet 192.168.1.137/24 brd 192.168.1.255 scope global wlan0"

REM FOR語句是按行進行遍歷,也就是一行一次循環,對于我們來說,只有一行字符串,
REM 這個FOR循環肯定只進入一次。而我們是要對字符串進行空格分割后再處理。因此這
REM 里用GOTO語句來實現循環。而FOR語句只需看成是一條語句,這條語句實現了這樣的
REM 功能:將字符串分割成兩一部分,一部分是第一個空格前的字串,另一部分是剩余的
REM 字串(tokens=1,*)。第一部分保存在 a 變量中,第二部分保存在 b 變量中,這
REM 個 b 是自動的。
for /f "tokens=2,*" %%a in (%str%) do (
    REM 這里可以替換成自己的處理程序,現在只是簡單地顯示值
    REM set a = "%%a"
    REM echo %a%
    REM 將剩余字符串存在b里面
    set str="%%a"
)
echo str = %str% 
for /f "delims=/ tokens=1,*" %%a in (%str%) do (
    REM 這里可以替換成自己的處理程序,現在只是簡單地顯示值
    REM set a = "%%a"
    REM echo %a%
    REM 將剩余字符串賦值給str變量
    set str=%%a
)
echo str = %str% 

adb tcpip 6666
set _ip=%str%:6666
adb connect %_ip% >result.txt
set /P RESULT=<result.txt
del result.txt
echo %RESULT% |findstr "^connected" >nul
if %errorlevel% equ 0 (
echo "成功連接到%_ip%"
) else (
echo "連接到%_ip%失敗??!"
pause
)
  • 注意事項
  1. 需要配置adb的環境變量。否則需要將腳本中的adb寫成絕對路徑。
  2. 運行成功,就會直接關掉窗口。運行失敗,則不會自動關閉窗口。
  3. 因為沒有找到可以直接接受命令返回的方法,所以執行過程中會產生兩個臨時文件。(最后都會自動刪除掉)
  4. bat腳本運行于windows,雙擊就可以運行。

shell腳本

adb_wifi.sh

#!/bin/bash
_port=":6666"
port=${_port:1-start}
# 將adb先斷開
adb disconnect
#取到ip地址. 這里包括了3鐘獲取IP的方法,ip address應該是通用的方法
ip=`adb shell "ip address | grep inet | grep -v inet6 | grep -v 127"`
len=${#ip}
if [[ $len != 0 ]]; 
    _ip=`echo $ip |cut -f 2 -d ' ' |cut -f 1 -d '/'`${_port}
then 
    ip=`adb shell "ifconfig | grep inet | grep -v inet6 | grep -v 127"`
    len=${#ip}
    # 在魅族的手機上,可能獲取不到數據,通過另外的方法來取
    if [[ $len == 0 ]]; 
    then
        ip=`adb shell "getprop dhcp.wlan0.ipaddress" | head -n 1`
        len=${#ip}
        val=`expr $len - 1`
        _ip=${ip:0:val}${_port}
    else
        ip=`echo ${ip} | cut -f 2 -d ' '`
        _ip=`echo ${ip} | cut -f 2 -d ':'`${_port}
    fi
fi
result=`adb tcpip ${port}`
result=`adb connect ${_ip}`
echo $result
  • 注意事項
  1. 需要配置adb的環境變量。否則需要將腳本中的adb寫成絕對路徑。
  2. shell腳本不需要文件做中間變量就可以。
  3. shell腳本的運行
    必須先給對應的權限.然后運行。
chmod +x adb_wifi.sh
./adb_wifi.sh
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • .bat腳本基本命令語法 目錄 批處理的常見命令(未列舉的命令還比較多,請查閱幫助信息) 1、REM 和 :: 2...
    慶慶慶慶慶閱讀 8,184評論 1 19
  • 影評:被嫌棄的松子的一生 作者:秦振焱 之間就有朋友推薦過我這部電影,下載下來存了好久才拿出來看。 第一次看過...
    秦RMIUC閱讀 915評論 0 2
  • 面對相比高中,獨立性很強的大學生活,我開始變得迷茫和不知所措。我不再像高中一樣目標明確心思專一,我開始每天...
    想不出名字是不存在的閱讀 194評論 0 1
  • 溫存 可以是一次擁抱 一次手拉手的交談 一次熱情的吻 一次如魚得水的歡 哪怕是 交換一個眼神 跟可愛的寶寶玩一次游...
    木進閱讀 500評論 6 6
  • 別凜冬之季 待春日之時 許花開之際 祈留戀之久 ――春日 幾年前,或許我...
    夏云塵閱讀 501評論 0 0