一.adb介绍

1.adb(Android Debug Bridge)是android sdk的一个工具

2.adb是用来连接安卓设备和PC端的桥梁,用户可以通过adb在电脑上对手机进行一系列操作

3.具有安装卸载apk、拷贝推送文件、查看设备硬件信息、查看应用程序占用资源、在设备执行shell命令等功能

二.adb常见命令

1.adb –help:查看帮助手册;

2.adb devices:检测连接到电脑的安卓设备;

3.adb connect/disconnect ip:port:连接模拟机(夜神模拟器的端口号默认为62001,本地IP为127.0.0.1;(如果连接不上模拟器,可以把夜神模拟器的Nox_adb.exe替换为adb的adb.exe文件。)

4.adb shell:登录设备,进入到Linux命令环境,相当于执行远程命令。ll,ls,cd等命令都可以用;

5.adb pull<手机文件路径><本机路径>:从手机中拉取信息到本地电脑上;

6.adb push<本机文件路径><手机路径>:从本地电脑推送到手机上;

(注意:如果出现read-only file 只读文件,可以输入命令adb root回车再输入命令adb remount回车。如果pull时出现0 files pulled. 0 files skipped 空文件不能pull到本地,可以用touch新建文件,mkdir新建的空目录pull就会出现0 files pulled. 0 files skipped的结果)

7.adb install 文件绝对路径/xxx.apk:为了获取apk的安装包所在地址,可以把apk直接拖到cmd窗口获取,返回success就说明成功了;

8.adb uninstall <文件包名>:卸载;

打开要卸载的软件,输入adb shell dumpsys activity | find “mFocusedActivity”(android7以下),adb shell dumpsys activity | find “mResumedActivity”(Android8以上),查看软件包名,再输入adb uninstall <文件包名>删除软件。

adb 打开scheme adb 打开手电筒_Time

9.终止adb服务:adb kill-server

10.启动adb服务,通常在adb出现问题时,结合kill server命令一起使用:adb start-server

11.启动App:adb shell am start -n 包名/启动入口

12.清除应用的数据和缓存:adb shell pm clear 包名

13.坐标点击:adb shell input tap x轴坐标 y轴坐标

 14.adb logcat -v time > <文件路径>:打印日志信息

三.adb日志

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

使用方式:adb logcat

2.真机的开发者选项里有个选项叫“日志记录器缓冲区大小,默认大小是256K,日志是循环写入环形缓冲区的,通常情况下,写满时最旧的日志会被删除以新的日志内存空间,而模拟机一般没有。

3.日志组成

开始:

(1)写下日志的时间(-v time)

(2)优先级:

1)V:verbose,啰嗦,最低级别;

2)D:debug,调试,较常见;

3)I:info,信息,一般是提示性的;

4)W:warning,警告;

5)E:error,错误

(3)标签:标明日志发起者和方便日志的筛选过滤

(4)PID:进程号

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

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

(1)搜索exception关键字,根据时间,包名定位;

(2)搜索fatal/cause by 关键字;

(3)Force finish关键字

5.ANR(application not responding)

应用无响应,当操作在一段时间内系统无法处理时,系统层面会弹出ANR对话框。为用户在主线程长时间被阻塞时提供处理交互,提高用户体验。是Android系统一种自身检测机制。

(1)logcat日志

通过logcat日志进行分析(关键字搜索exception或anr),格式如下:

Time E/ActivityManager(PID): ANR in <进程名><部件名>

Time E/ActivityManager(PID): PID:<应用进程ID>

Time E/ActivityManager(PID): Reason: <原因提示>

Time E/ActivityManager(PID):

Time E/ActivityManager(PID):<process CPU state>

注意:如果通过搜索anr关键字无具体Java报错信息,可以用以下方法获取日志。

adb 打开scheme adb 打开手电筒_包名_02

(1)trace文件

通过trace文件进行分析:adb shell登录后cd /data/anr进入anr查看anr具体内容,ctrl+c退出后把trace文件pull到本地。但是trace文件只能保留最后一次发生anr时的trace信息。

adb 打开scheme adb 打开手电筒_adb 打开scheme_03

(1) Dropbox服务

通过dropbox可以收集系统一段时间内的异常信息,包括anr和crash。adb shell登录后cd /data/system/dropbox进入Dropbox查看具体内容,ctrl+c退出后把整个Dropbox文件pull到本地。如图:

adb 打开scheme adb 打开手电筒_Time_04