我正在开发一个应用程序(使用 Eclipse + Android SDk/NDK),它使用 android 手机上的 micro-usb 端口连接到外围设备。我正在尝试通过 WiFi(tcp 端口 5555)连接到手机上的 ADB 守护程序,以便可以在 Eclipse 中调试我的应用程序。但是,我无法让它工作。
我没有尝试实际导致手机上的 ADB 守护进程切换到 TCPIP 模式(据我通过查看 的输出可知getprop
)。问题似乎是我无法service.adb.tcp.port
在手机上设置相关属性。我使用的开发手机是运行 CyanogenMod 7.0.0 (Android v2.3.3) 的 LG GT540。开发机器是运行 OS X Lion 的 iMac。
以下是有关我尝试/确认/发现的一些相关信息:
- 手机已root (
ru.secure = 0
) - 通过 USB 连接到 ADB 工作正常
- Mac 上的 adb 服务以 root (
adb root
)身份运行 adb shell
给我一个具有超级用户访问权限的 shell(# 提示符、su、编辑系统文件的能力等)adb tcpip 5555
从 Mac 上的终端窗口运行时不会抱怨或抛出错误,但不会service.adb.tcp.port
在手机上设置属性setprop service.adb.tcp.port 5555
在手机终端窗口的#提示符下输入不会抱怨或抛出错误但不会设置service.adb.tcp.port
属性setprop persist.service.adb.enable 0
适用于 Mac 和手机外壳(通过检查 ADB 守护进程停止并getprop
为启用属性返回 0 来确认)setprop persist.service.adb.enable 1
在 Mac 和手机外壳上都可以正常工作(通过检查 ADB 守护程序启动并getprop
为启用属性返回 1 来确认)- 手机上与手机上的 ADB 相关的唯一属性是
persist.service.adb.enable
和init.svc.adbd
(如果 ADB 正在运行)(由getprop | grep adb
手机上确认) - 市场上声称“自动”配置 ADB for Wifi(例如WiFi ADB)的应用程序也不起作用(
tcp.port
属性未设置且 ADB over TCP 不起作用)
我在这里看起来太努力了,错过了一些明显的东西吗?互联网上有很多关于让 ADB 通过 TCP 工作的问题的帖子和文章,但它们都与电话 root 问题有关。
是否有人能够阐明为什么我似乎无法设置此特定属性或提出任何其他可能阻止 ADB 守护程序在 TCPIP 模式下运行的问题?