在APP测试时,需要经常抓取log分析问题,所以考虑使用adb命令结合批处理的形式,写一个PC端使用的抓包工具,方便抓包;
源码如下:(复制粘贴到txt文档后修改扩展名为bat或者cmd即可运行使用)
@echo off
mode con cols=75 lines=30 &color 3f
title 安卓抓包器[by wei.xu]
if not exist D:\log md D:\log
:first
echo ━━━━━━━━━━━━━━━━━━ 使用说明 ━━━━━━━━━━━━━━━━━━
echo 1.电脑有配置adb环境,安卓设备有开启USB调试并授权;
echo 2.此脚本可获取安卓实时log、事后log、无响应log;
echo 3.确保电脑只连接了一台安卓设备;
echo 4.log保存位置 D:\log;
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
::检查设备是否连接
adb -d get-state | findstr device>nul && goto main
adb devices
echo 设备未正常连接,请连接...&pause>nul
cls
goto first
exit
:main
echo 抓取实时log,请扣1;
echo 抓取事后log,请扣2;
echo 导出无响应log,请扣3.(需要root权限)
choice /c:123 /m:"请选择→"
if %errorlevel%==1 goto ss
if %errorlevel%==2 goto sh
if %errorlevel%==3 goto anr
goto main
exit
:ss
set /p n=请输入需要保存的log文件名称:
echo 请开始操作手机,操作完成之后,按Ctrl+C,再选择N结束...
adb -d logcat -c
adb -d logcat -v time>D:\log\%n%.log
echo Log已保存至D:\log目录下;
echo 请按任意键退出...&pause>nul
exit
:sh
echo 正在抓取log,可能会耗时几分钟...
adb -d bugreport
echo bugreport_Log已保存至%cd%;
adb -d logcat -c
echo 请按任意键退出...&pause>nul
exit
:anr
adb -d shell su 0 "cp -r /data/anr/ /sdcard/anrlog"
if %errorlevel% equ 0 (goto pullanr) else (echo 设备无法获取root权限,无法获取无响应log.&pause>nul)
exit
:pullanr
adb -d pull /sdcard/anrlog D:\log
adb -d shell rm -rf /sdcard/anrlog
echo --------------------------------------------------------------------
echo 无响应log已导出至D:\log\anrlog,请按任意键退出...&pause>nul
start explorer D:\log\anrlog
exit
运行效果如下: