APP(二)adb 日志分析

    • 掌握常见adb命令

    • 了解 Android 系统日志文件

    • 示例分析ANR & crash 日志

1、ADT、SDK、ADB?

  • ADT(Android development tools)--- Android开发工具。 在Eclipse上调用各种与android有关的插件,便要ADT.
  • SDK(software development kit)---- 软件开发部件。要用到各种android平台,好比android2.3等,便要有SDK
  • ADB(Android debug bridge)是用来连接安卓手机和PC端的桥梁,通过adb服务,在PC端命令行界面对手机或者模拟器进行全面的操作。

2、adb常见命令

adb -help 查看帮助手册

adb devices 检测连接到电脑的安卓设备,这个是我们会经常用到的检测命令。

adb connect/disconnect ip:端口号 通过wif进行远程连接手机进行调试,手机和电脑在连接同一个路由器5555

adb se---登录设备shell (命令行的人机界面),II Is命令都可以用,进入到linux命令环境了,相当于执行远程命令!

adb pull<手机文件路径> <本机路径> (铺欧)从手机中拉取信息放到本地电脑上,ll相当于开门

adb push <本机文件路径> <手机路径> (朴实)从本地推送信息到手机上去

adb install 安装包的路径(直接拖路径) -为了获取apk的安装包所在地址,可以直接把apk拖到cmd的窗口获取,返回success就说明安装成功了!

adb uninstall com.tencent. mobileqq -应用包名

adb shell dumpsys activity | find "mFocusedActivity" --查看前台应用包名

adb logcat     打印log信息        =======adb logcat -V time > d:logcat.txt

3、logcat日志文件

  • android 日志系统提供 了记录和查看系统调试信息的功能,日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过logcat命令来查看和使用
  • 使用方式:
    • [adb] logcat [<option>]... [<fiter-spec>].  
  • logcat是以如下开头的:
  • 1. ------- beginning of xox
  • 开发者选项,有个选项叫做” 日志记录器缓冲区大小”,默认是256K,日志是循环写入环形缓冲区的。在通常情况下,写满时最旧的日志会被删除以给新输出的日志留内存空间一真机设置,模拟器一般没有

4、logcat日志文件分析

输出的日志格式如下所示:

由五部分组成:

    • 1.写下日志时的时间,如上中01-11 09:39:35.209
    • 2.优先级,在Android中, 日志的优先级从低到高分以下几种:
      • V- -Verbose (嘜嗦,最低级别,开发调试中的一些详细信息,仅在开发中使用,不可在发布产品中输出)
      • D-Debug (调试,用于调试的信息,可以在发布产品中关闭,比较常见)
      • I- -Info (信息,一般提示性的消息)
      • W-Warning (警告)
      • E- Error (爱若儿)(错误,已经出现可影响运行的错误,比如应用crash时输出的日志)
    • 3.标签(tag),标明日志发起者和方便日志的过滤筛选,如上中ActivityManager. 类和模块。
    • 4. PID (进程ID),如上中491
    • 5.正文,本日志的主体内容

5、发生crash如何分析---产生运行崩溃的报错

发生 crash,adb logcat 获取日志分析:

    • 1、搜索 exception 关键字,根据时间,包名定位
    • 2、搜索fatal 、caused by关键字

6、何为ANR?

ANR全名 Application Not Responding,也就是应用无响应当操作在- -段时间内系统无法处理时,系统层面会弹出右图那样的

ANR对话框

    • 为用户在主线程长时间被阻塞时提供处理交互, 提高用户体验
    • Android 系统一 种自身检测机制

6.1发生ANR如何分析--应用无响应

系统在发生ANR时,会通过三种方式记录信息:

    • Logcat日志
    • Trace文件
    • DropBox服务

ANR分析-01

通过Logcat日志进行分析:

日志格式

    • ActivityManager: ANR in [进程名]([部件名])
    • ActivityManager: PID:[应用进程ID]
    • ActivityManager: Reason:[原因提示]
    • [Process CPU state]

ps:通过搜索 anr 关键字,若无具体 java 报错信息,继续另一种方法获取日志

 

ANR分析-02

通过Trace(译:锤死)文件进行分析:     /data/anr/

Dump stack trace信息

Dump的进程包括:当前应用进程,父进程,主进程,persistent进程, 以及CPU占用率排在前几位的(最多5个)进程

ps:只能记录最后-次发生的anr的信息

 

ANR分析-03

data/anr/traces.txt 文件里面只能保留最后一次发生ANR时的traces信息

    • 通过dropbox可以收集系统一段时间内的异常信息 (包括ANR、crash)
    • /data/system/dropbox是dropbox指定的文件存放位置

*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!******* 

猜你喜欢

转载自www.cnblogs.com/shouhu/p/12495911.html
今日推荐