一种通过自动脚本抓取Android 手机log的方法
2016-05-23 13:30
549 查看
一种通过自动脚本抓取Android 手机log的方法
作者:Amour.Wang
对于android 手机调试或测试中经常需要查看手机的logcat 输出,对于开发者平时一般都是直接使用IDE 查看logcat 输出,但是在有些情况下比如:1.单纯做测试,IDE 工具保存比较麻烦,或者没有IDE 工具的情况下,这时如果需要抓手机log 就比较麻烦。 本文主要针对在没有安装android 开发环境或不想每次都打开IDE 抓log 的情况下,提供了一下方便抓log的脚本及配置,本文的最后提供工具的下载。
一、Logcat 的简单介绍
1、安装好android 设备驱动后,配置好ADB 环境变量后,就可以直接在windows 的命令行窗口输入 adb logcat 就会显示当前的log
二、过滤器的使用
网上太多的文章都写的太详细了,在我自己看来反而觉得有点不太好理解,我下面用3个简单的实例说明一下
1. 过滤某个级别的log,如下即过滤Warning 以上级别的
adb logcat *:W
2. 过滤 tag 为 ActivityManager级别为I 以上的
adb logcatActivityManager:I
3. 过滤 tag 为 ActivityManager级别为I 以上的 或者 tag 为 MyApp log级别为d 以上的
adb logcatActivityManager:I MyApp:d
三、输出格式
日志信息包括了许多元数据域包括标签和优先级。可以修改日志的输出格式,所以可以显示出特 定的元数据域。可以通过 -v 选项得到格式化输出日志的相关信息.
这边还是通过一个常用的例子来说明
adb logcat –v time 通过 –v time 使输出的log 包含时间
如下为具体的标签说明
brief — Display priority/tag and PID of originating process (thedefault format).
process — Display PID only.
tag — Display the priority/tag only.
thread — Display process:thread and priority/tag only.
raw — Display the raw log message, with no other metadata fields.
time — Display the date, invocation time, priority/tag, and PID of theoriginating process.
long — Display all metadata fields and separate messages with a blanklines.
其他命令参考:
四.自动log 工具使用及说明
1.前提条件,安装好android 手机的驱动,并且在手机端授权ADB 调试
2.双击BAT 文件自动开始抓log 并使用当前时间作为文件名保存log
3.ctrl +C 退出 抓log
脚本文件如下,拷贝到记事本,另存为 xxx.bat(另外需要xxx.bat 同一目录下有adb的工具,附件压缩包内有提供)
@echo off
cd /d %~dp0
set devfile=%tmp%/devices.txt
:RESTART
set deviceCount=-1
for /f "tokens=1" %%iin (%devfile%) do (
SetLocal EnableDelayedExpansion
set /a deviceCount+=1
set list!deviceCount!=%%i
)
echo 当前连接设备数 %deviceCount%
if %deviceCount%==0 (
echo 当前没有连接设备,请连接设备
goto END
) else if %deviceCount%==1 (
echo %list1%
goto STARTLOG
) else if %deviceCount% gtr 1 (
echo 当前连接超过一个设备,请断开其他设备
goto END
)
:STARTLOG
for /f "tokens=1-4 delims=/:." %%i in("%date:~0,4%_%date:~5,2%_%date:~8,2%_%time%") do setfilename=%%i_%%j_%%k_%%l
set filenamenew=%filename%
set filenamenew=%filenamenew: =%
set logfile=%filenamenew%.txt
echo log 保存为%logfile%
adb shell -v time>%logfile%
::echo abc>%logfile%
:END
@pause
引用查询资料出处 http://www.miui.com/article-272-1.html
作者:Amour.Wang
对于android 手机调试或测试中经常需要查看手机的logcat 输出,对于开发者平时一般都是直接使用IDE 查看logcat 输出,但是在有些情况下比如:1.单纯做测试,IDE 工具保存比较麻烦,或者没有IDE 工具的情况下,这时如果需要抓手机log 就比较麻烦。 本文主要针对在没有安装android 开发环境或不想每次都打开IDE 抓log 的情况下,提供了一下方便抓log的脚本及配置,本文的最后提供工具的下载。
一、Logcat 的简单介绍
1、安装好android 设备驱动后,配置好ADB 环境变量后,就可以直接在windows 的命令行窗口输入 adb logcat 就会显示当前的log
二、过滤器的使用
网上太多的文章都写的太详细了,在我自己看来反而觉得有点不太好理解,我下面用3个简单的实例说明一下
1. 过滤某个级别的log,如下即过滤Warning 以上级别的
adb logcat *:W
2. 过滤 tag 为 ActivityManager级别为I 以上的
adb logcatActivityManager:I
3. 过滤 tag 为 ActivityManager级别为I 以上的 或者 tag 为 MyApp log级别为d 以上的
adb logcatActivityManager:I MyApp:d
三、输出格式
日志信息包括了许多元数据域包括标签和优先级。可以修改日志的输出格式,所以可以显示出特 定的元数据域。可以通过 -v 选项得到格式化输出日志的相关信息.
这边还是通过一个常用的例子来说明
adb logcat –v time 通过 –v time 使输出的log 包含时间
如下为具体的标签说明
brief — Display priority/tag and PID of originating process (thedefault format).
process — Display PID only.
tag — Display the priority/tag only.
thread — Display process:thread and priority/tag only.
raw — Display the raw log message, with no other metadata fields.
time — Display the date, invocation time, priority/tag, and PID of theoriginating process.
long — Display all metadata fields and separate messages with a blanklines.
其他命令参考:
Option | Description |
-b<buffer> | 加载一个可使用的日志缓冲区供查看,比如event 和radio . 默认值是main 。具体查看Viewing Alternative Log Buffers. |
-c | 清楚屏幕上的日志. |
-d | 输出日志到屏幕上. |
-f<filename> | 指定输出日志信息的<filename> , 默认是stdout . |
-g | 输出指定的日志缓冲区,输出后退出. |
-n <count> | 设置日志的最大数目<count> ., 默认值是4,需要和 -r 选 项一起使用。 |
-r <kbytes> | 每<kbytes> 时 输出日志,默认值为16,需要和-f 选 项一起使用. |
-s | 设置默认的过滤级别为silent. |
-v <format> | 设置日志输入格式,默认的是brief 格 式, |
要知道更多的支持的格式,参看Controlling Log Output Format. |
1.前提条件,安装好android 手机的驱动,并且在手机端授权ADB 调试
2.双击BAT 文件自动开始抓log 并使用当前时间作为文件名保存log
3.ctrl +C 退出 抓log
脚本文件如下,拷贝到记事本,另存为 xxx.bat(另外需要xxx.bat 同一目录下有adb的工具,附件压缩包内有提供)
@echo off
cd /d %~dp0
set devfile=%tmp%/devices.txt
:RESTART
set deviceCount=-1
for /f "tokens=1" %%iin (%devfile%) do (
SetLocal EnableDelayedExpansion
set /a deviceCount+=1
set list!deviceCount!=%%i
)
echo 当前连接设备数 %deviceCount%
if %deviceCount%==0 (
echo 当前没有连接设备,请连接设备
goto END
) else if %deviceCount%==1 (
echo %list1%
goto STARTLOG
) else if %deviceCount% gtr 1 (
echo 当前连接超过一个设备,请断开其他设备
goto END
)
:STARTLOG
for /f "tokens=1-4 delims=/:." %%i in("%date:~0,4%_%date:~5,2%_%date:~8,2%_%time%") do setfilename=%%i_%%j_%%k_%%l
set filenamenew=%filename%
set filenamenew=%filenamenew: =%
set logfile=%filenamenew%.txt
echo log 保存为%logfile%
adb shell -v time>%logfile%
::echo abc>%logfile%
:END
@pause
引用查询资料出处 http://www.miui.com/article-272-1.html
相关文章推荐
- Android开发之Activity的创建跳转及传值
- android 系统服务(service)
- Android案例
- Android动画-Drawable Animation
- 解决谷歌为Android系统提供的支持库android-support-v4。jar不能绑定查看源码的问题
- Android studio 配置出炫酷logcat颜色
- 高德地图-AndroidStadio-No implementation found for long com.autonavi.amap.mapcore.MapCore.nativeNewInsta
- Android Studio代码着色插件
- Android同步类:Mutex和Condition的使用方式
- Vungle Android和iOS SDK高级设置——方法和监听含义和对比
- Android 手机拍照适配攻略
- Android 学习笔记之十一 2048的实现分析
- IDA 调试android 遇到的问题及解决方案
- Android实现带有记住密码功能的登陆界面
- 关于在android中,如何一步到位,全局替换控件样式的一些看法
- Android屏幕自适应研究
- 学习Android SQLite 的介绍和使用(二)
- android studio 查找sha1
- Android动画
- Android设计模式之建造者模式——AlertDialog