《自拍教程40》Python adb一键导出Log

Android设备,比如车载系统实车路试过程中,
车上操作电脑比较麻烦,如果车载系统出现了Bug,
如何很方便地一次性导出相关的log来(logcat, dbus, 高德地图log,gps定位log等)来呢?
其实我们只需要一个python脚本就可以搞定!


准备阶段
  1. adb pull 命令, 可以把Android系统里的文件,pull到电脑端
  2. 导出的Log,需要在当前路径新建一个文件夹用于存放,最好以时间戳命名
  3. os.system()可以调用adb命令

Android车载系统默认的Log存储路径
Android Log类型 默认路径
logcat序列log /data/logs/logcat.txt
/data/logs/logcat.txt.1

/data/logs/logcat.txt.20
dbus序列log /data/logs/dbus.txt
/data/logs/dbus.txt.1

/data/logs/dbus.txt.20
kernel序列log /data/logs/kernel.txt
/data/logs/kernel.txt.1

/data/logs/kernel.txt.20
tombstone log /data/tombstones/*
anr卡死log /data/anr/*
dropbox log /data/system/dropbox/*
gps log /sdcard/map/gps/*
高德地图log /sdcard/amapauto8/logs/*

自动生成的序列Log

何为自动生成的序列log,一般系统启动过程中,
就默认开启了某种类型的log,且序列化存储,新的会自动冲刷掉旧的log。


比如logcat序列log,
一般是全部写到logcat.txt,写满5M后,
将logcat.txt重命名为logcat.txt.1,以此类推。。。
所以logcat.txt就始终是最新的log,
然后就是logcat.txt.1,
再然后是logcat.txt.2,

最后是到序列logcat.txt.20


当然以上取决于init.rc里的关于logcat自启动命令的设置,
比如init.rc配置文件,如果设置如下:

/system/bin/logcat -b system -b events -b main
-b radio -n 20 -r5000 -v threadtime -f /data/logs/logcat.txt

以上启动命令则表示:截取所有包括system,events,main,radio四种缓冲区的logcat 日志,
并设置自动序列为20个序列片段,-r5000 代表是5M一个,
-v threadtime是打印线程级别的时间戳,
-f 是输出到什么路径,logcat.txt是初始和默认的句柄文件。


其他的dbus.txt序列log, kernel序列log也是一致的。
如以下截图所示:


Python批处理脚本模式
# coding=utf-8

import os
from datetime import datetime

# 先新建一个带时间戳的文件夹用于存放导出来的Log
now_time = datetime.now().strftime("%Y%m%d_%H%M%S")
log_folder = "Logs_" + now_time
os.mkdir(log_folder)  # 因为没指定具体路径,默认就是在当前路径下创建。

# 先导出所有序列log
os.system("adb pull /data/logs/logcat.txt %s" % log_folder)
os.system("adb pull /data/logs/dbus.txt %s" % log_folder)
os.system("adb pull /data/logs/kernel.txt %s" % log_folder)
for i in range(1, 21):
    os.system("adb pull /data/logs/logcat.txt.%s %s" % (i, log_folder))
    os.system("adb pull /data/logs/dbus.txt.%s %s" % (i, log_folder))
    os.system("adb pull /data/logs/kernel.txt.%s %s" % (i, log_folder)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值