博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android抓取各种log的方法
阅读量:4108 次
发布时间:2019-05-25

本文共 1598 字,大约阅读时间需要 5 分钟。

转自

http://blog.csdn.net/matthewei6/article/details/50596983

1、logcat 

 (四类log buffer是main,radio,system,events)

adb wait-for-device logcat  
adb logcat -v time > logcat.txt      //默认是-b main -b system
adb logcat -v time -b main        //main log

adb logcat -v time -b radio
        //radio log
adb logcat -v time -b system        //system log
adb shell dmesg                       //kernel log
adb logcat -v time -b events

2、anr log
adb pull /data/anr

3、tombstone log
adb pull /data/tombstones

4、core log
adb pull  /data/log/core

5、开机log
adb shell dmesg > dmesg.txt

6、logcatch
adb pull /data/logcatch

7、qxdm log
adb pull /sdcard/logs

8、 hprof log
在分析app 时,我们通常需要分析app 的java heap 资料,如分析java 的memory leak, 追查heap

中相关变量情况等。

在android 中抓取app 的hprof 操作方式有下面几种:

第一种方式: 使用am 命令

   adb shell am dumpheap {Process} file

   如 adb shell am dumpheap com.android.phone /data/anr/phone.hprof

   adb pull /data/anr/phone.hprof

第二种方式: 使用DDMS 命令

   在DDMS 中选择对应的process, 然后在Devices 按钮栏中选择Dump Hprof file, 保存即可

第三种方式: 通过代码的方式

   在android.os.Debug 这个class 中有定义相关的抓取hprof 的method.

如: public static void dumpHprofData(String fileName) throws IOException;

这样即可在代码中直接将这个process 的hprof 保存到相对应的文件中,注意这个只能抓取当时的

process.

如果想抓其他的process 的hprof, 那么就必须通过AMS 帮忙了。

可以先获取IActivityManager 接口,然后调用它的dumpheap 方法。具体的代码,大家可以参考

frameworks/base/cmds/am/src/com/android/commands/am/am.java 中的调用代码

抓取回hprof 后,就可以用hprof-conv 命令将DVM 格式的hprof 转换成标准的java 命令的hprof

   hprof-conv in.hprof out.hprof

然后使用如MAT 之类的工具进行具体的分析

9、bugreport
adb bugreport > bugreport.txt

10、kernel log(只有从当前时间起的很少的log)
cat proc/kmsg > kmsg.txt

11、其他

adb shell dumpstate //各类信息,比如进程信息,内存信息,进程是否异常,kernnel的log等
adb shell dumpcrash
adb shell dumpsys  
你可能感兴趣的文章
Linux设备模型(总线、设备、驱动程序和类)之四:class_register
查看>>
git中文安装教程
查看>>
虚拟机 CentOS7/RedHat7/OracleLinux7 配置静态IP地址 Ping 物理机和互联网
查看>>
弱类型、强类型、动态类型、静态类型语言的区别是什么?
查看>>
Struts2技术内幕图书 转载
查看>>
Java异常分类
查看>>
项目中的jackson与json-lib使用比较
查看>>
Jackson Tree Model Example
查看>>
j2ee-验证码
查看>>
日志框架logj的使用
查看>>
js-高德地图规划路线
查看>>
常用js收集
查看>>
mydata97的日期控件
查看>>
如何防止sql注入
查看>>
maven多工程构建与打包
查看>>
springmvc传值
查看>>
Java 集合学习一 HashSet
查看>>
在Eclipse中查看Android源码
查看>>
Android-Socket登录实例
查看>>
Android使用webservice客户端实例
查看>>