ADB(android debug bridge)

鲜于德业
2023-12-01

一、基本命令

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 -#指定备份的内容

 类似资料: