ADB
工作原理
- 启动adb客户端时,该客户端会检查是否有adb服务器进程在运行。若没有则会启动服务器进程。
- 服务器启动后会与本地TCP端口5037绑定,并监听adb客户端发出命令
Android中常用的ADB命令
Android日常开发过程中不可避免的要与设备打交道,手机还可以通过USB进行连接调试,但电视、会议多媒体设备,往往会通过网络+ADB命令连接调试。所以掌握一些常用的ADB命令是至关重要的
与设备相关的ADB指令
- adb connect 10.100.94.165:连接指定ip的设备
- adb disconnect 10.100.94.165:断开与指定设备链接
- adb kill-server:断开所有连接设备
- adb devices:查看连接设备列表
- adb devices -l:查看连接设备详细信息列表
- 10.100.94.165:5555 device product:Tiramisu model:Xxx device:rk3588_t transport_id:1
- adb -s 10.100.94.165 command:当连接多个设备时,使用-s指定ip操作指定设备
- adb devices -l:查看连接设备详细信息列表
- adb shell getprop ro.product.cpu.abi:查看设备的cpu架构
arm64-v8a- adb reboot:重启
- bootloader:系统加载器
- recovery:恢复出厂设置
- sideload:线刷模式
- sideload-auto-reboot
- adb root:获取root权限
- adb remount:重新挂载设备,需root权限
- adb reboot:重启
与应用相关的ADB指令
- adb install d:\X.apk:安装X应用
- adb install -r d:\X.apk:覆盖安装X应用
- adb install -d d:\X.apk:删除安装X应用
- adb install -t d:\X.apk:安装X应用,当AndroidManifest的application标签添加
android:testOnly=true属性时使用 - adb install -g d:\X.apk:授予应用所有运行时权限,当应用为系统应用时使用
- adb uninstall com.xxx.xxx:卸载应用
- adb uninstall -k com.xxx.xxx:卸载应用,但保留应用数据
data/data和缓存sdcard/Android/com.xxx.xxx - adb shell pm uninstall -- user 0 com.xxx.xxx:强制卸载用户0下应用
- adb shell "pm list packages -f | grep "com.xxx.xxx"":查看应用安装路径
- adb shell "dumpsys packages com.xxx.xxx | grep path":查看应用安装路径
- adb shell dumpsys activity services com.xxx.xxx:查看正在运行的Service
- adb shell "dumpsys packages com.xxx.xxx | grep version":查看应用版本信息
- adb shell ps:查看所有进程信息
- adb shell "ps | grep com.xxx.xxx":查看指定包名的进程信息
- top | grep com.xxx.xxx:adb shell下查看指定包名进程号
- adb shell settings put system pointer_location 1:触摸屏幕时显示轨迹
- adb shell setprop debug.hwui.overdraw show:显示过度绘制检查
- adb shell setprop debug.hwui.overdraw false:关闭过度绘制检查
- adb shell pm dump com.xxx.xxx | grep "version":查看应用版本信息
- adb shell pm dump com.xxx.xxx | findstr version:查看应用版本信息
- adb shell "dumpsys window | grep mFocusedApp":当前页面Activity名称
- adb shell pm clear com.xxx.xxx:清除应用数据
- adb shell input text "test":电脑输入文本至手机
- adb shell input keyevent BACK:返回指令
- adb shell setprop xxx.xxx.xxx true:写入变量至系统中
- adb shell getprop xxx.xxx.xxx:读取系统变量
与应用启动相关ADB命令
- adb shell am start -n com.xxx.xxx/.MainActivity -a android.intent.action.MAIN -c android.intent.category.LAUNCHER:启动应用
- adb shell am start -a xxx.xxx.xxx.action:使用action匹配启动Activity
- --es key stringValue:带string参数
- --ez key booleanValue:带boolean参数
- --ei key intValue:带int参数
- --el key longValue:带long参数
- --ef key floatValue:带float参数
- adb shell am startservice -n com.xxx.xxx/.XxxService:启动服务
- adb shell am force-stop com.xxx.xxx:强制停止应用
- adb shell am start -a xxx.xxx.xxx.action:使用action匹配启动Activity
与应用日志相关的ADB命令
- adb bugreport D:/test/x.zip:导出bugreport日志信息,失败按提示
adb pull日志- adb logcat | findstr key > D://logcat.txt
- adb shell "logcat -t 100 | grep key":查看最近100条日志
- adb shell "logcat -t 100 *:E | grep key":查看最近100条error日志
- adb shell "logcat -v threadtime -d | grep key":查看缓冲区日志
- adb logcat -c:清除日志缓存
- adb shell -v process;查看所有进程日志
- adb shell "logcat -v process | grep pid":查看指定进程的日志
- adb logcat -v time > d:/logcat:导出日志至logcat.txt文件
- adb shell "getevent -l -t | grep "BTN"":查看触控按下抬起事件
文件操作相关ADB命令
- adb shell pull /sdcard/xxx D:/file:将文件从设备拷至电脑
- adb pull /mnt/sdcard/test.txt .:将文件从设备拷至电脑当前目录
- adb push D:/test /sdcard/test/:将文件夹拷至设备
- adb push D:/test/. /sdcard/test/:将文件夹下所有文件拷至设备,不包括文件夹
- adb push D:/test.txt /sdcard/test/:将文件拷至设备
- adb shell rename oldFile newFile:文件重命名
- adb shell rm -rf 目录:删除目录
- adb shell mv oldPath newPath:移动文件至新目录
- adb shell cp -r oldPath newPath:复制文件至新目录
- adb shell mkdir dir:创建dir目录
- adb shell chmod 777 dir:设置dir文件权限
- adb shell chmod -R 777 dir:设置dir文件夹下所有文件权限