在安卓开发中我们常常需要获取日志,通常我们可以通过adb logcat 命令获取日志。同样,我没有可以通过脚本获取。其实质也是通过adb命令实现,只是把命名写入bat文件中,在win系统中直接双击就可以运行文件中的命令,而不需要我们在cmd中输入。下面分析几种获取日志的方法。
1.我们想抓取实时日志,当前小张会说我直接在androidstudio logcat里面就可以看了谁要用你的工具。老张抿嘴一笑,小样。有时候一些情况比如端口问题,或者日志堆积问题,导致我们有一天发现我们的logcat并没有输出日志,或者我们想把日志保留下来慢慢分析,毕竟有些问题并不是一眼就看出问题的。这时候我们可以运行这个工具,然后执行我们的操作。抓我们想要的日志。
adb wait-for-device
adb devices
adb shell logcat -v threadtime >"%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%log.txt"
pause我们想把我们手机里面的日志,anr carsh 等等都取出来
@echo off
::V1.0 2021-1-18::各个系统不同,可以根据需求添加或者删除不必要的目录下的数据获取
echo Version:Get Android All Log V1.0
echo.echo currentTime:%time% Now %time:~0,2%:%time:~3,2%:%time:~6,2%:%time:~9,2%:@
set date_time="%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%_%time:~6,2%%time:~9,2%"
::设置显示的文件夹名称
set Folder="Logs_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%_%time:~6,2%%time:~9,2%"
echo 日志文件夹:%Folder%
mkdir %Folder%::获取root权限,下面pull一些隐私目录的数据需要root权限
adb remount
adb root
::创建文件夹
mkdir %Folder%\device
::获取系统的所有app服务
adb shell ps -A > %Folder%\device\ps.txt
::获取系统的cup等占用情况
adb shell top -b -n 1 > %Folder%\device\top.txt
::获取系统的cup前十个占用最多的进程信息
adb shell top -b -n 1 -H -m 10 -s 6 -o pid,tid,user,pr,ni,%%cpu,s,virt,res,pcy,cmd,name > %Folder%\device\top2.txt
::获取系统的进程内核信息
adb shell cat /proc/cmdline > %Folder%\device\cmdline.txt
::获取系统的进程内存占用信息
adb shell cat /proc/meminfo > %Folder%\device\meminfo.txt
::获取系统的cup信息
adb shell cat /proc/cpuinfo > %Folder%\device\cpuinfo.txt
::获取系统的prop属性信息
adb shell getprop > %Folder%\device\getprop.txt
::获取系统的内存大小信息
adb shell df -h > %Folder%\device\df.txt::获取系统的当前界面截图
adb shell screencap /mnt/sdcard/Pictures/capture.png
adb pull /mnt/sdcard/Pictures/capture.png %Folder%\capture.png::获取系统的dumpsys信息,包含dumpsys package XXX的信息
mkdir %Folder%\dumpsys
adb shell dumpsys > %Folder%\dumpsys\dumpsys.txt::获取系统的缓存日志
adb shell logcat -v threadtime -d > %Folder%\logcat.txt::获取系统的各目录下的日志,根据不同系统进适配
::系统Android日志
adb pull /data/misc/logm %Folder%\android_logs
::Dalvik、状态监视调试器、C层代码以及libc的一些问题导致的错误日志
adb pull /data/tombstones %Folder%\tombstones
::系统ANR异常日志
adb pull /data/anr %Folder%\anr
::系统内核日志
adb pull /sys/fs/pstore %Folder%\pstore
::系统内核应用程序崩溃数据
adb pull /data/system/dropbox %Folder%\dropbox
::系统??日志
adb pull /data/log/reliability %Folder%\reliability_system
adb pull /data/vendor/log/reliability %Folder%\reliability_vendor
::系统settings下的system、secure、global等属性
adb pull /data/system/users/0 %Folder%\settings::获取系统的recovery信息
mkdir %Folder%\recovery
adb pull /splash2/recovery %Folder%\recoveryecho.
echo ==========log抓取完成==========
pause
adb pull 命令是取设备中的文件,取日志常用工具,基本上就是 adb pull 系统文件目录 这样可以把文件取出来。
其中android 系统日志 不同设备和手机厂商可能不一样,有些是data/android_log,这都不是重点,重点是只要我们知道日志在哪里,都可以通过adb pull 取出来。好啦,就分析到这里。