Android adb無線調(diào)試腳本

image.png

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

使用步驟

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

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語句是按行進(jìn)行遍歷,也就是一行一次循環(huán),對(duì)于我們來說,只有一行字符串,
REM 這個(gè)FOR循環(huán)肯定只進(jìn)入一次。而我們是要對(duì)字符串進(jìn)行空格分割后再處理。因此這
REM 里用GOTO語句來實(shí)現(xiàn)循環(huán)。而FOR語句只需看成是一條語句,這條語句實(shí)現(xiàn)了這樣的
REM 功能:將字符串分割成兩一部分,一部分是第一個(gè)空格前的字串,另一部分是剩余的
REM 字串(tokens=1,*)。第一部分保存在 a 變量中,第二部分保存在 b 變量中,這
REM 個(gè) b 是自動(dòng)的。
for /f "tokens=2,*" %%a in (%str%) do (
    REM 這里可以替換成自己的處理程序,現(xiàn)在只是簡(jiǎn)單地顯示值
    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 這里可以替換成自己的處理程序,現(xiàn)在只是簡(jiǎn)單地顯示值
    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
)
  • 注意事項(xiàng)
  1. 需要配置adb的環(huán)境變量。否則需要將腳本中的adb寫成絕對(duì)路徑。
  2. 運(yùn)行成功,就會(huì)直接關(guān)掉窗口。運(yùn)行失敗,則不會(huì)自動(dòng)關(guān)閉窗口。
  3. 因?yàn)闆]有找到可以直接接受命令返回的方法,所以執(zhí)行過程中會(huì)產(chǎn)生兩個(gè)臨時(shí)文件。(最后都會(huì)自動(dòng)刪除掉)
  4. bat腳本運(yùn)行于windows,雙擊就可以運(yùn)行。

shell腳本

adb_wifi.sh

#!/bin/bash
_port=":6666"
port=${_port:1-start}
# 將adb先斷開
adb disconnect
#取到ip地址. 這里包括了3鐘獲取IP的方法,ip address應(yīng)該是通用的方法
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}
    # 在魅族的手機(jī)上,可能獲取不到數(shù)據(jù),通過另外的方法來取
    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
  • 注意事項(xiàng)
  1. 需要配置adb的環(huán)境變量。否則需要將腳本中的adb寫成絕對(duì)路徑。
  2. shell腳本不需要文件做中間變量就可以。
  3. shell腳本的運(yùn)行
    必須先給對(duì)應(yīng)的權(quán)限.然后運(yùn)行。
chmod +x adb_wifi.sh
./adb_wifi.sh
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容