我正在开发一个应用程序(使用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。
以下是我尝试/确认/发现的一些相关信息:
ru.secure = 0
)adb root
)adb shell
为我提供了一个具有超级用户访问权限的shell(#prompt,su,编辑系统文件的能力等)adb tcpip 5555
不会抱怨或抛出错误,但未在手机上设置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和手机shell中正常工作(通过检查ADB守护程序启动确认,getprop
为启用属性返回1)persist.service.adb.enable
和init.svc.adbd
(如果ADB正在运行)(通过手机上的getprop | grep adb
确认)tcp.port
属性且TCP上的ADB不起作用)我在这里看起来太难了,错过了一些明显的东西吗?互联网上有许多帖子和文章与ADB通过TCP工作的问题有关,但它们都与电话生根问题有关。
是否有人能够阐明为什么我似乎无法设置此特定属性或建议可能阻止ADB守护程序在TCPIP模式下运行的任何其他问题?
答案 0 :(得分:0)
您需要在手机上停止然后重新启动adbd才能使tcp端口属性生效。
答案 1 :(得分:0)
对于任何设备(根或不是),它应该像下面这样简单:
adb tcpip <port>
如果有效,您会看到restarting in TCP mode port: <port>
吐出终端。如果你什么也看不见,那就没有了。
该守护程序为您设置了该属性。告诉你设置propery并重新启动adbd的教程主要关注需要在设备上执行的代码(例如,如果你是通过WiFi应用程序编写ADB)。
但是,你提到你正在使用Cyanogenmod。 CM没有在开发者选项中设置“ADB over Network”(我发誓它在CM7中)?我知道他们选择的端口是5555.您可能会遇到与该功能的冲突,试图手动执行此操作。可能最好使用系统中内置的内容。
答案 2 :(得分:0)
在申请开始时添加1行。
setprop service.adb.tcp.port 5555 && stop adbd && start adbd
这会在开始时重置adb!