没有USB线连接PC的情况下,通过WIFI ADB的方式查看LOG信息

最近公司给了一项任务,APP需要手机外置一个USB摄像头,这下造成的问题就是,手机外置了其他USB设备后,手机不能与PC连接,也就不能在PC端通过Eclipse等查看Log信息,调试起来特别麻烦,因为即使程序蹦了,你看不到Log也不知道程序崩溃的原因。

正好有一个同事是搞linux底层的,他说可以通过wifi adb的方式来查看log。意思就是手机通过wifi与PC端处于同一网段内,然后用adb命令远程连接手机,然后就可以无线查看手机端的log信息了。

这种方式需要一个必要条件:

手机端要与PC端处于同一网段。

具体过程如下:

  1. 首先手机可以通过连接wifi,使手机与电脑处于同一网段之下。笔记本好说,可以用360免费wifi什么的,分享一个wifi供手机连接就行了。如果是台式机,且没有网卡的情况下,可以买一个小的USB外置wifi,插上后台式机也可以分享wifi了。(只要PC端能ping通手机端的IP就行了)
  2. 查看手机端连接PC端分享出来的wifi后分配的IP,假设是172.19.10.5,然后再PC端打开命令行。敲命令 adb connect 172.19.10.5。很多时候第一次情况下是会出现:“unable
    to connect to 172.19.10.5:5555”。这是为什么呢?,因为手机默认情况下adb tcpip服务是没起来的。网上很多教程说在手机上下载“终端模拟器”等类似shell命令工具,使用下面命令:(需root权限):

     1)setprop service.adb.tcp.port 5555    2) stop adbd    3) start adbd   

但是本人用USB线连接PC后,通过敲命令 adb tcpip 5555,  adb connect 172.19.10.5,就会连接成功,把手机TCP IP服务给启动了,这时你再断开USB线,从步骤1开始重复,连接wifi后敲adb
connect 172.19.10.5就可以连接成功了。如果实在搞不定,就去应用商店下载一个wifi abd的应用程序,别人的程序帮你把这个服务给启动起来。

3. 当你adb connect命令连接成功后,可以通过adb logcat来查看log信息,但是这样会把你手机上所有log信息            全输出在控制台,

而我们大多数时候只需要自己想看到的log,这时就需要过滤。比如adb
logcat *:i ,就会把只有log级别 大于 i 的所有log信息输出。再比如 adb logcat -s tagname ,就会把所有名称是tag的log信息输出。或许你还会不习惯,因为我们调试一个app是想看到这个app所有的log信息,这里需要用到grep指令,但是这个grep指令只在linux下有,所以你要么装个ubuntu,要么装个windows下的linux指令集。这里我推荐装个ubuntu虚拟机,因为搞android的人起码得会linux系统吧?

在linux的shell终端里,可以先输入 adb shell ps,将所有类似在windows下的进程输出,看下你包名所对应的pid,就是你app运行的进程的pid,然后指令  adb logcat | grep $pid,就行了。其他过滤方式可以查google,很多的

写得不是很好,如果有不懂的就留言问我吧,希望能帮助到你。

时间: 2024-10-09 21:58:15

没有USB线连接PC的情况下,通过WIFI ADB的方式查看LOG信息的相关文章

一次http请求,谁会先断开TCP连接?什么情况下客户端先断,什么情况下服务端先断?

我们有2台内部http服务(nginx): 201:这台服务器部署的服务是account.api.91160.com,这个服务是供前端页面调用: 202:这台服务器部署的服务是hdbs.api.91160.com,    这个服务是供前端页面调用: 近期发现,这2台服务器的网络连接中,TIME_WAIT 数量差别很大,201的TIME_WAIT大概20000+,202的TIME_WAIT大概1000 ,差距20倍:2台的请求量差不多,都是以上内部调用的连接,且服务模式也没有什么差异,为什么连接数

在不连接打印机的情况下,为打印机安装驱动程序

大家不知道有没有如下经历:打印机安装在一台XP系统的电脑上,将这台打印机共享出去,其他装有XP系统的局域网用户可以直接从共享找到打印机,通过网络安装驱动程序(其实是COPY那台安装打印机的XP系统电脑上的驱动),就可以使用共享打印机.而如果局域网中有一台电脑安装的是win7或者更高版本windows系统,直接从共享打开打印机时,由于主机上打印机驱动为XP平台的,大多数时候与WIN7(尤其64位)或不兼容,而出现不能安装驱动的情况.这种情况一般是64位的win7或win8系统在连接32位系统的计算

检测USB是否连接PC

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);Intent batteryStatus = context.registerReceiver(null, ifilter); int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);boolean isCharging = status == BatteryManag

网络连接正常的情况下打不开网页的尝试办法

Windows网络连接一切正常,有时候就偏偏打不开网页,chrome和IE都是一样,用360断网急救箱修复所有选项之后,然后又重置了IE浏览器,还是打不开网页,这时候重置应用层的网络编程接口:winsock将其恢复到默认状态或许可以解决你的问题, 以管理员方式运行cmd,输入命令: netsh winsock reset 然后点击回车键确认,然后系统就提示成功重置了Winsock目录,然后重新启动计算机也许就可以上网了,可以试一下或许能解决你的问题.

Android 数据连接关闭的情况下如何让彩信发不出去

alps\frameworks\base\services\java\com\android\server\ConnectivityService.java 如下2个函数的开头加入如下语句: startUsingNetworkFeature() startUsingNetworkFeatureGemini() int currentDataConnectionSimId = -1; if(FeatureOption.MTK_GEMINI_ENHANCEMENT == true){ long cu

如何用console线连接路由器进行初始配置-----无私奉献版(转载请注明出处)

打开包装拿出路由器,需要为路由器进行基础配置,包括时间.访问密码.IP地址等,在初次配置后我们就可以通过telnet的方式来管理和配置路由器了.但这第一次配置是需要通过路由器上的console的口来实现的. 我们在初始配置的时候如何来连接路由器呢?请看下图,由于路由器的console线连接PC的一端是RS232 俗称9针串口(母头)接口,而现在的笔记本基本上都没有配备这种接口,所以我们要配备一个usb转RS232 (公头)的转换模块或者是线(自行购买,并且需要安装驱动). 连接图 连接好cons

ADB连接手机的两种方式(usb数据线连接和wifi连接)

ADB(Android Debug Bridge)安卓测试桥,它是连接电脑开发端和安卓设备的桥梁,这个安卓设备可以是真实的安卓手机或者平板,也可以是虚拟的安卓模拟器, 这里介绍ADB连接手机的两种方式, 先说USB数据线连接方式, 分三步, 第一步:把安卓设备用Usb数据线连接到电脑上(注意手机上要在设置里"开发模式"打开"USB调试功能") 第二步:要安装ADB驱动程序,有了这个驱动,ADB才能驱动手机,下载地址通用型ADB驱动, 下载后自动安装就行. 第三步:当

DeskMini无传统机械键盘与鼠标接口的情况下使用U盘安装系统经验总结

总结安装纯净版Win7旗舰版系统安装过程所解决的问题要点: 1:UEFI引导启动的实现. 2:使用Dism++实现系统的安装. 3:使用Dism++解决新主板在安装系统过程中不能使用USB键盘和鼠标的问题. 解决过程: 准备工作: 去MSDN网站下载Win7SP1纯净版的ISO文件.(Windows 7 Ultimate with Service Pack 1 (x64) - DVD (Chinese-Simplified) : ed2k://|file|cn_windows_7_ultimat

高并发情况下Linux系统及kernel参数优化

众所周知在默认参数情况下Linux对高并发支持并不好,主要受限于单进程最大打开文件数限制.内核TCP参数方面和IO事件分配机制等.下面就从几方面来调整使Linux系统能够支持高并发环境. Iptables相关 如非必须,关掉或卸载iptables防火墙,并阻止kernel加载iptables模块.这些模块会影响并发性能. 单进程最大打开文件数限制 一般的发行版,限制单进程最大可以打开1024个文件,这是远远不能满足高并发需求的,调整过程如下: 在#号提示符下敲入: # ulimit–n 6553