APP日志分析

一、如何使用电脑连接夜神模拟器(手机    )

(1)adb devices  连接设备 

        语法: adb devices

(2)打开模拟器的关于手机→点击多次版本号→处于开发模式→返回上一级→点击开发者模式→点击usb调试模式


(3)如果adb devices 没有出现 127.0.0.1:62001的话 ,默认为是没有连接设备,请连接设备。

         语法: adb conect 127.0.0.1:62001

(4)连接完成后,再次输入 adb  devices ,跟(1)一致,就表示连接成功了,然后可以操作了。


二、ADT、SDK、ADB——概念补充

    (1)ADT(Android development tools) ——Android开发工具。在Eclipse上调用各种与Android有关的插件,便于ADT

    (2)SDK(software development kit)——软件开发部件。要用到各种Android平台,好比Android2.3等,便要有SDK

    (3)ADB(重点)(Android debug bride)——是用来连接安卓手机和PC端的桥梁,通过adb服务,在pc端命令行界面对手机或模拟器进行全面的操作

三、ADB常用命令

    (1)adb --help  查看帮助手册

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


    (3)adb connect / disconnect    iP:端口号,通过wifi进行远程连接手机进行调试,手机和电脑在连接同一个路由器

    (4)adb  shell ——登录设备shell(命令行的人机界面),跟linux的命令行界面类似,相当于远程操作命令


    (5)adb  pull(理解为下载) ——<手机文件路径> <真机路径> ——从Android手机拉取到本机电脑中


    (6)adb push(理解为上传)—— <真机路径> <手机文件路径> ——从本地电脑中推送(发送)到手机中

    (7)adb install 包名.apk——为了获取apk的安装包所在地址,可以直接把apk拖到cmd的窗口获取,返回Success说明安装成功了。


    (8)adb uninstall 应用包名 ——卸载应用包名 (注意:安装的包名和应用包名不一致)

            获取应用包名第一种方法:进入 /data/data/目录查看应用包名    

             获取应用包名第二种方法:就是(9),打开安装的app,然后输入(9)的命令。       


    (9)adb shell dumpsys activity | find "mFocusedActivity"  ——查看前台应用包名


    (10)adb logcat ——打印log日志信息 

三、logcat——日志文件    

(1)Android日志系统提供了记录和查看系统调试信息的功能,日志都是从各种软件和一些系统的缓冲区记录下来的,缓冲区可以通过logcat命令来查看和使用

(2)使用方法: adb  logcat  [ 选项参数 ]   [ <fiter-spec> ]


(3)开发者选项。有个选项叫做"日志记录器缓冲区大小",默认是256K,日志是循环写入环形缓冲区 的,在通常情况下,写满时最旧的日志会被删除以新输出的日志留内存空间——真机设置,模拟器一般没有

四、logcat日志文件分析


    (1)由五部分组成: 1.写下日志时的时间,如图中12-12 01:00:57.857

    (2)2.优先级,在Android中,日志的优先级从低到高分以下几种

            ---V ——Verbose(啰嗦,最低级别,开发调试中的一些详细信息,仅在开发中使用,不可以发布产品输出)

            ---D ——Debug(调试,用于调试的信息,可以在发布产品关闭,比较常见)

            ---I ——Info (信息,一般提示性的信息)

            ---W ——warning (警告)

            ---E ——error(错误,已经出现可影响运行的错误,比如应用crash时输出的日志)

    (3)标签(tag),标明日志发起者和方便日志的过滤筛选,如上中ActivityManger。类和模块

    (4)Pid(进行PID)

    (5)正文,本日志的主体内容

    五、演示如何日志定位,抓取错误

    (1)遇到crash发生的错误,立马输入 adb logcat -v time > 保存的文件路径

    (2)然后根据报错关键字(exception)和报错时间和来定位错误所在的位置


    (3)搜索fatal /caused by 关键字

    (5)搜索 Force Finishing 关键字

六、何为ANR?

    (1)ANR全名(APPlication Not Responding),也就是应用无响应当操作一段时间内系统无法处理时,系统层面会弹出以下图的ANR对话窗口


    (2)为用户在主线程长时间被阻塞时提供处理交互,提高用户体验

    (3)Android系统一种自身检测机制

    (4)遇到anr这种问题,不是要提交bug,而是要建议开发人员优化这个问题

七、演示anr报错/日志定位

    (1)发现异常bug立马保存日志

    (2)根据关键字(Anr)和日志时间 来定位日志错误     (但是并不是想要的结果,不存在java,at的错误)


    (3)系统在anr发生时,会通过三种方式保存记录信息

              ① ---Logcat日志 ——以上都是logcat)

              ②---Trace文件 ——通过  /data / anr/ traces.txt 来分析

                                    ——Dump stack trace 信息

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

                                    ——ps:(只能记录最后一次发生的anr信息,很容易被替换掉)

                                    ——操作方法:(文件在 系统的 /data /anr / 目录中)

                                    ——操作方法:进入对应目录,并且吧traces.文件 下载到本地

              ③---DropBox服务 

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

                    ——通过dropbox可以收集系统一段时间内的异常信息(anr,crash)

                    ——/data / system / dropbox 是dropbox 指定的文件存放位置


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 调试桥 Android 调试桥 (adb) 是一个通用命令行工具,其允许您与模拟器实例或连接的 A...
    guanjm阅读 5,412评论 0 1
  • ADB介绍,它的主要功能有: ADB全称Android Debug Bridge, 是android sdk里的一...
    测试开发阅读 3,318评论 0 1
  • App测试关注点:ANR、APM ANR 一、ANR是什么 ANR(Application Not Respond...
    johnny_zhao阅读 5,275评论 0 0
  • 一、问:app测试与web测试的区别 参考答案: 1)、系统架构:web端的服务器更新后,客户端会自动同步更新;如...
    rilakkumaboy阅读 4,704评论 0 17
  • 早起,过去七天中星期天5点18分最早,星期五是5点59分最晚,平均每天5点29分起床,现在已经做到自然醒,但这几天...
    何林灿阅读 942评论 0 0