admin管理员组文章数量:1611902
了解adb
adb是安卓调试桥(Android Debug Bridge),官方中文文档:https://developer.android.google/studio/command-line/adb.html
开发PC端包括client、server两部分,手机端是一个adbd守护进程,/dev/socket/adbd,监听手机上5555端口;
server为adb服务fork出得子进程,监听PC本地5037端口,接收PC本地client的命令,并负责与mobile端建立链接;
client提供cmd命令输入;client启动时检查server是否启动,若未启动则先启动server,server通过5037端口与client建立连接;
手机端与PC端可以有两种连接方式:TCP连接,USB连接
参考:https://blog.csdn/ysh149216447/article/details/53334015
实现思路:
要利用同一个wifi,使得Android真机上React Native的调试可以脱离USB连接线,思路是先通过USB连接PC与手机,通过手动设置手机与PC的TCP连接,达到脱离USB连接后,手机与PC依然可以通信的效果,这样手机就可以继续reload RN代码了
以上思路的实现过程:
- 打开手机开发者调试,通过USB将手机已USB调试模式连接到PC
- PC中打开命令行,"adb devices" 确认手机与PC已连接成功
- "adb tcpip 5555",设置手机与PC以TCP方式连接时的端口为5555
- 此时已经可以断开手机与PC的USB连接
- "adb connect 192.168.0.199:5555",将PC通过 TCP/IP 连接到手机设备,192.168.0.199为手机的ip,使用手机5555端口、
- 跟USB连接时一样正常执行"adb reverse tcp:8081 tcp:8081",将手机上8081端口反向转发到PC的8081端口(第一个8081指定手机端口,第二个8081指定PC端口)(个人理解reverse含义就是将对于目标port——即手机8081端口——的请求,反向代理到PC得8081端口进行响应)
方案一初次实践时遇到了问题,后来请教大神才发现手机端RN摇一摇手机加载出得菜单里有"Dev Settings"-“Debugging”-"Debug server host & port for device",填入PC的ip:端口即可,此时手机端APP指定到了pc的端口请求资源,而不是手机localhost:8081
adb connect方案遇到的问题
如下:实现思路在执行"adb connect"后,再执行"adb reverse..."会产生如下报错:
adb: error: more than one device/emulator
但实际上此时只有一个设备连接到PC,而且使用"adb forward..."命令也并不会报类似错误
$ adb devices
List of devices attached
192.168.0.199:5555 device
$ ./adb version
Android Debug Bridge version 1.0.41
Version 29.0.5-5949299
stackoverflow也有两个人遇到这个问题,暂时还没有找到问题的原因
https://stackoverflow/questions/46138780/adb-reverse-tcp-not-working-on-android-connected-remotely#
https://stackoverflow/questions/51592477/adb-s-192-168-1-65555-error-more-than-one-device-emulator
还有一个已经有答案的问题,但图没加载出来不知道是否可以参考
https://stackoverflow/questions/57570658/i-cant-debug-react-native-through-wifi-after-following-the-instructions
11.7:
突然想到出问题的机器是root过的,上网搜了下也有利用adbd漏洞提升权限的操作,难道...
结果 | 成功reverse | reverse失败 |
手机型号 | 一加7pro | 一加5t |
操作系统版本 | 9.0 | 8.1 |
root状态 | 未root | 已使用magisk成功root |
本文标签: 代码androidwifiNativeReact
版权声明:本文标题:利用wifi连接Android真机调试React Native代码 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1727183312a1100825.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论