android adb logcat获取日志文件

本文介绍如何在小米1S手机上通过ADB命令抓取并导出logcat日志到本地文件,同时演示如何利用monkey命令进行自动化测试并记录测试过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般情况,可以直接在电脑终端上输入logcat来查看手机运行日志,但是测试工作者为了抓取日志文件来给开发人员,需要把日志导出到特定文件中。如下文。
以小米1s手机为例
步骤1:打开第一个终端窗口
adb devices(检查设备是否成功连接,并获取设备号)
adb -s 04cf8300 logcat -c (清除LOGCAT的缓存)
adb -s 04cf8300 logcat >test_logcat.txt(将log日志存在此txt文件中,默认显示在用户文档下面)如图:

2、再打开一个终端窗口:输入
adb -s 04cf8300 shell monkey -v -p com.kunshan.weisheng --throttle 300 20000 >test_Monkey.txt(执行monkey自动化测试。在测试过程中会有LOG产生。log存在上面文档中,monkey测试路径存在此文档中)

其中test_logcat.txt如图:

test_Monkey.txt如图:

将test_logcat.txt文档交给开发就ok了。当然个人认为log太长,需要简化,可以设置优先级,提取概要。等以后再研究。

//消息过滤
针对ndk问题查找
adb logcat | /Users/yii_dev3/Documents/android-ndk-r9d\ndk-stack -sym 项目路径\pro.android\obj\local\armeabi

ndk-stack使用

1.运行终端。 跳转到你android sdk 目录

如 cd /Users/name/Android/adt-bundle-mac-x86_64-20131030/sdk/platform-tools 

2、找了路径正确继续下一步,./adb logcat | 你android ndk-stack所在的路径 -sym /你安卓工程.so文件所在的目录

./adb logcat | /Users/name/Android/android-ndk-r8e/ndk-stack -sym /Users/name/test/proj.android/obj/local/armeabi

3、正确配置后会在终端出现

- waiting for device -

4、AndroidManifest.xml 设置 Debuggable 为true  在Application 切页中

5、另外启动一个终端 编译android工程

6、ADT连接设备运行你的工程就行了,出现崩溃的话会在你前面配置的终端里面打印出来。

********** Crash dump: **********

Build fingerprint: 'Xiaomi/aries/aries:4.1.1/JRO03L/JLB29.0:user/release-keys'

pid: 6546, tid: 6575, name: Thread-9654  >>> com.cocos2dx.SanGo <<<

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad

Stack frame #00  pc 00013a78  /system/lib/libc.so

Stack frame #01  pc 00015e55  /system/lib/libc.so (dlfree+1628)

Stack frame #02  pc 00017003  /system/lib/libc.so (free+10)

Stack frame #03  pc 004965e8  /data/data/com.cocos2dx.test/lib/libgame.so (cocos2d::CCImage::~CCImage()+88): Routine __static_initialization_and_destruction_0 in /Users/name/Sango_Android/test/libs/cocos2dx/platform/android/CCApplication.cpp:127

Stack frame #04  pc 0049664c  /data/data/com.cocos2dx.teset/lib/libgame.so (cocos2d::CCImage::~CCImage()+20): Routine CCLog in /Users/name/test/libs/cocos2dx/platform/android/CCCommon.cpp:36

重要的就是 cpp 行号。为我们定位崩溃地点很有作用,再结合程序的打印输出位置,就能很快定位问题了。


<think>嗯,用户想知道如何使用adb logcat获取车机系统的日志文件。首先,我需要回忆一下adb logcat的基本用法和相关参数。根据之前的引用内容,adb logcatAndroid调试桥的一部分,可以用来捕获设备日志。车机系统通常是基于Android的,所以方法应该类似。 用户可能需要具体的步骤,比如如何连接车机、如何过滤日志、如何保存到文件。首先,连接车机可能需要通过USB调试或者无线adb连接。需要确保车机的开发者选项和USB调试已开启,这点可能需要用户自己检查设备设置。 然后,adb logcat的命令格式。根据引用[1]和[2],常用的命令包括指定日志级别、时间戳、过滤标签等。比如使用-v time来显示详细时间,或者用*:E来过滤错误级别的日志。用户可能需要知道如何实时查看日志,以及如何保存日志到文件,比如D:\log.txt这样的路径。引用[1]提到保存日志到固定位置,这可以通过重定向实现,比如adb logcat > log.txt。 另外,引用[3]提到在测试APP崩溃时使用脚本自动抓取日志,可能用户需要更自动化的方法,比如持续监控或按时间分割日志。可能需要建议用户编写脚本,使用adb logcat -c清除旧日志,然后开始记录,或者按时间戳保存文件。 用户可能遇到的问题包括权限不足、无法连接设备、日志太多难以筛选。需要提醒用户检查adb devices是否识别到车机,是否有足够的权限执行logcat。此外,建议使用过滤条件缩小日志范围,比如通过包名或标签过滤,避免信息过载。 还有,是否需要root权限?可能部分日志需要,但基础日志应该不需要。如果用户遇到权限问题,可能需要指导他们如何获取必要权限,或者使用adb root命令,但这也取决于车机系统的设置。 最后,生成相关问题时要考虑用户可能的后续疑问,比如如何分析日志、常见错误类型、自动化抓取方法等。这些问题能帮助用户进一步处理获取到的日志文件。</think>### 如何使用 adb logcat 获取车机系统日志文件? #### 1. **连接车机设备** - 通过 USB 数据线或无线 ADB 连接车机,确保开发者模式和 USB 调试已开启。 - 使用 `adb devices` 验证设备是否成功连接。若显示设备序列号,则表示连接正常[^2]。 #### 2. **基础日志抓取命令** - **实时查看日志**: ```bash adb logcat ``` - **显示带时间的日志**: ```bash adb logcat -v time ``` - **仅抓取错误级别日志**: ```bash adb logcat *:E ``` 其中 `E` 表示 Error 级别(可替换为 `W`/Warning、`I`/Info 等)[^1]。 #### 3. **保存日志到本地文件** - **直接保存到指定路径**(例如 `D:\log.txt`): ```bash adb logcat > D:\log.txt ``` - **按时间和级别组合保存**: ```bash adb logcat -v time *:E > D:\error_log.txt ``` #### 4. **高级过滤技巧** - **按标签(TAG)过滤**: ```bash adb logcat -s TAG_NAME ``` 例如过滤蓝牙模块日志:`adb logcat -s Bluetooth`. - **按进程ID过滤**: ```bash adb logcat --pid=<进程ID> ``` 使用 `adb shell ps | grep <包名>` 获取进程ID。 #### 5. **自动化脚本示例(Windows/Linux)** ```bash # 清理旧日志 adb logcat -c # 抓取日志并保存到带时间戳的文件 adb logcat -v time > log_$(date +%Y%m%d_%H%M%S).txt ``` #### 6. **注意事项** - 若日志过多,可通过 `adb logcat -c` 清除缓存后重新抓取。 - 部分车机系统可能需要 root 权限才能访问特定模块的日志。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值