zoukankan      html  css  js  c++  java
  • Android log

    实时log

     1. 抓取应用程序的日志。

    # adb logcat -b main -v threadtime > /sdcard/main.log

     2. 抓取跟 radio/telephony 相关的信息。

    # adb logcat -b radio -v threadtime > /sdcard/radio.log

     3. 抓取系统事件日志,如触屏事件。

    # adb logcat -b events -v threadtime > /sdcard/events.log

    4. 抓取kernel log。

    # adb logcat -b kernel > /sdcard/kernel.log
    # adb shell dmesg > /sdcard/dmesg.log  //导出当前缓存的 kernel log
    # adb shell kmsgcat   //实时查看kernel log
    # adb shell cat /proc/kmsg > kernel.log  // 抓取 printk生成的内核消息

     5. 抓取 TCP/IP协议相关的日志

    # adb shell tcpdump -s 10000 -w /sdcard/tcpip.pcap

    状态log

    1.获取系统状态信息,如手机的内存信息、CPU信息、缓存等。

    # adb shell dumpstate > /sdcard/dumpstate.log

    2. 获取系统进程有关的信息。比如:当前运行的服务,进程信息等。

    # adb shell dumpsys

    如果想查看特定进程的特定service ,如 com.android.mms进程的meminfo,可以使用

    # adb shell dumpsys meminfo com.android.mms

    service有一下几种:

    meminfo   显示内存信息
    
    cpuinfo      显示CPU信息
    
    account     显示accounts信息
    
    activity      显示activities的信息
    
    window      显示键盘,窗口和它们的关系
    
    wifi           显示wifi信息    

    3. 获取 所有状态信息。包括 dumpsys,dmesg和dumpstate

    # adb shell bugreport > /sdcard/bugreport.log

    4. 查看内存信息

    # adb shell cat /proc/meminfo
    # adb shell cat /proc/vmstate  //查看虚拟内存信息

    log 分析

    1. 有没有捕获异常

    关键字: Exception

    2. ANR

    ANR的log一般都位于 /data/anr/,

    关键字: ANR

    例子: E/ActivityManager( 957): ANR in com.ipanel.join.appstore

    3. Fatal

    Fatal 一般比较严重,很多都很动态库和空指针有关,一般会接下来打印"Build fingerprint:" 或 ”NullPointerException“

    4. 动态库问题

    关键字: Build fingerprint

    5. 空指针问题

    关键字:NullPointerException

    6. kernel panic

    只有加载到内核空间的驱动模块才能直接导致kernel panic,你可以在系统正常的情况下,使用lsmod查看当前系统加载了哪些模块。
    除此之外,内建在内核里的组件(比如memory map等)也能导致panic。

    kernel panic分为 两种:

    hard panic(关键字: Aieee)

    soft panic(关键字: Oops)

    参考: http://www.chengxuyuans.com/Android/64872.html

    7.tombstone

     tombstone 一般是由Dalvik错误,状态监视调试器,C层代码以及libc的一些问题导致的。
    当系统发生tombstone的时候,kernel首先会上报一个严重的警告信号(signal),上层接收到之后,进程的调试工具会把进程中当时的调用栈现场保存起来,并在系统创建了data/tombstones目录后把异常时的进程信息写在此目录里面,开发者需要通过调用栈来分析整个调用流程来找出出问题的点。
    日志路径: /data/tombstones

    8. system crash

    kernel log会出现: service 'activity' died

    ‘activity' 可以是任意的activity。

    几种issue的区分

    1. kernel panic:板子会reset到固定页面,如"EMMD USB DUMP"。

    2. System hang: 触摸按压没有任何反应,console没有输出。

    3. UI hang: 系统UI没有任何反应,但是console或者adb shell 有输出。

    4. system crash: 可能会自动重启。

  • 相关阅读:
    Spring boot 2.0整合mybatis和druid数据源,基于starter方式
    MySQL 5.7 等高版本关于JDBC驱动的几个问题
    使用maven,包括配置阿里云镜像和eclipse的配置
    vue的学习
    Awesome Vue.js vue.js学习资源链接大全 中文
    vscode
    lombok插件安装
    Spring Boot 面试题
    Get started with Docker for Windows
    详解WebMvcConfigurer接口
  • 原文地址:https://www.cnblogs.com/miniren/p/4764150.html
Copyright © 2011-2022 走看看