半自动开启adb无线调试

无线调试是什么
安卓11增加了无线调试开关, 也就是完全不用数据线, 只要手机和电脑在同一个局域网, 就可以进行adb调试,
无线调试开启方法请参考: Wi-Fi 调试(Android 11 及更高版本,无需借助 USB)
https://www.yuque.com/yashujs/bfug6u/ogowkk

无线调试流程
每次连接的ip基本是固定的, 但是port端口是随机的, 所以每次都要获取最新的端口
在命令行中输入 adb connect 192.168.101.31:38549

看上去只有两步, 但是每一步都有N步, 细分下来是这样的步骤:
手机回到桌面
眼睛看设置图标在哪里
点击设置图标
往下翻找到更多设置
再往下翻找到开发者选项
再往下翻找到无线调试

是不是步骤细分之后, 特别特别的繁琐, 凡事就怕细究,
下面我们来做成半自动的方法, 就不用每次都做这么繁琐的事情了

半自动无线调试流程
获取ip和port, 并用机器人发送到钉钉
手动复制钉钉消息中的命令
点击bat

看上去只有3个步骤, 实际上细究下来, 还是有些麻烦, 不过起码比上面的繁琐程度低一些

源码讲解

获取ip和port
我是小米11pro, 有些代码只有小米才能用, 比如 .className(“miui.widget.ClearableEditText”)
获取ip的代码流程已经有非常详细的注释了, 相信使用小米手机的用户能看懂

这是autojs执行的代码

function getIpPort() {
// 打开设置
app.startActivity({
packageName: “com.android.settings”,
className: “com.android.settings.SubSettings”,
});
text(“搜索系统设置项”).visibleToUser(true).boundsInside(0, 0, device.width, device.height).waitFor();

// 点击搜索框
let view = idEndsWith(“input”).visibleToUser(true).boundsInside(0, 0, device.width, device.height).findOne();
view.parent().parent().click();
view = text(“取消”).visibleToUser(true).boundsInside(0, 0, device.width, device.height).waitFor();

// 输入 无线调试
view = visibleToUser(true)
.className(“miui.widget.ClearableEditText”)
.boundsInside(0, 0, device.width, device.height)
.findOne();
view.setText(“无线调试”);

// 点击 无线调试
view = text(“无线调试”)
.className(“android.widget.TextView”)
.visibleToUser(true)
.boundsInside(0, 0, device.width, device.height)
.findOne();
view.parent().parent().click();

// 获取ip和端口
view = textMatches(/192.168.*/)
.className(“android.widget.TextView”)
.visibleToUser(true)
.boundsInside(0, 0, device.width, device.height)
.findOne();
return view.text();
}

用机器人发送到钉钉
添加机器人的方法, 也有详细的注释, 跟着操作即可.
找这个添加机器人的入口, 我都花了一些时间, 因为钉钉的界面和原来还不一样.

注意一下发送的消息, 直接就是 adb connect 192.168.101.31:38549,
一会你复制的时候, 就是复制这条消息

这是autojs执行的代码
function sendInfo(info) {
// 打开钉钉群聊
// 点击右上角设置
// 点击智能群助手
// 点击添加机器人
// 点击添加机器人
// 点击自定义
// 点击添加
let token = “78a6e03xxxxxxxxxxxxxxxxxxxxxxxx110b89b8e7549eb”;
let url = “https://oapi.dingtalk.com/robot/send?access_token=” + token;
var temp = http.postJson(url, { msgtype: “text”, text: { content: 'adb connect ’ + info + " \n\n来自 牙叔教程" } });
log(temp.body.string());
}

到了这一步, 需要手动复制一下 adb connect 192.168.101.31:38549

点击bat
这段代码的意思是
获取剪贴板内容, 然后cmd执行剪贴板内容, 精华部分是第一句

这是电脑执行的代码, 写入一个bat文件, 双击bat文件即可
’ 2>nul&@start wscript -e:vbs “%~f0”&goto :eof
Set objHTML=CreateObject(“htmlfile”)
ClipboardText=objHTML.ParentWindow.ClipboardData.GetData(“text”)
set fso=wscript.createobject(“scripting.filesystemobject”)
set file=fso.opentextfile(“123.txt”,2,true)
file.writeline ClipboardText
Set obj = createobject(“wscript.shell”)
obj.run "cmd /c " & ClipboardText

start wscript -e:vbs “%~f0”

cmd.exe 识别成:启动 wscript.exe ,其参数是:
① -e:vbs 设定以vbs解析文件自身
② “%~f0” 指这个批处理本身。

wscript.exe 把这句识别成:调用一个叫 start 的函数,函数参数是 wscript 这个变量,然后用这个函数的结果来 减去 e。接下来是又是一个 : ,分行,然后又是调用一个名叫 vbs 的函数,参数是字符:"%~f0"

这句是最为精巧的,因为它成功的让 vbs 引擎解释了一段批处理,而且没有错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值