一、基本命令
Adb默认目录
#Windows
C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
#MacOS
/User/<username>/Library/Android/sdk/platform-tools/adb
adb devices#列出当前已链接的设备
adb tcpip 5555#指定adb服务设备监听在5555端口
adb connect <IP>:<PORT>#链接设备
C:\Program Files\Genymobile\Genymotion 文件中的adb.exe文件是解决版本问题的关键
操作举例
adb devices#列出设备信息(包含ip端口)
adb -s 127.0.0.1:5555 shell #链接设备,链接成功可以进行命令执行例如whoami
端口管道
ssh -i ssh_key username@10.10.10.10 -L 5555:127.0.0.1:5555 -p 2222
adb connect 127.0.0.1:5555
adb安装应用
adb install test.apk
adb install -l test.apk forward lock application
adb install -r test.apk replace existing application
adb install -t test.apk allow test packages
adb install -s test.apk install application on sdcard
adb install -d test.apk allow version code downgrade
adb install -p test.apk partial application install
adb卸载应用
adb uninstall com.test.app
adb uninstall -k com.test.app Keep the data and cache directories around after package removal
过滤文件
adb shell pm list packages -f <FILTER-STR>#过滤查看相关的包
adb shell pm list packages -d <FILTER-STR>#过滤仅展示不可用的包
adb shell pm list packages -e <FILTER-STR># 过滤仅展示可用的包
打印已给出的apk路径
adb shell pm path com.android.phone
删除所有跟这个包相关的数据
adb shell pm clear com.test.abc
二、文件管理
下载指定文件到您的电脑
adb pull /sdcard/demo.mp4 ./
上传一个指定文件从你的电脑到连接的设备
adb push test.apk /sdcard
三、截屏记录
制作一个设备截屏
adb shell screencap /sdcard/screen.png
录屏
adb shell screenrecord /sdcard/demo.mp4
adb shell screenrecord --size <WIDTH*HEIGHT>
adb shell screenrecord --rotate #旋转90度
adb shell screenrecord --verbose
四、shell
获取设备内部shell
adb shell
adb shell ls#在设备内部执行命令
五、pm
执行在shell内部的命令
pm list packages#列出已安装的包
pm path <package name>#获取包的apk文件路径
am start[<options>]#启动一个activity
六、进程
adb shell ps#获取你的应用进程的pid
adb shell pidof com.your.application#寻找你应用的pid
七、系统
adb root#以root权限重启adbd守护进程
adb sideload <update.zip>#刷新存储更新包
八、日志
adb logcat | grep 4526#利用pid过滤输出logcat(linux/macos)
adb logcat | findstr 4526#(windows用法)
adb logcat *:V#过滤只展示Verbose等级
adb logcat *:D#只展示Debug等级
adb logcat *:I#只展示Info级
adb logcat *:W#只展示Warning级别
adb logcat *:E#只展示Error级别
adb logcat *:F#只展示Fatal级别
adb logcat *:S#最高级别,从没打印过
其他的用法
adb logcat -b radio#查看包含radio/telephony的缓存信息
adb logcat -b event#查看事件相关的缓存信息
adb logcat -b mian#默认
adb logcat -c #清除全部日志并退出
adb logcat -d#打印日志到屏幕并退出
adb logcat -f test.logs#写日志信息到test.logs文件中
adb logcat -g #打印指定日志缓存的大小并退出
adb logcat -n <count>#设置流转日志最大值
九、打印系统数据
adb shell dumpsys battery
adb shell dumpsys activity
十、备份
adb shell pm list packages -f -3
adb bakcup -f myapp_backup.ab -apk com.myapp#备份设备
adb restore myapp_bakcup.ab#存储相同或者其他设备
( printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" ; tail -c +25 myapp_backup.ab ) | tar xfvz -#指定备份的内容