Android RemoteLog(远程查看日志)

把logcat日志实时显示到电脑浏览器上,是不是很酷!


做Android开发,如果不能插着usb,看着logcat。你会觉得少一只手一样很不方便。

但是现实中确实有这种情况,比如本人在做的hud(汽车上用的“抬头显示”)项目是通过usb线把手机上的数据投到hud设备上(这样我们就不能用usb口连接adb查看logcat了)。首先我们想到的是把日志写文件,再把usb线插在电脑上,pull出日志,再分析日志。这效率,可想而知。。。往往我们希望可以连着手机看logcat的日志,今天我们聊聊有哪些方案,以及哪个方案更适合你。

想了解hud的,见这里,顺便给我们公司的产品打个广告:
车萝卜 智能车机导航 HUD抬头显示 智能语音手机支架 安全预测仪 青春版+车小蜜(灰)


方案一(无线连接adb)

1
2
3
adb tcpip 5555 (端口号)
adb connect 192.168.1.199 (Android设备IP地址)
adb usb 使用回usb调试

这种方案,就三个字:“不方便”!要经常切换。而且不稳定,经常断线,不知道原因。

方案二RemoteLogcatViewer

最初,当我在网上找到了这个方案,简单高兴得要哭了。

只要手机和你的电脑在同一个局域网网段,就可以无线实时地查看手机上的logcat日志。这个方案的技术实现也比较好理解,在手机里建立websocket server(以下都用ws server代替),电脑上通过ws client连接来查看。

而且,如果不希望修改现有项目,可以新建一个其他的项目依赖本库,然后通过配置相同的 android:sharedUserId=”” 和签名相同, 可以在新app运行时中读取所有sharedUserId相同的 log。这个feature简直是锦上添花!完美!

但是用过之后。我遇到了三个问题:

  1. 加上sharedUserId之后,不能覆盖安装。
  2. 连接老是断开。也许,我要做app要保活?太忙了,没时间尝试。
  3. 和领导提过这个方案。他也觉得很赞,问我如果用户的手机上遇到bug,能不能实时看到他的日志。显然,这个方案不太好实现这个功能。因为server的实现在手机上。

所以,最后我只在自己的demo里用这套方案,并且,做了一些小的修改,见我的fork RemoteLogcatViewer forked by 本喵

方案三(今天重点要说的,灵感来源于RemoteLogcatViewer)

Demo及代码实现见这里RemoteLogDemo

本方案的server端可以在外网服务器上,也可以是同局域网内的一台电脑。
配合log-clientlog-server一起使用。

  • 数据流大概是这样的logcat --> log-server --> log-client

    1. app跑着ws client,负责把自己的logcat日志发给log-server。
    2. log-server是部署在服务器上,跑着ws server,负责将app上logcat的日志,转发到log-client
    3. log-client运行在开发者的电脑上,也跑着ws client,负责查看日志。

      log-server、log-client都是nodejs来实现的。app的ws使用ok-http来实现。

  • 使用方法

    1. 先运行log-server 。如果部署在外网会比较方便,可以一直开着。
    2. 打开log-client,输入要过滤的字符串( 正则表达式过滤)。
    3. 打开app,可以像我的demo一样程序启动就连接ws-server(记得加上BuildConfig.DEBUG)。如果是release版本,最好把该功能隐藏,可以通过后门开启。

      android app中执行Log.i(TAG, System.currentTimeMillis() + "");

      log-client可以看到相应的输出
      此处输入图片的描述

  • ps:如果你没有服务器,而且想把log-server部署 在外网。可以使用leancloud的服务,有免费版本。代码见wslog。详细的使用方法,见官方文档。
  • todo list
    1. 日志写文件
</div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值