在APP測(cè)試時(shí)话原,需要經(jīng)常抓取log分析問題倚聚,所以考慮使用adb命令結(jié)合批處理的形式二驰,寫一個(gè)PC端使用的抓包工具,方便抓包秉沼;
源碼如下:(復(fù)制粘貼到txt文檔后修改擴(kuò)展名為bat或者cmd即可運(yùn)行使用)
@echo off
mode con cols=75 lines=30 &color 3f
title 安卓抓包器[by wei.xu]
if not exist? D:\log md D:\log
:first
echo ━━━━━━━━━━━━━━━━━━? 使用說(shuō)明? ━━━━━━━━━━━━━━━━━━
echo 1.電腦有配置adb環(huán)境唬复,安卓設(shè)備有開啟USB調(diào)試并授權(quán);?
echo 2.此腳本可獲取安卓實(shí)時(shí)log乍恐、事后log百匆、無(wú)響應(yīng)log;? ?
echo 3.確保電腦只連接了一臺(tái)安卓設(shè)備;? ? ? ? ? ? ? ? ? ? ? ? ? ?
echo 4.log保存位置 D:\log;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
::檢查設(shè)備是否連接
adb -d get-state | findstr device>nul && goto main
adb devices
echo 設(shè)備未正常連接栈戳,請(qǐng)連接...&pause>nul
cls
goto first
exit
:main
echo 抓取實(shí)時(shí)log镊掖,請(qǐng)扣1;
echo 抓取事后log,請(qǐng)扣2;
echo 導(dǎo)出無(wú)響應(yīng)log苫昌,請(qǐng)扣3.(需要root權(quán)限)
choice /c:123 /m:"請(qǐng)選擇→"
if %errorlevel%==1 goto ss
if %errorlevel%==2 goto sh
if %errorlevel%==3 goto anr
goto main
exit
:ss
set /p n=請(qǐng)輸入需要保存的log文件名稱:
echo 請(qǐng)開始操作手機(jī)袜硫,操作完成之后,按Ctrl+C世杀,再選擇N結(jié)束...
adb -d logcat -c
adb -d logcat -v time>D:\log\%n%.log
echo Log已保存至D:\log目錄下;
echo 請(qǐng)按任意鍵退出...&pause>nul
exit
:sh
echo 正在抓取log肝集,可能會(huì)耗時(shí)幾分鐘...
adb -d bugreport
echo bugreport_Log已保存至%cd%瞻坝;
adb -d logcat -c
echo 請(qǐng)按任意鍵退出...&pause>nul
exit
:anr
adb -d shell su 0 "cp -r /data/anr/ /sdcard/anrlog"
if %errorlevel% equ 0 (goto pullanr) else (echo 設(shè)備無(wú)法獲取root權(quán)限,無(wú)法獲取無(wú)響應(yīng)log.&pause>nul)
exit
:pullanr
adb -d pull /sdcard/anrlog D:\log
adb -d shell rm -rf /sdcard/anrlog
echo --------------------------------------------------------------------
echo 無(wú)響應(yīng)log已導(dǎo)出至D:\log\anrlog杏瞻,請(qǐng)按任意鍵退出...&pause>nul
start explorer D:\log\anrlog
exit
運(yùn)行效果如下: