image.png
使用adb的無線調(diào)試功能十分的方便当娱。
但是實際工作中已维,總是要手動輸入知给,十分麻煩皇钞。所以就把它寫成腳本文件悼泌。
使用步驟
- 連接上USB
- 運(yùn)行腳本文件(
windows
雙擊運(yùn)行bat
文件,mac
的話terminal
運(yùn)行) - 拔掉USB
這樣就可以愉快的開始無線調(diào)試了~ - 注意手機(jī)和電腦需要在一個無線局域網(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)可柿,對于我們來說也拜,只有一行字符串,
REM 這個FOR循環(huán)肯定只進(jìn)入一次趾痘。而我們是要對字符串進(jìn)行空格分割后再處理慢哈。因此這
REM 里用GOTO語句來實現(xiàn)循環(huán)。而FOR語句只需看成是一條語句永票,這條語句實現(xiàn)了這樣的
REM 功能:將字符串分割成兩一部分卵贱,一部分是第一個空格前的字串滥沫,另一部分是剩余的
REM 字串(tokens=1,*)。第一部分保存在 a 變量中键俱,第二部分保存在 b 變量中兰绣,這
REM 個 b 是自動的。
for /f "tokens=2,*" %%a in (%str%) do (
REM 這里可以替換成自己的處理程序编振,現(xià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)在只是簡單地顯示值
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%失敗W傺搿臀玄!"
pause
)
- 注意事項
- 需要配置adb的環(huán)境變量。否則需要將腳本中的adb寫成絕對路徑畅蹂。
- 運(yùn)行成功健无,就會直接關(guān)掉窗口。運(yùn)行失敗液斜,則不會自動關(guān)閉窗口累贤。
- 因為沒有找到可以直接接受命令返回的方法,所以執(zhí)行過程中會產(chǎn)生兩個臨時文件少漆。(最后都會自動刪除掉)
-
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
- 注意事項
- 需要配置adb的環(huán)境變量。否則需要將腳本中的adb寫成絕對路徑屎媳。
-
shell
腳本不需要文件做中間變量就可以夺溢。 -
shell
腳本的運(yùn)行
必須先給對應(yīng)的權(quán)限.然后運(yùn)行论巍。
chmod +x adb_wifi.sh
./adb_wifi.sh