• 内网使用adb工具使用logcat进行日志分析


    WorkTool自动化团队

    问题发现

    我们在平时的安卓项目开发中,看日志和调试肯定都是通过 Android Studio 进行实时日志查看和过滤,但如果是部署在内网机器或其他原因不能方便的安装 Android Studio 想查看实时日志就有一定的困难,当然我们也可以使用本地存储运行日志并将日志文件通过网络传输出去或者使用 adb 工具将文件导出后查看,但是总会存在一些不方便。

    找到一种不依赖 Android Studio 又方便查看实时日志的方法就很重要了,大部分人都知道安卓设备自带 logcat,只要使用 adb 工具就可以在内网机器连接到手机查看实时日志,本文提供一些 logcat 使用中遇到的问题,方便大家直接使用。
    要解决的问题:

    1. adb locat 后中文乱码
    2. 过滤出指定应用包名的日志
    3. 打印指定日志等级(及以上)的日志

    正文

    内网环境:Windows Server 2019
    工具:cmd + adb (adb工具包需要提前拷贝到机器上)

    打开 CMD 命令行
    在内网机器上打开 cmd 并 cd 到 adb.exe 目录,本例中 adb.exe 在 cd D:\leidian\ldyun

    # 命令行中输入
    D:
    cd D:\leidian\ldyun
    
    • 1
    • 2
    • 3

    在这里插入图片描述在这里插入图片描述
    目录已经改为 adb.exe 所在目录

    解决中文乱码
    修改代码页编号 65001,仅临时有效,已经可以满足需求了

    # 命令行中输入
    chcp 65001
    
    • 1
    • 2

    如果未修改会出现中文乱码,如图
    在这里插入图片描述

    查看已连接设备

    # 命令行中输入
    adb devices
    
    • 1
    • 2

    在这里插入图片描述
    因为我这里有多台设备,所以之后执行 adb 命令需要指定设备(adb -s [设备名]),本例指定 emulator-5554 这台设备

    查看应用的进程pid
    本例应用包名为 org.yameida.worktool,用安卓设备的 ps 查询进程并过滤包名得到 pid

    # 命令行中输入
    adb -s emulator-5554 shell ps | find "org.yameida.worktool"
    
    • 1
    • 2

    在这里插入图片描述
    第二个值 24538 即是我们需要的进程pid

    过滤出应用日志
    使用进程pid,过滤出该应用的实时日志,默认是打印所有日志等级

    # 命令行中输入
    adb -s emulator-5554 logcat | find "24538"
    
    • 1
    • 2

    打印指定日志等级
    打印指定日志等级(及以上)的日志,等级分为
    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"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    现在查看日志和在 Android Studio 中查看体验一样了

    总结

    在客户机上使用 adb 工具来进行日志是非常方便的,避免了安装繁重的 Android Studio 和占用机器资源,尤其是内网环境则更会遇到各种问题。喜欢可以关注我~有问题可以留言或私信我。

  • 相关阅读:
    记录一次makefile + dockerfile + dockerfile-compose + shell 部署项目
    k8s和docker的一些学习(一)
    Docker基本原理
    从另外一个进程中读取数据
    lc[二叉树]---101.对称二叉树
    震惊!我竟然在1080Ti上加载了一个35亿参数的模型(ZeRO, Zero Redundancy Optimizer)
    1187 Candy,xtu
    MySQL完全备份与恢复
    2019CCPC网络赛 杭电 6705 path(题解+代码)
    机器学习平台整理
  • 原文地址:https://blog.csdn.net/u012960155/article/details/128012586