Android-常用ADB命令
Android-常用ADB命令
平时进行Android 开发中 经常会用到ADB命令 特将常用的命令收集起来 以便日后查找
开启 adb 服务和停止
使用 start-server 检查 adb 服务器进程是否在运行,如果未运行则启动它。kill-server 停止adb 服务
adb start-server
adb kill-server
常规
adb deivces
将展示目前连接的设备列表列:
adb devices
List of devices attached
emulator-5554 device
emulator-5556 device
emulator-5558 device
# 输出支持的 adb 命令的列表。
adb help
# 输出 adb 版本号。
adb version
选择设备
当连接多个设备时、通过 -s <设备名称> 选择指定的设备、例如 安装程序到指定设备
adb -s emulator-5556 install helloWorld.apk
安装和卸载程序
使用 install 命令安装程序 使用 uninstall 卸载指定程序
adb install helloworld.apk
adb uninstall <package name>
文件导入和导出
使用 pull 命令 将文件从 设备中导入到电脑 指定目录、使用 push 命令 将文件导入到设备指定目录
adb pull <file name> <local path>
adb push <local path> <remote path>
调试
# 将日志输出到控制台 但是会持续打印 可以添加 参数 -d 过滤
adb logcat
# 将 dumpsys、dumpstate 和 logcat 数据输出到屏幕,以用于报告错误。打成一zip压缩包的形式
adb bugreport
# 输出给定设备上可用的 JDWP 进程的列表。
adb jdwp
shell 命令
使用 adb shell 进入 shell 面板、使用 control + z 或者 exit 退出
# 进入 shell 命令面板
adb shell
# 退出 shell 命令面板
exit
屏幕截图
使用 screencap 截取当前设备图片
# 进入shell面板
$ adb shell
# 截取当前图片 保存到 sdcard 文件下
$ screencap /sdcard/screen.png
# 退出 shell 面板
$ exit
# 将图片导出到本地
$ adb pull /sdcard/screen.png
调试 Activity Manager
查看当前显示的Activity名称
window 环境下:
adb shell dumpsys activity | findstr "mFocusedActivity"
linux / macOS 环境下:
adb shell dumpsys activity | grep "mFocusedActivity"
导出ANR文件
导出 ANR文件第一种方式就是 adb pull traces.txt 导出文件方式
- adb pull /data/anr/traces.txt d:/
1、adb shell
2、cat /data/anr/xxx >/mnt/sdcard/yy/zz.txt
3、exit
4、adb pull /mnt/sdcard/yy/zz.txt d: ,即可将文件导出到了d盘。
如果使用 adb pull 遇到在一些手机上没有权限问题可以使用下面方式:
- adb bugreport /…目录
完成之后导出Zip包 解压出来 、在 /FS/data/anr/ 目录中查看
杀死进程
# 杀死指定进程
adb kill <package name>
# 杀死所有后天进程
adb kill-all
参考 Intent 参数详解
对于采用 intent 参数的 Activity Manager 命令,您可以使用以下选项指定 intent:
-a action
# 指定 intent 操作,如“android.intent.action.VIEW”。此指定只能声明一次。
-d data_uri
# 指定 intent 数据 URI,如“content://contacts/people/1”。此指定只能声明一次。
-t mime_type
# 指定 intent MIME 类型,如“image/png”。此指定只能声明一次。
-c category
# 指定 intent 类别,如“android.intent.category.APP_CONTACTS”。
-n component
# 指定带有软件包名称前缀的组件名称以创建显式 intent,如“com.example.app/.ExampleActivity”。
-f flags
#将标志添加到 setFlags() 支持的 intent。
--esn extra_key
# 添加一个 null extra。URI intent 不支持此选项。
-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...]
# 添加整数数组。
--ela extra_key extra_long_value[,extra_long_value...]
# 添加长整型数组。
--efa extra_key extra_float_value[,extra_float_value...]
# 添加浮点型数组。
--grant-read-uri-permission
# 包含标志 FLAG_GRANT_READ_URI_PERMISSION。
--grant-write-uri-permission
# 包含标志 FLAG_GRANT_WRITE_URI_PERMISSION。
--debug-log-resolution
# 包含标志 FLAG_DEBUG_LOG_RESOLUTION。
--exclude-stopped-packages
# 包含标志 FLAG_EXCLUDE_STOPPED_PACKAGES。
--include-stopped-packages
# 包含标志 FLAG_INCLUDE_STOPPED_PACKAGES。
--activity-brought-to-front
# 包含标志 FLAG_ACTIVITY_BROUGHT_TO_FRONT。
--activity-clear-top
# 包含标志 FLAG_ACTIVITY_CLEAR_TOP。
--activity-clear-when-task-reset
# 包含标志 FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET。
--activity-exclude-from-recents
# 包含标志 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS。
--activity-launched-from-history
# 包含标志 FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY。
--activity-multiple-task
# 包含标志 FLAG_ACTIVITY_MULTIPLE_TASK。
--activity-no-animation
# 包含标志 FLAG_ACTIVITY_NO_ANIMATION。
--activity-no-history
# 包含标志 FLAG_ACTIVITY_NO_HISTORY。
--activity-no-user-action
# 包含标志 FLAG_ACTIVITY_NO_USER_ACTION。
--activity-previous-is-top
# 包含标志 FLAG_ACTIVITY_PREVIOUS_IS_TOP。
--activity-reorder-to-front
# 包含标志 FLAG_ACTIVITY_REORDER_TO_FRONT。
--activity-reset-task-if-needed
# 包含标志 FLAG_ACTIVITY_RESET_TASK_IF_NEEDED。
--activity-single-top
# 包含标志 FLAG_ACTIVITY_SINGLE_TOP。
--activity-clear-task
# 包含标志 FLAG_ACTIVITY_CLEAR_TASK。
--activity-task-on-home
# 包含标志 FLAG_ACTIVITY_TASK_ON_HOME。
--receiver-registered-only
# 包含标志 FLAG_RECEIVER_REGISTERED_ONLY。
--receiver-replace-pending
# 包含标志 FLAG_RECEIVER_REPLACE_PENDING。
--selector
#需要使用 -d 和 -t 选项以设置 intent 数据和类型。
参考文章
https://developer.android.com/studio/command-line/adb#IntentSpec