展会信息港展会大全

Android通过网络调试程序
来源:互联网   发布日期:2016-01-14 12:29:41   浏览:1578次  

导读:在adb说明文档中说到:An ADB transport models a connection between the ADB server and one device or emulator. There are currently two kinds of transports:- USB transports, f......

在adb说明文档中说到:

An ADB transport models a connection between the ADB server and one device or emulator. There are currently two kinds of transports:

- USB transports, for physical devices through USB

- Local transports, for emulators running on the host, connected to the server through TCP

大致意思是说,在物理设备上,adb是通过USB连接到设备上的,而在模拟器上,adb是通过TCP协议连接到设备上的。实际上在物理设备上,也可以让adb通过TCP协议来连接设备(当然前提条件是你的设备要有网口)。首先看一下下面这段源代码,出自system/core/adb/adb.c,第921 行:

property_get("service.adb.tcp.port", value, "0");

if (sscanf(value, "%d", &port) == 1 && port > 0) {

// listen on TCP port specified by service.adb.tcp.port property

local_init(port);

}

else if (access("/dev/android_adb", F_OK) == 0) {

// listen on USB

usb_init();

}

else {

// listen on default port

local_init(ADB_LOCAL_TRANSPORT_PORT);

}

分析上述代码可以发现,在adbd启动时首先检查是否设置了service.adb.tcp.port,如果设置了,就是使用TCP作为连接方式;如果没有设置,就去检查是否有adb的USB设备(dev/android_adb),如果有就用USB作为连接方式;如果没有USB设备,则还是默认使用TCP作为连接方式。

因此只需要在启动adbd之前设置service.adb.tcp.port,就可以让adbd选则TCP模式,也就可以通过网络来连接adb了。这需要修改init.rc文件。如果不想修改,也可以在系统启动之后,在控制台上执行下列命令:

#stop adbd

#set service.adb.tcp.port 5555

#start adbd

这样就可以在主机上通过下列命令来连接设备了:

adb connetc <ip-of-device>:5555

赞助本站

人工智能实验室

相关热词: 网络 调试程序

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港