Android ADB 常用命令
![Android ADB](/upload/2022/06/Android-1f37a5cd15754560acc925ee424f4236.jpeg)
-
adb devices
列出已连接的设备
-
adb install path_to_apk
安装应用到系统
adb -s emulator-5555 install xxx.apk 使用 -s
选项与 adb 命令来指定设备序列号
-
adb uninstall com.example.a
卸载软件
-
adb shell pm install path_to_apk
常用选项
- -r 重新安装现有应用,并保留其数据
- -d 允许版本代码降级
- -g 授予应用清单中列出的所有权限
-
adb shell pm uninstall package-name
常用选项
- -k 移除软件包后保留数据和缓存目录
-
adb pull remote local
从设备中复制某个文件或目录
-
adb push local remote
将某个文件或目录(及其子目录)复制到设备
-
adb shell screencap filename
屏幕截图
# 截图并将其pull到用户目录
adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png
-
adb sehll screenrecord [options] filename
录制视频
常用选项
-
-size 设置视频大小,如:adb shell screenrecord -size 1280x720 /sdcard/demo.mp4
-
-bit-rate 设置视频的视频比特率(以 MB/秒为单位)
如录制比特率设为 6Mbps:adb shell screenrecord --bit-rate 6000000 /sdcard/demo.mp4
-
-time-limit 设置最大录制时长(以秒为单位)。默认值和最大值均为 180(3 分钟)。
-
-rotate 将输出旋转 90 度
Logcat
[adb] logcat [<option>] ... [<filter-spec>] ...
-
adb logcat
-
adb logcat -f <filename>
将日志写入文件。默认值为输出到 stdout
-
adb logcat ActivityManager:I *:S
只输出tag为ActivityManager,优先级不低于info的日志消息
可以在一个过滤器表达式中提供任意数量的 tag:priority
规范
表达式中最后一个元素 *:S
将所有标记的优先级设为“静默”,来确保系统仅显显示Tag是 ActivityManager 的日志消息。
-
adb logcat -v color
用不同的颜色来显示每个优先级
-
adb logcat -b radio
查看崩溃日志缓冲区
-
adb logcat -c/--clear
清空所选/默认的缓冲区
默认缓冲区集为 main
、system
和 crash
。如需清除所有缓冲区使用 -b all -c
调用 Activity 管理器 (am
)
-
adb shell am start [options] intent
启动由 intent
指定的 Activity
-
start 常用选项 -D
:启用调试功能
-
intent 常用选项:
-a action | 指定 intent 的 Action |
-d data_uri | 指定 intent 数据 URI |
-c category | 指定 intent 类别 |
-n component | 指定带包名前缀的组件名称,创建显式 intent |
-f flags | 添加Flag |
-e | --es extra_key extra_string_value |
-ez extra_key extra_boolean_value | 以键值对的形式添加布尔值数据 |
--ei extra_key extra_int_value | 以键值对的形式添加整数型数据 |
--el extra_key extra_long_value | 以键值对的形式添加长整型数据 |
--ef extra_key extra_float_value | 以键值对的形式添加浮点型数据 |
--eu extra_key extra_uri_value | 以键值对的形式添加 URI 数据 |
--ecn extra_key extra_component_name_value | 添加组件名称,作为 ComponentName 对象 |
--eia extra_key extra_int_value[,extra_int_value...] | 添加整数数组 |
adb shell am start -n com.example.demo/com.example.demo.MainActivity
adb shell am start -D -n com.example.demo/com.example.demo.MainActivity
adb shell am start -a android.intent.action.VIEW
adb shell am start -a android.intent.action.CALL -d tel:888***888
-
adb shell am startservice intent
启动由 intent 指定的 Service
-
adb shell am force-stop package
强行停止与 package 关联的所有进程
-
kill [options] package
仅终止可安全终止且不会影响用户体验的进程
-
kill-all
终止所有后台进程
-
broadcast intent
发出广播 intent
adb shell am broadcast -n "com.example.demo/com.example.demo.XxBroadcastReceiver" -f 0x00000020 --es "com.example.demo.intent.extra.EXTRA_XXX" "extra-value"
调用软件包管理器 (pm
)
adb shell pm list packages [options] filter
输出所有软件
-
adb shell pm list package
输出所有软件
-
adb shell pm list package com.example
输出所有软件
-
adb shell pm list package -f
查看它们的关联文件
> adb shell pm list packages -f -U example
package:/data/app/xxx/base.apk=com.example.a uid:10111
package:/data/app/xxx/base.apk=com.example.b uid:10111
package:/data/app/xxx/base.apk=com.example.c uid:10111
-
adb shell pm list package -3
进行过滤以仅显示第三方软件
-
adb shell pm list package -f | grep example
-
adb shell pm clear com.example.
删除与软件包关联的所有数据
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。