android手机怎么连接adb:

1
2
3
4
1.通过usb线将手机连接到电脑
2.打开开发者选项中usb调
3.adb connect 设备ip
4.adb devices

android手机wifi远程调试:

1
2
3
4
1.通过usb线将手机连接到电脑
2.adb device能够检测到对应的设备
3.adb tcpip 5555确定手机端和电脑端的wifi通讯端口
4.拔掉usb线,再通过adb connect 自己手机IP地址

adb常用命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
adb --hep查看帮助手册
检测连接到电脑的安卓设备,这个是我们会经常用到的
adb pull <手机路径> <本机路径> 从手机中拉取信息放到本地电脑
adb push <本机路径> <手机路径>从本地推送信息到手机上去
adb devices检测命令。
adb shell----登录设备shell (命令行的人机界面),ll ls命令都可以用,进入到 linux命令环境了,相当于执行远程命令!
adb logcat--打印日志

adb install xxxapkrierew-为了获取apk的安装包所在地址,可以直接把apk拖到cmd的窗口获取,返回success就说明安装成功了!!
adb install-r xxx.apk -----保留数据和缓存文件,重新安装APK
adb uninstall com.tencent.mobilegg ---卸载应用
adb uninstall -k com,tencent,mobileqg ---卸载应用但保留数据和缓存文件
adb shell dumpsys activity | find "mFocusedActivity"---查看前台应用activity名
adb connect/disconnect 通过wifi进行远程连接手机进行调试
adb shell setprop <property> <value> 修改系统属性,从而影响设备的行为或配置
<property> 是要设置的系统属性的名称,<value> 是要为该属性设置的值。

adb logcat日志:

1
2
3
4
5
6
7
8
9
10
11
命令格式:adb logcat [选项] [过滤项]
选项解析:
1."-s"选项 : 只显示指定标签的日志; ------>adb logcat -s SWVDEC 显示SWVDEC标签的日志
2."-v"选项 : 设置日志的输出格式;----->adb logcat -v time 查看日志输出时间和线程信息
3."-c"选项 : 清空所有的日志缓存信息;---->adb logcat -c
4."-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;------->adb logcat -d
5."-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;------>adb logcat -t 5 输出日志缓冲区的最近5行
6."-g"选项 : 查看日志缓冲区信息; ------>adb logcat -g
7."-B"选项 : 以二进制形式输出日志; ----> adb logcat -B
8."-b"选项 : 加载一个可使用的日志缓冲区供查看,比如event和radio。默认值是main
9."-c"选项 : 清除缓冲区中的全部日志并退出(清除完后可以使用-g查看缓冲区)

崩溃日志/ANR查看:

1
2
3
4
5
1.崩溃日志查看关键字:FATAL EXCEPTION: main或cratch关键字
2.ANR问题查看关键字:ANR in/ 有提示anr堆栈信息在xx文件内如:Wrote stack traces to '/data/anr/traces.txt'
3.(/data/system/dropbox该目录需要root权限,系统自动存储最近崩溃的日志文件)
退出adb shell后直接拉去系统dropbox中的错误信息文件夹:
adb pull /data/system/dropbox C:\Users\11046\OneDrive\桌面\dropbox

四大组件相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
只查看当前Activity的包名(可能有多个)
adb shell dumpsys activity top | grep ACTIVITY

查看Activity详细信息
adb shell dumpsys activity top

也可以将输出重定向到文件中,下述命令会打印出所有应用的四大组件
adb shell dumpsys > info.txt

查看Activity任务栈
adb shell dumpsys activity activities

查看后台Service信息
adb shell service list

查看指定报名的数据库存储信息(包括存储的SQL语句,查看应用操作数据库信息)
adb shell dumpsys dbinfo 包名
  1. 操作相关
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
adb shell am force-stop 包名			# 强制关闭一个应用程序
adb shell input tap x y # 点击坐标点
adb shell input keyevent 82(keycode) # 发送按键
adb shell input text XXXX # 输入文本

录制日志到处到电脑本地

adb logcat -s > D:/logcat.txt

截屏
adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png
adb shell rm /sdcard/screen.png

录屏
adb shell screenrecord # 默认录制时间为180s
adb shell screenrecord --time-limit 10 /sdcard/demo.mp4 # 限制时间为10s及输出路径
adb shell screenrecord --size 1280*720 /sdcard/demo.mp4 # 指定分辨率
adb shell screenrecord --bit-rate 6000000 /sdcard/demo.mp4 # 指定比特率
adb shell screenrecord --verbose /sdcard/demo.mp4 # 在命令显示日志

拉取设备中的文件到本地(如遇权限问题,用chmod改一下权限即可)
adb pull <手机路径> <本机路径> 从手机中拉取信息放到本地电脑
adb push <本机路径> <手机路径>从本地推送信息到手机上去

推送文件到设备中
adb push

设备的端口转发(IDA中调试很常用)
adb forward 远程端协议:端口号 设备端协议:端口号

查看设备中可以被调试的应用的进程号
adb jdwp

进adb shell才可以执行

查看进程信息
ps | grep 过滤内容
ps -t 进程id

清空用户数据,安装,卸载
pm clear 包名
pm install apk文件
pm uninstall 包名

启动应用,服务,发送广播
am start -n 包名/包名.Activity名
am startservice -n 包名/包名.Service名
am broadcast -a 广播动作

查看设备ip地址
netcfg

查看设备端口号
netstat

运行Java代码
app_process 运行目录 运行主类

运行一个dex文件
dalvikvm -cp dex文件 运行主类

查看当前应用的CPU消耗信息
top

查看系统属性值
getprop 属性名称
  1. 刷机相关
1
2
3
adb reboot				# 重启手机
adb reboot bootloader # 重启到bootloader(刷机模式)
adb reboot recovery # 重启到recovery(恢复模式)
  1. 安装包相关
1
2
3
4
5
6
7
8
adb shell dumpsys package 包名		# 获取安装包信息
aapt dump badging xxx.apk # 查看应用包名package和入口activity名
dexdump xxx.dex # 查看一个dex文件的详细信息
adb install -r <apkfile> # 覆盖安装(保留数据域缓存文件,重新安装apk)
adb install -s <apkfile> # 安装apk到sd卡
adb install -d <apkfile> # 无视版本号安装
adb uninstall -k <package> # 卸载app(保留数据与缓存文件)
adb shell pm list packages # 查看所有安装app的包名
  1. 设备信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
adb shell cat /system/build.prop			# 设备信息
adb shell getprop [key] [value] # 设置/获取属性信息
adb shell dumpsys window displays # 设备分辨率
adb shell cat /sys/class/net/wlan0/address # MAC地址
adb shell dumpsys account # 账号信息
adb shell dumpsys cpuinfo # CPU信息
adb shell cat /proc/cpuinfo # CPU序列号
adb shell dumpsys wifi # Wifi信息
adb shell dumpsys SurfaceFlinger # UI绘制的各个层级信息
adb shell dumpsys window # 键盘,窗口和它们的关系
adb shell dumpsys usagestats # 每个应用的启动次数与时间
adb shell dumpsys statusbar # 状态栏相关的信息
adb shell dumpsys meminfo # 内存信息
adb shell dumpsys diskstats # 磁盘信息
adb shell dumpsys battery # 电池信息
adb shell dumpsys batterystats # 统计系统耗电量
adb shell dumpsys alarm # Alarm

6.日志相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
清除log缓
adb logcat -c

查看过滤日志,每条日志都有一个标记和优先级与之关联
标记:简短字符串,标识原始信息来源
优先级:V-明细、D-调试、I-信息、W-警告、E-错误、F-严重错误
adb logcat ActivityManager:I *:S

其他元数据字段
brief — 显示优先级/标记和原始进程的PID (默认格式)
process — 仅显示进程PID
tag — 仅显示优先级/标记
thread — 仅显示进程:线程和优先级/标记
raw — 显示原始的日志信息,没有其他的元数据字段
time — 显示日期,调用时间,优先级/标记,PID
long —显示所有的元数据字段并且用空行分隔消息内容
adb logcat -v thread

指定循环缓冲区
radio — 查看包含在无线/电话相关的缓冲区消息
events — 查看事件相关的消息
main — 查看主缓冲区 (默认缓冲区)
adb logcat -b radio

打印系统事件的日志,如触屏
adb logcat -b events -v time

导出ANR日志
adb pull data/anr/traces.txt # 老版本Android
adb bugreport # 高版本用(老版本导出出现 → adb: error: failed to stat remote object)

其他
adb shell cat /proc/iomem # 查看wifi密码(要root权限)
adb shell dumpsys activity|grep oom_adj # 设置线程的优先级
adb shell cat proc/pid/maps # 指定进程内存地址映射
adb shell cat proc/pid/smaps # 指定进程内存详细使用信息
adb shell procrank # VSS. RSS. PSS. USS 信息
adb shell procmem pid # 指定进程VSS. RSS. PSS. USS 详细信息
adb shell getevent -p # 查看可输入的设备
adb shell getevent /dev/input/event0 # 获得特定设备的输入信息
adb shell ps | findstr mobileqq # 查看报名中包含mobileqq的进程
adb get-serialno # 获取序列号
adb shell top # CPU和内存占用情况
adb shell top -m 6 # 占用内存前6的APP
adb shell top -n 1 # 刷新一次内存信息,然后返回
adb shell procrank # 各进程内存使用情况
adb shell ps -x [PID] # 指定进程状态
adb shell cat /proc/iomem # 查看IO内存分区