Android的adb网络调试方法

由 adtxl 发布

[转载]

目的

为了释放出USB口, 而使用网线进行软件调试.

进入命令行 adb shell

如果adb已经加入环境变量中, 并且设备的adbd已开启, 那么, windows在cmd下输入adb shell可进入设备的shell模式. shell模式下可进行用户设备上的一些操作, 如setprop.

文章一 adb环境

对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连接调试。

本文假设设备的ip为192.168.1.5,下文将会用这个IP建立adb连接,并调试设备。

1、首先Android设备需要先启动,如果可以话,可以确保一下adbd启动。

2、在研发机的cmd中,输入:

adb connect 192.168.1.5:5555

如果连接成功会进行相关的提示,如果失败的话,可以先kill-server命令,然后重试连接。

adb kill-server

3、如果连接已经建立,在研发机中,可以输入adb相关的命令进行调试了。比如adb shell,将会通过tcp/ip连接设备上面。和USB调试是一样的。这里就不多说了。

4、调试完成之后,在研发机上面输入如下的命令断开连接:

adb disconnect 192.168.1.5:5555

这样就通过TCP/IP完成了对Android设备的调试工作了,希望对大家有所帮助。如有错误的地方,请不吝指教。

下面通过学校开发板sep6200介绍下:首先查看板子静态ip地址,在kernel/root/init.djstjava.sh脚本中,如下

#!/system/bin/sh

ifconfig eth0 172.20.106.149 netmask255.255.255.0 up

route add default gw172.20.106.146 dev etho

上面脚本中172.20.106.149为板子ip,172.20.106.146为pc机ip。

启动android后,在pc终端输入adb connect 172.20.106.149,连接成功后输入adb shell即可。

文章二 设置adbd监听端口

Android的 adb服务默认情况下监听USB,一般我们在开发中是通过USB连接到目标机上。但是如果目标机只有一个USB口,我们又需要把这个USB用于其它目的 (比如用于OTG口插U盘)的时候怎么办?其实adb是支持通过网络访问的,在需要的时候,只需按下列步骤操作即可通过网络连接adb服务。

(1)首先还是正常地通过USB连接目标机,在windows cmd下执行adb shell进入

(2)设置adb监听端口: #setprop service.adb.tcp.port 5555

(3)通过ps命令查找adbd的pid

(4)重启adbd#kill -9 <pid>,这个pid就是上一步找到那个pid

杀死adbd之后,android的init进程后自动重启adbd。adbd重启后,发现设置了service.adb.tcp.port,就会自动改为监听网络请求(这时就不能通过USB连上去了)。这时需要在开发主机上通过下列命令连接到目标机:

    adb connect<ip>:<port>

这个ip是你目标机的IP地址,port是上面第2步设置的端口号(上面的例子中设的是5555,当然你也可以改成其它值)。

这之后就可能正常进行软件调试了。这时USB接口已经空出来可以作为他用了。

文章三

要用网络调试Android需要设备已经获取root权限
如果手机没有命令行工具,就先用usb线连接,输入命令:

$su

#stop adbd

#setprop service.adb.tcp.port 5555

#start adbd

adb命令:

#adb connect <手机ip地址(端口默认是5555)>

这时手机已经和电脑连上了,用adb devices看看有没有连上手机,如果没有就adb kill-server后重新connect

可以直接用eclipse中的DDMS窗口对手机进行调试

如果需要进入adb shell,直接在命令行输入adb shell

关闭网络调试也很简单,在手机命令中输入命令:

$su

#stop adbd

#setprop service.adb.tcp.port 0

#start adbd

暂无评论

发表评论