WorkTool自动化团队
- 问题发现
- 正文
- 总结
问题发现
我们在平时的安卓项目开发中,看日志和调试肯定都是通过 Android Studio 进行实时日志查看和过滤,但如果是部署在内网机器或其他原因不能方便的安装 Android Studio 想查看实时日志就有一定的困难,当然我们也可以使用本地存储运行日志并将日志文件通过网络传输出去或者使用 adb 工具将文件导出后查看,但是总会存在一些不方便。
找到一种不依赖 Android Studio 又方便查看实时日志的方法就很重要了,大部分人都知道安卓设备自带 logcat,只要使用 adb 工具就可以在内网机器连接到手机查看实时日志,本文提供一些 logcat 使用中遇到的问题,方便大家直接使用。
要解决的问题:
- adb locat 后中文乱码
- 过滤出指定应用包名的日志
- 打印指定日志等级(及以上)的日志
正文
内网环境:Windows Server 2019
工具:cmd + adb (adb工具包需要提前拷贝到机器上)
打开 CMD 命令行
在内网机器上打开 cmd 并 cd 到 adb.exe 目录,本例中 adb.exe 在 cd D:\leidian\ldyun
# 命令行中输入
D:
cd D:\leidian\ldyun
目录已经改为 adb.exe 所在目录
解决中文乱码
修改代码页编号 65001,仅临时有效,已经可以满足需求了
# 命令行中输入
chcp 65001
如果未修改会出现中文乱码,如图
查看已连接设备
# 命令行中输入
adb devices
因为我这里有多台设备,所以之后执行 adb 命令需要指定设备(adb -s [设备名]),本例指定 emulator-5554 这台设备
查看应用的进程pid
本例应用包名为 org.yameida.worktool,用安卓设备的 ps 查询进程并过滤包名得到 pid
# 命令行中输入
adb -s emulator-5554 shell ps | find "org.yameida.worktool"
第二个值 24538 即是我们需要的进程pid
过滤出应用日志
使用进程pid,过滤出该应用的实时日志,默认是打印所有日志等级
# 命令行中输入
adb -s emulator-5554 logcat | find "24538"
打印指定日志等级
打印指定日志等级(及以上)的日志,等级分为
V、D、I、W、E 等级依次提高,通常我们打印 debug 及以上日志使用较多
# 命令行中输入
adb -s emulator-5554 logcat *:V | find "24538"
adb -s emulator-5554 logcat *:D | find "24538"
adb -s emulator-5554 logcat *:I | find "24538"
adb -s emulator-5554 logcat *:W | find "24538"
adb -s emulator-5554 logcat *:E | find "24538"
# 常用打印 debug 及以上等级日志
adb -s emulator-5554 logcat *:D | find "24538"
现在查看日志和在 Android Studio 中查看体验一样了
总结
在客户机上使用 adb 工具来进行日志是非常方便的,避免了安装繁重的 Android Studio 和占用机器资源,尤其是内网环境则更会遇到各种问题。喜欢可以关注我~有问题可以留言或私信我。