Android抓取各种log的方法

转自

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  //查询所有service的状态

Android系统(118)---Android抓取各种log的方法相关推荐

  1. android log抓取方法,Android系统之Android抓取各种log的方法

    Android系统之Android抓取各种log的方法 2018年11月25日 | 萬仟网移动技术 | 我要评论 android之android抓取各种log的方法 1.logcat (四类log b ...

  2. Android 系统(38)---Android抓取各种log的方法

    Android抓取各种log的方法 http://blog.csdn.net/matthewei6/article/details/50596983 1.logcat (四类log buffer是ma ...

  3. Android 如何抓取开机Log

    一般分析开机失败或者开机过程异常问题,都牵涉到如何抓取开机log的问题,参照如下抓取log: 1.如果开机过程还没有出现开机动画,就已经异常,直接抓取UART串口log: 2.如果开机动画已经显示,后 ...

  4. Android 7.0解决抓取不到https请求的问题

    Android 7.0解决抓取不到https请求的问题 参考文章: (1)Android 7.0解决抓取不到https请求的问题 (2)https://www.cnblogs.com/meitian/ ...

  5. 详解usbmon抓取的log各字段的含义

    详解 usbmon 抓取的 log 各字段的含义 在上篇文章中,我们已经介绍了如何在 linux 下使用 usbmon 抓取 usb 总线上数据的方法.(https://www.cnblogs.com ...

  6. 【android系统】android系统升级流程分析(一)---recovery模式中进行update包升级流程分析

    今天我们直接来看下android中具体的升级过程是如何的. 升级流程概述 升级的流程图: 升级流程分析 第一步:升级包获取 升级获取可以通过远程下载,也可直接拷贝到指定目录即可. 第二步:准备升级 然 ...

  7. android 获取hdmi数据格式,一种基于Android系统HDMI同显时节省带宽的方法与流程

    本发明涉及一种基于Android系统HDMI同显时节省带宽的方法,属于计算机领域. 背景技术: 通常很多移动设备都配备了小尺寸的LCD屏幕,有些使用场景为了能提供更好的交互控制操作,需要移动设备在大尺 ...

  8. Android系统架构-[Android取经之路]

    摘要:本节主要来讲解Android的系统架构 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! 欢 ...

  9. android 服务端技术,移动应用服务器端开发(基于JSP技术)-2017 Android系统构架 Android系统构架.docx...

    Android系统构架 PAGE 1 目 录 TOC \o "1-3" \h \z \u 一.Android系统构架 1 二.Linux内核层 2 三.系统运行库层 3 (一)系统 ...

最新文章

  1. 我如何进入Docker容器的shell?
  2. 如何在代码中获取Java应用当前的版本号?
  3. 移动视频-你选择了谁?
  4. 打造 通用的 支持多数据库 操作的 DBHelper
  5. Thirft框架介绍
  6. GPU Gems1 - 17 环境遮挡
  7. 【spring boot】8.spring boot的日志框架logback使用
  8. 开源netcore前后端分离,前端服务端渲染方案
  9. 听了一堂《**学院》的课,我也是醉了
  10. Vuejs:组件 slot 内容分发
  11. Python+django建站入门篇(2):素数判断
  12. pandas之在Excel上绘制柱形图
  13. python︱模块加载(pip安装)以及pycharm安装与报错解决方式
  14. 一个真实的实例: Java程序员的成长经历
  15. vs2010 C# 如何将类做成DLL 再从另一个项目中使用这个类
  16. 汉字转拼音(支持多音字)
  17. HTML页面跳转的5种方法。
  18. 《C陷阱与缺陷》读书笔记
  19. yocto 更新补丁方法
  20. Software_C#_grammer_Deletegate--Strategy

热门文章

  1. 数据结构与算法分析(一)——C++文件读写+py文件读写
  2. 向shell脚本中传入参数
  3. tcp协议栈优化1-增加TCP初始拥塞窗口
  4. Java面试宝典2013版(11版块1000题)
  5. 【linux C】C语言中常用的几个函数的总结【二】
  6. 【BZOJ2989】数列(CDQ分治,扫描线)
  7. mybatis 多参数处理
  8. BZOJ solve 100 纪念
  9. CSS Margin(外边距)
  10. 关于INADDR_ANY