Android adb无线调试脚本

更新时间:2019-01-08 17:59:06点击次数:771次

使用adb的无线调试功能十分的方便。
但是实际工作中,总是要手动输入,十分麻烦。所以就把它写成脚本文件。

使用步骤

  1. 连接上USB
  2. 运行脚本文件(windows双击运行bat文件,mac的话terminal运行)
  3. 拔掉USB
    这样就可以愉快的开始无线调试了~
  4. 注意手机和电脑需要在一个无线局域网内!!

window的bat脚本

adb_wifi.bat


  1. @echo off
  2. adb disconnect
  3. REM 待处理的字符串
  4. adb shell "ip address | grep inet | grep -v inet6 | grep -v 127" >ip.txt
  5. set /P IP=<ip.txt
  6. del ip.txt
  7. echo %IP%
  8. set str="%IP%"
  9. REM set str="inet 192.168.1.137/24 brd 192.168.1.255 scope global wlan0"
  10. REM FOR语句是按行进行遍历,也就是一行一次循环,对于我们来说,只有一行字符串,
  11. REM 这个FOR循环肯定只进入一次。而我们是要对字符串进行空格分割后再处理。因此这
  12. REM 里用GOTO语句来实现循环。而FOR语句只需看成是一条语句,这条语句实现了这样的
  13. REM 功能:将字符串分割成两一部分,一部分是第一个空格前的字串,另一部分是剩余的
  14. REM 字串(tokens=1,*)。第一部分保存在 a 变量中,第二部分保存在 b 变量中,这
  15. REM 个 b 是自动的。
  16. for /f "tokens=2,*" %%a in (%str%) do (
  17. REM 这里可以替换成自己的处理程序,现在只是简单地显示值
  18. REM set a = "%%a"
  19. REM echo %a%
  20. REM 将剩余字符串存在b里面
  21. set str="%%a"
  22. )
  23. echo str = %str%
  24. for /f "delims=/ tokens=1,*" %%a in (%str%) do (
  25. REM 这里可以替换成自己的处理程序,现在只是简单地显示值
  26. REM set a = "%%a"
  27. REM echo %a%
  28. REM 将剩余字符串赋值给str变量
  29. set str=%%a
  30. )
  31. echo str = %str%
  32. adb tcpip 6666
  33. set _ip=%str%:6666
  34. adb connect %_ip% >result.txt
  35. set /P RESULT=<result.txt
  36. del result.txt
  37. echo %RESULT% |findstr "^connected" >nul
  38. if %errorlevel% equ 0 (
  39. echo "成功连接到%_ip%"
  40. ) else (
  41. echo "连接到%_ip%失败!!"
  42. pause
  43. )
  • 注意事项
  1. 需要配置adb的环境变量。否则需要将脚本中的adb写成绝对路径。
  2. 运行成功,就会直接关掉窗口。运行失败,则不会自动关闭窗口。
  3. 因为没有找到可以直接接受命令返回的方法,所以执行过程中会产生两个临时文件。(最后都会自动删除掉)
  4. bat脚本运行于windows,双击就可以运行。

shell脚本

adb_wifi.sh


  1. #!/bin/bash
  2. _port=":6666"
  3. port=${_port:1-start}
  4. # 将adb先断开
  5. adb disconnect
  6. #取到ip地址. 这里包括了3钟获取IP的方法,ip address应该是通用的方法
  7. ip=`adb shell "ip address | grep inet | grep -v inet6 | grep -v 127"`
  8. len=${#ip}
  9. if [[ $len != 0 ]];
  10. _ip=`echo $ip |cut -f 2 -d ' ' |cut -f 1 -d '/'`${_port}
  11. then
  12. ip=`adb shell "ifconfig | grep inet | grep -v inet6 | grep -v 127"`
  13. len=${#ip}
  14. # 在魅族的手机上,可能获取不到数据,通过另外的方法来取
  15. if [[ $len == 0 ]];
  16. then
  17. ip=`adb shell "getprop dhcp.wlan0.ipaddress" | head -n 1`
  18. len=${#ip}
  19. val=`expr $len - 1`
  20. _ip=${ip:0:val}${_port}
  21. else
  22. ip=`echo ${ip} | cut -f 2 -d ' '`
  23. _ip=`echo ${ip} | cut -f 2 -d ':'`${_port}
  24. fi
  25. fi
  26. result=`adb tcpip ${port}`
  27. result=`adb connect ${_ip}`
  28. echo $result
  • 注意事项
  1. 需要配置adb的环境变量。否则需要将脚本中的adb写成绝对路径。
  2. shell脚本不需要文件做中间变量就可以。
  3. shell脚本的运行
    必须先给对应的权限.然后运行。

  1. chmod +x adb_wifi.sh
  2. ./adb_wifi.sh

 

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息