一、如何使用电脑连接夜神模拟器(手机 )
(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 指定的文件存放位置