Android Studio 网络调试

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/53200096 文章出自:薛瑄的博客
你也可以查看我的其他同类文章,也会让你有一定的收货。

对Android比较熟悉的开发人员,对adb通过USB(USB连接Android设备)调试Android设备应该不会陌生,因为大部分资料都是这样做的。但是假如你的 Android设备没有USB口,只有网口,能不能调试呢?(比如移植过程中通过NFS启动的Android系统,再比如你的设备上面USB设备匮乏。)答案是肯定的。本文我将以我最近的经验,介绍一下adb怎样通过tcp/ip来调试Android设备。

adb早期版本只能通过USB来对设备调试,从adb v1.0.25开始,增加了对通过tcp/ip调试Android设备的功能。

如果你想adb通过tcp/ip来调试设备,必须要满足如下条件:

  1. 设备上面首先要有网口。没有网口,那就是“巧妇难为无米之炊”了。

  2. 设备和研发机(PC机)已经接入局域网,并且设备设有局域网的IP地址。

  3. 要确保研发机和设备能够相互ping得通。

  4. 研发机已经安装了Android SDK(要确保SDK版本是2.0之后的版本)。(确保有相应的环境变量,adb在sdk的platform-tools目录下,所以要将platform-tools所在地路径加入path环境变量中)

  5. 检查研发机上的adb的版本,是否是1.0.25之后的版本。方法就是在cmd(windows)或者shell(Linux)中敲入adb,回车,显示帮助,第一行就是adb版本信息。

  6. 确保Android设备中adbd进程(adb的后台进程)已经运行。adbd进程将会监听端口5555来进行adb连接调试。

使用android studio进行网络调试,在网上搜索到一下几种方法,原理都是一样的。都是获取手机的ip和port,然后adb连接进行调试。

第一种:

第一步:

这种方式简单,但不是所有的android系统中都会有这个选项,记得好像是原生Android L及以后版本才有这个选项

在开发者选项中打开网络调试,会显示当前手机的ip和调试端口号,例如:192.168.1.109:5555

第二步:

打开AndroidStudio,在下面的Terminal中,输入

adb connect 192.168.1.109:5555

pc要与手机连入同一个局域网
此时通过正常的调试手段,都可以看到Android设备。

第二种:在android studio上使用插件

AndroidWiFiADB

这种方法需要使用数据线连接电脑才行,然后使用这个插件进行网络连接。

可以直接在android studio中搜索下载,
Download and install Android WiFi ADB directly from Intellij / Android Studio: Preferences/Settings->Plugins->Browse Repositories


有时候会遇到这样的情况,开发者选项没有网络调试,也无法使用数据线连接电脑,可以使用下面两种方法,但需要获取root权限

第三种:使用apk辅助

这类app有adbwireless、wirelessADB

使用adbwireless

这里写图片描述

接下执行第一种方法的第二步

第四种:手动打开5555端口

这种情况下,可以选择手动查看Android设备的ip地址和打开5555端口,

打开adbd,指定端口为5555

$su

#stop adbd

#setprop service.adb.tcp.port 5555

#start adbd

参考:
如何用Android Studio进行无线的真机调试?
Android studio使用adbwireless实现WiFi调试
Android的adb网络调试方法

关注我的公众号,轻松了解和学习更多技术
这里写图片描述

发布了242 篇原创文章 · 获赞 777 · 访问量 227万+
展开阅读全文

TCP SOCKET 调试工具一直跳

09-27

安卓代码如下 ``` package connection.example.com.tcpconnectiontest1; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import java.io.DataOutputStream; import java.io.OutputStream; import java.net.Socket; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button b1=findViewById(R.id.b1); b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new Thread(new Runnable() { @Override public void run() { try{ Socket socket=new Socket("192.168.1.108",54250); OutputStream outputStream=socket.getOutputStream(); DataOutputStream dataOutputStream=new DataOutputStream(outputStream); dataOutputStream.write(1); dataOutputStream.flush(); outputStream.close(); dataOutputStream.close(); socket.close(); }catch (Exception e){ e.printStackTrace(); } } }).start(); } }); } } ``` 然后嘞,问题就是,每次点击按钮之后,TCP/UDP Socket调试工具(v2.2)就会跳一下变成下图 ![图片说明](https://img-ask.csdn.net/upload/201909/27/1569581773_370581.png) 之后又会立刻变回原来的样子(只有192.168.1.108【54250】这一行),右侧(数据接收及提示)窗口也不会显示接收到的信息之类的。 补充一下,我自己试过,本机连本机(自己的server与client连接),能够连接成功,消息也可以发送,可是一旦用手机发送一次数据(我把程序安装在安卓手机上,网络许可也已经给了),之前发送的数据信息(右侧:数据接收及提示窗口),也会一并消失。+ 请大佬不吝赐教 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 代码科技 设计师: Amelia_0503

分享到微信朋友圈

×

扫一扫,手机浏览